From e7806b135f92e629f7158ba2e46dc1f7bb76a5ff Mon Sep 17 00:00:00 2001 From: Mike Walker Date: Tue, 8 Aug 2017 11:08:28 -0400 Subject: [PATCH 001/184] Adds domain and domain-iam-role-name parameters to resource aws_db_instance. --- aws/resource_aws_db_instance.go | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index 3009d32e083..3fa120370d4 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -350,6 +350,18 @@ func resourceAwsDbInstance() *schema.Resource { Computed: true, }, + "domain": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + "domain_iam_role_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "tags": tagsSchema(), }, } @@ -660,6 +672,14 @@ func resourceAwsDbInstanceCreate(d *schema.ResourceData, meta interface{}) error opts.EnableIAMDatabaseAuthentication = aws.Bool(attr.(bool)) } + if attr, ok := d.GetOk("domain"); ok { + opts.Domain = aws.String(attr.(string)) + } + + if attr, ok := d.GetOk("domain_iam_role_name"); ok { + opts.DomainIAMRoleName = aws.String(attr.(string)) + } + log.Printf("[DEBUG] DB Instance create configuration: %#v", opts) var err error err = resource.Retry(5*time.Minute, func() *resource.RetryError { @@ -776,6 +796,11 @@ func resourceAwsDbInstanceRead(d *schema.ResourceData, meta interface{}) error { d.Set("monitoring_role_arn", v.MonitoringRoleArn) } + if v.DomainMemberships != nil { + d.Set("domain", v.DomainMemberships[0].Domain) + d.Set("domain-iam-role-name", v.DomainMemberships[0].IAMRoleName) + } + // list tags for resource // set tags conn := meta.(*AWSClient).rdsconn @@ -1028,6 +1053,18 @@ func resourceAwsDbInstanceUpdate(d *schema.ResourceData, meta interface{}) error requestUpdate = true } + if d.HasChange("domain") && !d.IsNewResource() { + d.SetPartial("domain") + req.Domain = aws.String(d.Get("domain").(string)) + requestUpdate = true + } + + if d.HasChange("domain_iam_role_name") && !d.IsNewResource() { + d.SetPartial("domain_iam_role_name") + req.DomainIAMRoleName = aws.String(d.Get("domain_iam_role_name").(string)) + requestUpdate = true + } + log.Printf("[DEBUG] Send DB Instance Modification request: %t", requestUpdate) if requestUpdate { log.Printf("[DEBUG] DB Instance Modification request: %s", req) From b614fc66d5d2fbf1c502aad0616ae4a18e6b5c00 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Wed, 28 Feb 2018 15:24:58 +1100 Subject: [PATCH 002/184] Ignore the VPC configuration for a Lambda function if it is empty I have a `lambda_function` module, which supports both EC2 classic and VPC. The problem I have, however, is that there is no way to specify a null configuration for `vpc_config`. This pull request changes the behavior so that the following Terraform configuration is //ignored//, instead of failing with an error (the current behavior): ``` resource "aws_lambda_function" "test" { # ... vpc_config { security_group_ids = [] subnet_ids = [] } } ``` See also #1187 and #1190. --- aws/resource_aws_lambda_function.go | 26 ++++++++++++++- aws/resource_aws_lambda_function_test.go | 41 ++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/aws/resource_aws_lambda_function.go b/aws/resource_aws_lambda_function.go index 6050df8d806..fee37d5e007 100644 --- a/aws/resource_aws_lambda_function.go +++ b/aws/resource_aws_lambda_function.go @@ -139,6 +139,31 @@ func resourceAwsLambdaFunction() *schema.Resource { }, }, }, + + // Suppress diffs if the VPC configuration is empty. + DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool { + if v, ok := d.GetOk("vpc_config"); ok { + configs := v.([]interface{}) + config, ok := configs[0].(map[string]interface{}) + + if !ok { + return true + } + + if config == nil { + return true + } + + securityGroups := config["security_group_ids"].(*schema.Set) + subnets := config["subnet_ids"].(*schema.Set) + + if securityGroups.Len() == 0 && subnets.Len() == 0 { + return true + } + } + + return false + }, }, "arn": { Type: schema.TypeString, @@ -291,7 +316,6 @@ func resourceAwsLambdaFunctionCreate(d *schema.ResourceData, meta interface{}) e } if v, ok := d.GetOk("vpc_config"); ok { - configs := v.([]interface{}) config, ok := configs[0].(map[string]interface{}) diff --git a/aws/resource_aws_lambda_function_test.go b/aws/resource_aws_lambda_function_test.go index 29f2774089c..4013e47516b 100644 --- a/aws/resource_aws_lambda_function_test.go +++ b/aws/resource_aws_lambda_function_test.go @@ -586,6 +586,31 @@ func TestAccAWSLambdaFunction_VPC_withInvocation(t *testing.T) { }) } +func TestAccAWSLambdaFunction_EmptyVpcConfig(t *testing.T) { + var conf lambda.GetFunctionOutput + + rString := acctest.RandString(8) + funcName := fmt.Sprintf("tf_acc_lambda_func_empty_vpc_config_%s", rString) + policyName := fmt.Sprintf("tf_acc_policy_lambda_func_empty_vpc_config_%s", rString) + roleName := fmt.Sprintf("tf_acc_role_lambda_func_empty_vpc_config_%s", rString) + sgName := fmt.Sprintf("tf_acc_sg_lambda_func_empty_vpc_config_%s", rString) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckLambdaFunctionDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSLambdaConfigWithEmptyVpcConfig(funcName, policyName, roleName, sgName), + Check: resource.ComposeTestCheckFunc( + testAccCheckAwsLambdaFunctionExists("aws_lambda_function.test", funcName, &conf), + resource.TestCheckResourceAttr("aws_lambda_function.test", "vpc_config.#", "0"), + ), + }, + }, + }) +} + func TestAccAWSLambdaFunction_s3(t *testing.T) { var conf lambda.GetFunctionOutput @@ -1668,6 +1693,22 @@ resource "aws_security_group" "sg_for_lambda_2" { `, funcName, sgName2) } +func testAccAWSLambdaConfigWithEmptyVpcConfig(funcName, policyName, roleName, sgName string) string { + return fmt.Sprintf(baseAccAWSLambdaConfig(policyName, roleName, sgName)+` +resource "aws_lambda_function" "test" { + filename = "test-fixtures/lambdatest.zip" + function_name = "%s" + role = "${aws_iam_role.iam_for_lambda.arn}" + handler = "exports.example" + runtime = "nodejs4.3" + + vpc_config { + subnet_ids = [] + security_group_ids = [] + } +}`, funcName) +} + func testAccAWSLambdaConfigS3(bucketName, roleName, funcName string) string { return fmt.Sprintf(` resource "aws_s3_bucket" "lambda_bucket" { From 9a2b871ce9adaff3a90018c25a7a39461941da27 Mon Sep 17 00:00:00 2001 From: Matthew Burtless Date: Sat, 11 Aug 2018 14:24:18 -0400 Subject: [PATCH 003/184] Removes Computed attributes from domain and domain_iam_role_name, adds further checking to DomainMemberships --- aws/resource_aws_db_instance.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index 4ce207ee0bc..8e626ebefa1 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -407,13 +407,11 @@ func resourceAwsDbInstance() *schema.Resource { "domain": { Type: schema.TypeString, Optional: true, - Computed: true, }, "domain_iam_role_name": { Type: schema.TypeString, Optional: true, - Computed: true, }, "tags": tagsSchema(), @@ -1032,7 +1030,7 @@ func resourceAwsDbInstanceRead(d *schema.ResourceData, meta interface{}) error { return fmt.Errorf("error setting enabled_cloudwatch_logs_exports: %s", err) } - if v.DomainMemberships != nil { + if len(v.DomainMemberships) > 0 && v.DomainMemberships[0] != nil { d.Set("domain", v.DomainMemberships[0].Domain) d.Set("domain_iam_role_name", v.DomainMemberships[0].IAMRoleName) } From 6d7c4f5dce19827c23bfe92c5bef043e427910ed Mon Sep 17 00:00:00 2001 From: Matthew Burtless Date: Sat, 11 Aug 2018 14:42:41 -0400 Subject: [PATCH 004/184] Updated name of config for domain acceptance test to match standard --- aws/resource_aws_db_instance_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aws/resource_aws_db_instance_test.go b/aws/resource_aws_db_instance_test.go index cf309d9c7e8..05c35e01ac6 100644 --- a/aws/resource_aws_db_instance_test.go +++ b/aws/resource_aws_db_instance_test.go @@ -469,7 +469,7 @@ func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { CheckDestroy: testAccCheckAWSDBInstanceDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSDBMSSQL_domain(rInt), + Config: testAccAWSDBMSSQLDomain(rInt), Check: resource.ComposeTestCheckFunc( testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), resource.TestCheckResourceAttrSet( @@ -1660,7 +1660,7 @@ resource "aws_security_group_rule" "rds-mssql-1" { `, rInt, rInt, rInt) } -func testAccAWSDBMSSQL_domain(rInt int) string { +func testAccAWSDBMSSQLDomain(rInt int) string { return fmt.Sprintf(` resource "aws_vpc" "foo" { cidr_block = "10.1.0.0/16" From 24ab317ef6425688e4db9ab2015cf5c6471bcbe0 Mon Sep 17 00:00:00 2001 From: Matthew Burtless Date: Sun, 19 Aug 2018 22:57:00 -0400 Subject: [PATCH 005/184] Minor bug fixes and adds acceptance test step to ensure updating domain of db instance works as expected. This commit integrates suggesting made by @bflad in review. It also merges any updates to domain or domain_iam_role_name into a single update request, as both arguments must be present in order to update either property of a DB instance. Finally, it adds an accpetance test step to ensure that after a db instance is joined to a domain, it can be succesfully moved to another by updating the domain argument.X --- aws/resource_aws_db_instance.go | 8 +- aws/resource_aws_db_instance_test.go | 192 +++++++++++++++++++++++++-- 2 files changed, 186 insertions(+), 14 deletions(-) diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index 8e626ebefa1..c4caf66a5bb 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -1285,14 +1285,10 @@ func resourceAwsDbInstanceUpdate(d *schema.ResourceData, meta interface{}) error requestUpdate = true } - if d.HasChange("domain") && !d.IsNewResource() { + if (d.HasChange("domain") || d.HasChange("domain_iam_role_name")) && !d.IsNewResource() { d.SetPartial("domain") - req.Domain = aws.String(d.Get("domain").(string)) - requestUpdate = true - } - - if d.HasChange("domain_iam_role_name") && !d.IsNewResource() { d.SetPartial("domain_iam_role_name") + req.Domain = aws.String(d.Get("domain").(string)) req.DomainIAMRoleName = aws.String(d.Get("domain_iam_role_name").(string)) requestUpdate = true } diff --git a/aws/resource_aws_db_instance_test.go b/aws/resource_aws_db_instance_test.go index 05c35e01ac6..d7a9d4fa0ba 100644 --- a/aws/resource_aws_db_instance_test.go +++ b/aws/resource_aws_db_instance_test.go @@ -472,14 +472,22 @@ func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { Config: testAccAWSDBMSSQLDomain(rInt), Check: resource.ComposeTestCheckFunc( testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), + testAccCheckAWSDBInstanceDomainAttributes("foo.somedomain.com", &v), + resource.TestCheckResourceAttrSet( + "aws_db_instance.mssql", "domain"), + resource.TestCheckResourceAttrSet( + "aws_db_instance.mssql", "domain_iam_role_name"), + ), + }, + { + Config: testAccAWSDBMSSQLUpdateDomain(rInt), + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), + testAccCheckAWSDBInstanceDomainAttributes("bar.somedomain.com", &v), resource.TestCheckResourceAttrSet( "aws_db_instance.mssql", "domain"), resource.TestCheckResourceAttrSet( "aws_db_instance.mssql", "domain_iam_role_name"), - resource.TestCheckResourceAttr( - "aws_db_instance.mssql", "allocated_storage", "20"), - resource.TestCheckResourceAttr( - "aws_db_instance.mssql", "engine", "sqlserver-ex"), ), }, }, @@ -700,6 +708,39 @@ func testAccCheckAWSDBInstanceAttributes_MSSQL(v *rds.DBInstance, tz string) res } } +func testAccCheckAWSDBInstanceDomainAttributes(domain string, v *rds.DBInstance) resource.TestCheckFunc { + return func(s *terraform.State) error { + // Grab domainmemberships list and compare domain to FQDN + for _, dm := range v.DomainMemberships { + if *dm.FQDN != domain { + continue + } + + return nil + } + + return fmt.Errorf("Domain %s not found in domain memberships", domain) + /*dsconn := testAccProvider.Meta().(*AWSClient).dsconn + out, err := dsconn.DescribeDirectories(&directoryservice.DescribeDirectoriesInput{ + DirectoryIds: []*string{aws.String(*v.Domain)}, + }) + + if err != nil { + return err + } + + if len(out.DirectoryDescriptions) < 1 { + return fmt.Errorf("DS directory %s not found", *v.Domain) + } + + if *out.DirectoryDescriptions[0].Name != domain { + return fmt.Errorf("DS directory name mismatch, expected: '%s', got: '%s'", domain, *out.DirectoryDescriptions[0].Name) + }*/ + + return nil + } +} + func testAccCheckAWSDBInstanceReplicaAttributes(source, replica *rds.DBInstance) resource.TestCheckFunc { return func(s *terraform.State) error { @@ -1708,7 +1749,130 @@ resource "aws_db_instance" "mssql" { backup_retention_period = 0 skip_final_snapshot = true - domain = "${aws_directory_service_directory.directory.id}" + domain = "${aws_directory_service_directory.foo.id}" + domain_iam_role_name = "${aws_iam_role.role.name}" + + vpc_security_group_ids = ["${aws_security_group.rds-mssql.id}"] +} + +resource "aws_security_group" "rds-mssql" { + name = "tf-rds-mssql-test-%d" + + description = "TF Testing" + vpc_id = "${aws_vpc.foo.id}" +} + +resource "aws_security_group_rule" "rds-mssql-1" { + type = "egress" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = "${aws_security_group.rds-mssql.id}" +} + +resource "aws_directory_service_directory" "foo" { + name = "foo.somedomain.com" + password = "SuperSecretPassw0rd" + type = "MicrosoftAD" + edition = "Standard" + + vpc_settings { + vpc_id = "${aws_vpc.foo.id}" + subnet_ids = ["${aws_subnet.main.id}", "${aws_subnet.other.id}"] + } +} + +resource "aws_directory_service_directory" "bar" { + name = "bar.somedomain.com" + password = "SuperSecretPassw0rd" + type = "MicrosoftAD" + edition = "Standard" + + vpc_settings { + vpc_id = "${aws_vpc.foo.id}" + subnet_ids = ["${aws_subnet.main.id}", "${aws_subnet.other.id}"] + } +} + +resource "aws_iam_role" "role" { + name = "tf-acc-db-instance-mssql-domain-role" + + assume_role_policy = < Date: Sun, 19 Aug 2018 23:25:39 -0400 Subject: [PATCH 006/184] Removed commented test code --- aws/resource_aws_db_instance_test.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/aws/resource_aws_db_instance_test.go b/aws/resource_aws_db_instance_test.go index b8b2bf802db..a141e8d9d5a 100644 --- a/aws/resource_aws_db_instance_test.go +++ b/aws/resource_aws_db_instance_test.go @@ -822,7 +822,6 @@ func testAccCheckAWSDBInstanceAttributes_MSSQL(v *rds.DBInstance, tz string) res func testAccCheckAWSDBInstanceDomainAttributes(domain string, v *rds.DBInstance) resource.TestCheckFunc { return func(s *terraform.State) error { - // Grab domainmemberships list and compare domain to FQDN for _, dm := range v.DomainMemberships { if *dm.FQDN != domain { continue @@ -832,24 +831,6 @@ func testAccCheckAWSDBInstanceDomainAttributes(domain string, v *rds.DBInstance) } return fmt.Errorf("Domain %s not found in domain memberships", domain) - /*dsconn := testAccProvider.Meta().(*AWSClient).dsconn - out, err := dsconn.DescribeDirectories(&directoryservice.DescribeDirectoriesInput{ - DirectoryIds: []*string{aws.String(*v.Domain)}, - }) - - if err != nil { - return err - } - - if len(out.DirectoryDescriptions) < 1 { - return fmt.Errorf("DS directory %s not found", *v.Domain) - } - - if *out.DirectoryDescriptions[0].Name != domain { - return fmt.Errorf("DS directory name mismatch, expected: '%s', got: '%s'", domain, *out.DirectoryDescriptions[0].Name) - }*/ - - return nil } } From 95cdc948f80095ae6036d9b4ccc4f2766065f2e4 Mon Sep 17 00:00:00 2001 From: Bastiaan Schaap Date: Tue, 21 Aug 2018 16:09:05 +0200 Subject: [PATCH 007/184] Make ebs_optimized default False --- aws/resource_aws_launch_template.go | 3 ++- aws/resource_aws_launch_template_test.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/aws/resource_aws_launch_template.go b/aws/resource_aws_launch_template.go index c599182c3c1..e1563366eaa 100644 --- a/aws/resource_aws_launch_template.go +++ b/aws/resource_aws_launch_template.go @@ -149,6 +149,7 @@ func resourceAwsLaunchTemplate() *schema.Resource { "ebs_optimized": { Type: schema.TypeBool, Optional: true, + Default: false, }, "elastic_gpu_specifications": { @@ -840,7 +841,7 @@ func buildLaunchTemplateData(d *schema.ResourceData, meta interface{}) (*ec2.Req opts.DisableApiTermination = aws.Bool(v.(bool)) } - if v, ok := d.GetOk("ebs_optimized"); ok { + if v, ok := d.GetOkExists("ebs_optimized"); ok { opts.EbsOptimized = aws.Bool(v.(bool)) } diff --git a/aws/resource_aws_launch_template_test.go b/aws/resource_aws_launch_template_test.go index 151b7011ef7..aa7c70e3fed 100644 --- a/aws/resource_aws_launch_template_test.go +++ b/aws/resource_aws_launch_template_test.go @@ -81,6 +81,7 @@ func TestAccAWSLaunchTemplate_data(t *testing.T) { resource.TestCheckResourceAttr(resName, "block_device_mappings.#", "1"), resource.TestCheckResourceAttr(resName, "credit_specification.#", "1"), resource.TestCheckResourceAttrSet(resName, "disable_api_termination"), + resource.TestCheckResourceAttrSet(resName, "ebs_optimized"), resource.TestCheckResourceAttr(resName, "elastic_gpu_specifications.#", "1"), resource.TestCheckResourceAttr(resName, "iam_instance_profile.#", "1"), resource.TestCheckResourceAttrSet(resName, "image_id"), From 6f641fbeba52bc66a15623b99f335d6088ceb1f3 Mon Sep 17 00:00:00 2001 From: Bastiaan Schaap Date: Tue, 21 Aug 2018 23:36:15 +0200 Subject: [PATCH 008/184] Refactor ebs_optimized to schema.TypeString --- aws/resource_aws_launch_template.go | 21 ++++++++++++++++----- aws/resource_aws_launch_template_test.go | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/aws/resource_aws_launch_template.go b/aws/resource_aws_launch_template.go index e1563366eaa..e98e52eda09 100644 --- a/aws/resource_aws_launch_template.go +++ b/aws/resource_aws_launch_template.go @@ -147,9 +147,13 @@ func resourceAwsLaunchTemplate() *schema.Resource { }, "ebs_optimized": { - Type: schema.TypeBool, + Type: schema.TypeString, Optional: true, - Default: false, + ValidateFunc: validation.StringInSlice([]string{ + "", + "false", + "true", + }, false), }, "elastic_gpu_specifications": { @@ -527,7 +531,6 @@ func resourceAwsLaunchTemplateRead(d *schema.ResourceData, meta interface{}) err ltData := dltv.LaunchTemplateVersions[0].LaunchTemplateData d.Set("disable_api_termination", ltData.DisableApiTermination) - d.Set("ebs_optimized", ltData.EbsOptimized) d.Set("image_id", ltData.ImageId) d.Set("instance_initiated_shutdown_behavior", ltData.InstanceInitiatedShutdownBehavior) d.Set("instance_type", ltData.InstanceType) @@ -538,6 +541,10 @@ func resourceAwsLaunchTemplateRead(d *schema.ResourceData, meta interface{}) err d.Set("user_data", ltData.UserData) d.Set("vpc_security_group_ids", aws.StringValueSlice(ltData.SecurityGroupIds)) + if ltData.EbsOptimized != nil { + d.Set("ebs_optimized", strconv.FormatBool(aws.BoolValue(ltData.EbsOptimized))) + } + if err := d.Set("block_device_mappings", getBlockDeviceMappings(ltData.BlockDeviceMappings)); err != nil { return err } @@ -841,8 +848,12 @@ func buildLaunchTemplateData(d *schema.ResourceData, meta interface{}) (*ec2.Req opts.DisableApiTermination = aws.Bool(v.(bool)) } - if v, ok := d.GetOkExists("ebs_optimized"); ok { - opts.EbsOptimized = aws.Bool(v.(bool)) + if v, ok := d.GetOk("ebs_optimized"); ok && v.(string) != "" { + vBool, err := strconv.ParseBool(v.(string)) + if err != nil { + return nil, fmt.Errorf("error converting ebs_optimized %q from string to boolean: %s", v.(string), err) + } + opts.EbsOptimized = aws.Bool(vBool) } if v, ok := d.GetOk("security_group_names"); ok { diff --git a/aws/resource_aws_launch_template_test.go b/aws/resource_aws_launch_template_test.go index aa7c70e3fed..ca6e8cbdcc0 100644 --- a/aws/resource_aws_launch_template_test.go +++ b/aws/resource_aws_launch_template_test.go @@ -324,7 +324,7 @@ resource "aws_launch_template" "foo" { disable_api_termination = true - ebs_optimized = true + ebs_optimized = false elastic_gpu_specifications { type = "test" From c1c2993f6ac4c6279534868d3f109cfb33db9341 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Wed, 22 Aug 2018 07:58:06 -0400 Subject: [PATCH 009/184] provider: Add gometalinter to Make targets and enable errcheck, interfacer, and structcheck linting for TravisCI Keeps backwards compatibility with existing Make targets. We can enable other linters in the future, but they currently are not passing. --- .gometalinter.json | 20 ++++++++++++++++++++ .travis.yml | 4 ++-- GNUmakefile | 32 ++++++++++++++++++-------------- scripts/errcheck.sh | 24 ------------------------ scripts/gofmtcheck.sh | 13 ------------- 5 files changed, 40 insertions(+), 53 deletions(-) create mode 100644 .gometalinter.json delete mode 100755 scripts/errcheck.sh delete mode 100755 scripts/gofmtcheck.sh diff --git a/.gometalinter.json b/.gometalinter.json new file mode 100644 index 00000000000..ccfa1fe178a --- /dev/null +++ b/.gometalinter.json @@ -0,0 +1,20 @@ +{ + "Deadline": "5m", + "Enable": [ + "errcheck", + "gofmt", + "interfacer", + "structcheck", + "vet" + ], + "EnableGC": true, + "Linters": { + "errcheck": { + "Command": "errcheck -abspath {not_tests=-ignoretests} -ignore github.com/hashicorp/terraform/helper/schema:ForceNew|Set -ignore io:Close" + } + }, + "Sort": [ + "path", + "line" + ] +} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 3cc3dd74cf8..b850b77929b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,12 +15,12 @@ install: # packages that live there. # See: https://github.com/golang/go/issues/12933 - bash scripts/gogetcookie.sh -- go get github.com/kardianos/govendor +- make tools script: +- make lint - make test - make vendor-status -- make vet - make website-test branches: diff --git a/GNUmakefile b/GNUmakefile index 4f24da37245..37b7f0f126a 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -19,23 +19,23 @@ test: fmtcheck testacc: fmtcheck TF_ACC=1 go test $(TEST) -v $(TESTARGS) -timeout 120m -vet: - @echo "go vet ." - @go vet $$(go list ./... | grep -v vendor/) ; if [ $$? -eq 1 ]; then \ - echo ""; \ - echo "Vet found suspicious constructs. Please check the reported constructs"; \ - echo "and fix them if necessary before submitting the code for review."; \ - exit 1; \ - fi - fmt: - gofmt -w $(GOFMT_FILES) + @echo "==> Fixing source code with gofmt..." + gofmt -s -w ./$(PKG_NAME) +# Currently required by tf-deploy compile fmtcheck: - @sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'" + @echo "==> Checking source code against gofmt..." + @gofmt -l -s ./$(PKG_NAME) -errcheck: - @sh -c "'$(CURDIR)/scripts/errcheck.sh'" +lint: + @echo "==> Checking source code against linters..." + @gometalinter ./$(PKG_NAME) + +tools: + go get -u github.com/kardianos/govendor + go get -u github.com/alecthomas/gometalinter + gometalinter --install vendor-status: @govendor status @@ -55,6 +55,10 @@ ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO))) endif @$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME) +website-lint: + @echo "==> Checking website against linters..." + @misspell -error -source=text website/ + website-test: ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO))) echo "$(WEBSITE_REPO) not found in your GOPATH (necessary for layouts and assets), get-ting..." @@ -62,5 +66,5 @@ ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO))) endif @$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider-test PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME) -.PHONY: build sweep test testacc vet fmt fmtcheck errcheck vendor-status test-compile website website-test +.PHONY: build sweep test testacc fmt fmtcheck lint tools vendor-status test-compile website website-lint website-test diff --git a/scripts/errcheck.sh b/scripts/errcheck.sh deleted file mode 100755 index 15464f5aa37..00000000000 --- a/scripts/errcheck.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -# Check gofmt -echo "==> Checking for unchecked errors..." - -if ! which errcheck > /dev/null; then - echo "==> Installing errcheck..." - go get -u github.com/kisielk/errcheck -fi - -err_files=$(errcheck -ignoretests \ - -ignore 'github.com/hashicorp/terraform/helper/schema:Set' \ - -ignore 'bytes:.*' \ - -ignore 'io:Close|Write' \ - $(go list ./...| grep -v /vendor/)) - -if [[ -n ${err_files} ]]; then - echo 'Unchecked errors found in the following places:' - echo "${err_files}" - echo "Please handle returned errors. You can check directly with \`make errcheck\`" - exit 1 -fi - -exit 0 diff --git a/scripts/gofmtcheck.sh b/scripts/gofmtcheck.sh deleted file mode 100755 index 980265c2e97..00000000000 --- a/scripts/gofmtcheck.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Check gofmt -echo "==> Checking that code complies with gofmt requirements..." -gofmt_files=$(find . -name '*.go' | grep -v vendor | xargs gofmt -l) -if [[ -n ${gofmt_files} ]]; then - echo 'gofmt needs running on the following files:' - echo "${gofmt_files}" - echo "You can use the command: \`make fmt\` to reformat code." - exit 1 -fi - -exit 0 From 90dd10a9422796e1397b932f92fd4c5049e2be02 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Wed, 22 Aug 2018 16:06:41 -0400 Subject: [PATCH 010/184] provider: Reinstate scripts/gofmtcheck.sh, add Vendor/WarnUnmatchedDirective to .gometalinter.json --- .gometalinter.json | 4 +++- GNUmakefile | 3 +-- scripts/gofmtcheck.sh | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100755 scripts/gofmtcheck.sh diff --git a/.gometalinter.json b/.gometalinter.json index ccfa1fe178a..b7916fd9fb4 100644 --- a/.gometalinter.json +++ b/.gometalinter.json @@ -16,5 +16,7 @@ "Sort": [ "path", "line" - ] + ], + "Vendor": true, + "WarnUnmatchedDirective": true } \ No newline at end of file diff --git a/GNUmakefile b/GNUmakefile index 37b7f0f126a..eec5686780d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -25,8 +25,7 @@ fmt: # Currently required by tf-deploy compile fmtcheck: - @echo "==> Checking source code against gofmt..." - @gofmt -l -s ./$(PKG_NAME) + @sh -c "'$(CURDIR)/scripts/gofmtcheck.sh'" lint: @echo "==> Checking source code against linters..." diff --git a/scripts/gofmtcheck.sh b/scripts/gofmtcheck.sh new file mode 100755 index 00000000000..dd2307acc57 --- /dev/null +++ b/scripts/gofmtcheck.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# Check gofmt +echo "==> Checking that code complies with gofmt requirements..." +gofmt_files=$(find . -name '*.go' | grep -v vendor | xargs gofmt -l -s) +if [[ -n ${gofmt_files} ]]; then + echo 'gofmt needs running on the following files:' + echo "${gofmt_files}" + echo "You can use the command: \`make fmt\` to reformat code." + exit 1 +fi + +exit 0 From 2c21f1548536542aed8d70e3b507ec62e827057f Mon Sep 17 00:00:00 2001 From: parabolic Date: Sun, 26 Aug 2018 12:22:08 +0200 Subject: [PATCH 011/184] add the include_body option to the resouce and set it to false as default as it is with the api --- aws/resource_aws_cloudfront_distribution.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/aws/resource_aws_cloudfront_distribution.go b/aws/resource_aws_cloudfront_distribution.go index 640fe06ba3c..bf72d8055d1 100644 --- a/aws/resource_aws_cloudfront_distribution.go +++ b/aws/resource_aws_cloudfront_distribution.go @@ -124,6 +124,11 @@ func resourceAwsCloudFrontDistribution() *schema.Resource { Type: schema.TypeString, Required: true, }, + "include_body": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, }, Set: lambdaFunctionAssociationHash, @@ -249,6 +254,11 @@ func resourceAwsCloudFrontDistribution() *schema.Resource { Type: schema.TypeString, Required: true, }, + "include_body": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, }, Set: lambdaFunctionAssociationHash, @@ -404,6 +414,11 @@ func resourceAwsCloudFrontDistribution() *schema.Resource { Type: schema.TypeString, Required: true, }, + "include_body": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, }, Set: lambdaFunctionAssociationHash, From 6bbf7f904cfd3a45febe43031f9dcfa26504787d Mon Sep 17 00:00:00 2001 From: parabolic Date: Sun, 26 Aug 2018 12:22:53 +0200 Subject: [PATCH 012/184] add the option to the configuration structure --- aws/cloudfront_distribution_configuration_structure.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/aws/cloudfront_distribution_configuration_structure.go b/aws/cloudfront_distribution_configuration_structure.go index 55bdd3509d5..013f5508ff3 100644 --- a/aws/cloudfront_distribution_configuration_structure.go +++ b/aws/cloudfront_distribution_configuration_structure.go @@ -526,6 +526,7 @@ func lambdaFunctionAssociationHash(v interface{}) int { m := v.(map[string]interface{}) buf.WriteString(fmt.Sprintf("%s-", m["event_type"].(string))) buf.WriteString(fmt.Sprintf("%s", m["lambda_arn"].(string))) + buf.WriteString(fmt.Sprintf("%t", m["include_body"].(bool))) return hashcode.String(buf.String()) } @@ -554,6 +555,9 @@ func expandLambdaFunctionAssociation(lf map[string]interface{}) *cloudfront.Lamb if v, ok := lf["lambda_arn"]; ok { lfa.LambdaFunctionARN = aws.String(v.(string)) } + if v, ok := lf["include_body"]; ok { + lfa.IncludeBody = aws.Bool(v.(bool)) + } return &lfa } @@ -570,6 +574,7 @@ func flattenLambdaFunctionAssociation(lfa *cloudfront.LambdaFunctionAssociation) if lfa != nil { m["event_type"] = *lfa.EventType m["lambda_arn"] = *lfa.LambdaFunctionARN + m["include_body"] = *lfa.IncludeBody } return m } From 650f79bc6f28c2cc27cf5a4eb0298cc0bceca57a Mon Sep 17 00:00:00 2001 From: parabolic Date: Sun, 26 Aug 2018 12:23:00 +0200 Subject: [PATCH 013/184] adjust the tests for the include_body option --- ...dfront_distribution_configuration_structure_test.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/aws/cloudfront_distribution_configuration_structure_test.go b/aws/cloudfront_distribution_configuration_structure_test.go index 12ed2b1b075..8919e376a94 100644 --- a/aws/cloudfront_distribution_configuration_structure_test.go +++ b/aws/cloudfront_distribution_configuration_structure_test.go @@ -50,12 +50,14 @@ func trustedSignersConf() []interface{} { func lambdaFunctionAssociationsConf() *schema.Set { x := []interface{}{ map[string]interface{}{ - "event_type": "viewer-request", - "lambda_arn": "arn:aws:lambda:us-east-1:999999999:function1:alias", + "event_type": "viewer-request", + "lambda_arn": "arn:aws:lambda:us-east-1:999999999:function1:alias", + "include_body": true, }, map[string]interface{}{ - "event_type": "origin-response", - "lambda_arn": "arn:aws:lambda:us-east-1:999999999:function2:alias", + "event_type": "origin-response", + "lambda_arn": "arn:aws:lambda:us-east-1:999999999:function2:alias", + "include_body": true, }, } From 5e2da4a16bc1bca54bde887bf786122a24eedd2a Mon Sep 17 00:00:00 2001 From: Matthew Burtless Date: Tue, 21 Aug 2018 21:27:03 -0400 Subject: [PATCH 014/184] Adds support for domain and domain_iam_role_name to RestoreDBInstanceFromDBSnapshotInput --- aws/resource_aws_db_instance.go | 8 ++ aws/resource_aws_db_instance_test.go | 171 ++++++++++++++++++++++++++- 2 files changed, 174 insertions(+), 5 deletions(-) diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index e32dbc5c276..2ac0b7e0b7b 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -704,6 +704,14 @@ func resourceAwsDbInstanceCreate(d *schema.ResourceData, meta interface{}) error opts.DBSubnetGroupName = aws.String(attr.(string)) } + if attr, ok := d.GetOk("domain"); ok { + opts.Domain = aws.String(attr.(string)) + } + + if attr, ok := d.GetOk("domain_iam_role_name"); ok { + opts.DomainIAMRoleName = aws.String(attr.(string)) + } + if attr, ok := d.GetOk("enabled_cloudwatch_logs_exports"); ok && len(attr.([]interface{})) > 0 { opts.EnableCloudwatchLogsExports = expandStringList(attr.([]interface{})) } diff --git a/aws/resource_aws_db_instance_test.go b/aws/resource_aws_db_instance_test.go index e41cc9c9b8c..14b4a578321 100644 --- a/aws/resource_aws_db_instance_test.go +++ b/aws/resource_aws_db_instance_test.go @@ -572,7 +572,7 @@ func TestAccAWSDBInstance_MSSQL_TZ(t *testing.T) { } func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { - var v rds.DBInstance + var vBefore, vAfter rds.DBInstance rInt := acctest.RandInt() resource.Test(t, resource.TestCase{ @@ -583,8 +583,8 @@ func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { { Config: testAccAWSDBMSSQLDomain(rInt), Check: resource.ComposeTestCheckFunc( - testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), - testAccCheckAWSDBInstanceDomainAttributes("foo.somedomain.com", &v), + testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &vBefore), + testAccCheckAWSDBInstanceDomainAttributes("foo.somedomain.com", &vBefore), resource.TestCheckResourceAttrSet( "aws_db_instance.mssql", "domain"), resource.TestCheckResourceAttrSet( @@ -594,8 +594,8 @@ func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { { Config: testAccAWSDBMSSQLUpdateDomain(rInt), Check: resource.ComposeTestCheckFunc( - testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), - testAccCheckAWSDBInstanceDomainAttributes("bar.somedomain.com", &v), + testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &vAfter), + testAccCheckAWSDBInstanceDomainAttributes("bar.somedomain.com", &vAfter), resource.TestCheckResourceAttrSet( "aws_db_instance.mssql", "domain"), resource.TestCheckResourceAttrSet( @@ -606,6 +606,31 @@ func TestAccAWSDBInstance_MSSQL_Domain(t *testing.T) { }) } +func TestAccAWSDBInstance_MSSQL_DomainSnapshotRestore(t *testing.T) { + var v, vRestoredInstance rds.DBInstance + rInt := acctest.RandInt() + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSDBInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSDBMSSQLDomainSnapshotRestore(rInt), + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSDBInstanceExists("aws_db_instance.mssql_restore", &vRestoredInstance), + testAccCheckAWSDBInstanceExists("aws_db_instance.mssql", &v), + testAccCheckAWSDBInstanceDomainAttributes("foo.somedomain.com", &vRestoredInstance), + resource.TestCheckResourceAttrSet( + "aws_db_instance.mssql_restore", "domain"), + resource.TestCheckResourceAttrSet( + "aws_db_instance.mssql_restore", "domain_iam_role_name"), + ), + }, + }, + }) +} + func TestAccAWSDBInstance_MinorVersion(t *testing.T) { var v rds.DBInstance @@ -2067,6 +2092,142 @@ resource "aws_iam_role_policy_attachment" "attatch-policy" { `, rInt, rInt, rInt) } +func testAccAWSDBMSSQLDomainSnapshotRestore(rInt int) string { + return fmt.Sprintf(` +resource "aws_vpc" "foo" { + cidr_block = "10.1.0.0/16" + enable_dns_hostnames = true + tags { + Name = "terraform-testacc-db-instance-mssql-domain" + } +} + +resource "aws_db_subnet_group" "rds_one" { + name = "tf_acc_test_%d" + description = "db subnets for rds_one" + + subnet_ids = ["${aws_subnet.main.id}", "${aws_subnet.other.id}"] +} + +resource "aws_subnet" "main" { + vpc_id = "${aws_vpc.foo.id}" + availability_zone = "us-west-2a" + cidr_block = "10.1.1.0/24" + tags { + Name = "tf-acc-db-instance-mssql-domain-main" + } +} + +resource "aws_subnet" "other" { + vpc_id = "${aws_vpc.foo.id}" + availability_zone = "us-west-2b" + cidr_block = "10.1.2.0/24" + tags { + Name = "tf-acc-db-instance-mssql-domain-other" + } +} + +resource "aws_db_instance" "mssql" { + identifier = "tf-test-mssql-%d" + + db_subnet_group_name = "${aws_db_subnet_group.rds_one.name}" + + instance_class = "db.t2.micro" + allocated_storage = 20 + username = "somecrazyusername" + password = "somecrazypassword" + engine = "sqlserver-ex" + backup_retention_period = 0 + skip_final_snapshot = true + + domain = "${aws_directory_service_directory.foo.id}" + domain_iam_role_name = "${aws_iam_role.role.name}" + + vpc_security_group_ids = ["${aws_security_group.rds-mssql.id}"] +} + +resource "aws_db_snapshot" "mssql-snap" { + db_instance_identifier = "${aws_db_instance.mssql.id}" + db_snapshot_identifier = "mssql-snap" +} + +resource "aws_db_instance" "mssql_restore" { + identifier = "tf-test-mssql-%d-restore" + + db_subnet_group_name = "${aws_db_subnet_group.rds_one.name}" + + instance_class = "db.t2.micro" + allocated_storage = 20 + username = "somecrazyusername" + password = "somecrazypassword" + engine = "sqlserver-ex" + backup_retention_period = 0 + skip_final_snapshot = true + snapshot_identifier = "${aws_db_snapshot.mssql-snap.id}" + + domain = "${aws_directory_service_directory.foo.id}" + domain_iam_role_name = "${aws_iam_role.role.name}" + + apply_immediately = true + vpc_security_group_ids = ["${aws_security_group.rds-mssql.id}"] +} + +resource "aws_security_group" "rds-mssql" { + name = "tf-rds-mssql-test-%d" + + description = "TF Testing" + vpc_id = "${aws_vpc.foo.id}" +} + +resource "aws_security_group_rule" "rds-mssql-1" { + type = "egress" + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + + security_group_id = "${aws_security_group.rds-mssql.id}" +} + +resource "aws_directory_service_directory" "foo" { + name = "foo.somedomain.com" + password = "SuperSecretPassw0rd" + type = "MicrosoftAD" + edition = "Standard" + + vpc_settings { + vpc_id = "${aws_vpc.foo.id}" + subnet_ids = ["${aws_subnet.main.id}", "${aws_subnet.other.id}"] + } +} + +resource "aws_iam_role" "role" { + name = "tf-acc-db-instance-mssql-domain-role" + + assume_role_policy = < Date: Mon, 27 Aug 2018 10:46:29 +0200 Subject: [PATCH 015/184] add documentation for the include_body option --- website/docs/r/cloudfront_distribution.html.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/website/docs/r/cloudfront_distribution.html.markdown b/website/docs/r/cloudfront_distribution.html.markdown index cb42a143fac..2d658d0ae15 100644 --- a/website/docs/r/cloudfront_distribution.html.markdown +++ b/website/docs/r/cloudfront_distribution.html.markdown @@ -294,8 +294,9 @@ resource "aws_cloudfront_distribution" "example" { # ... other configuration ... lambda_function_association { - event_type = "viewer-request" - lambda_arn = "${aws_lambda_function.example.qualified_arn}" + event_type = "viewer-request" + lambda_arn = "${aws_lambda_function.example.qualified_arn}" + include_body = false } } } @@ -305,6 +306,7 @@ resource "aws_cloudfront_distribution" "example" { Valid values: `viewer-request`, `origin-request`, `viewer-response`, `origin-response` * `lambda_arn` (Required) - ARN of the Lambda function. +* `include_body` (Optional) - When set to true it exposes the request body to the lambda function. Defaults to false. Valid values: `true`, `false`. ##### Cookies Arguments From b9aeafbbbabb1292dae484aa7db19981a2a53b69 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Tue, 28 Aug 2018 20:50:51 +0400 Subject: [PATCH 016/184] add schema for cloudfront_pubkey --- aws/resource_aws_cloudfront_public_key.go | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 aws/resource_aws_cloudfront_public_key.go diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go new file mode 100644 index 00000000000..c0951ecb029 --- /dev/null +++ b/aws/resource_aws_cloudfront_public_key.go @@ -0,0 +1,58 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/cloudfront" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsCloudFrontPublicKey() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsCloudFrontPublicKeyCreate, + Read: resourceAwsCloudFrontPublicKeyRead, + Update: resourceAwsCloudFrontPublicKeyUpdate, + Delete: resourceAwsCloudFrontPublicKeyDelete, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + ConflictsWith: []string{"name_prefix"}, + }, + "name_prefix": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + ConflictsWith: []string{"name"}, + }, + "encoded_key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "comment": { + Type: schema.TypeString, + Optional: true, + }, + "etag": { + Type: schema.TypeString, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} From 9ad8a474dd36ca9714d00a91eb524d6d2bf5e7f6 Mon Sep 17 00:00:00 2001 From: uLan08 Date: Wed, 29 Aug 2018 20:45:26 +0800 Subject: [PATCH 017/184] Specify that security_groups field under aws_instance resource can also take in IDs --- website/docs/r/instance.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/instance.html.markdown b/website/docs/r/instance.html.markdown index 4410345445b..9e67eabbebd 100644 --- a/website/docs/r/instance.html.markdown +++ b/website/docs/r/instance.html.markdown @@ -77,7 +77,7 @@ instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/Use * `get_password_data` - (Optional) If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. * `monitoring` - (Optional) If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) -* `security_groups` - (Optional, EC2-Classic and default VPC only) A list of security group names to associate with. +* `security_groups` - (Optional, EC2-Classic and default VPC only) A list of security group names or IDs to associate with. -> **NOTE:** If you are creating Instances in a VPC, use `vpc_security_group_ids` instead. From e4a216e28224a127fa912cb4c8328862bbb7533c Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Wed, 29 Aug 2018 19:17:33 +0400 Subject: [PATCH 018/184] add validate func to verify key name --- aws/resource_aws_cloudfront_public_key.go | 2 ++ aws/validators.go | 27 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index c0951ecb029..4eea2c3534c 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -24,6 +24,7 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Computed: true, ForceNew: true, ConflictsWith: []string{"name_prefix"}, + ValidateFunc: validateCloudFrontPublicKeyName, }, "name_prefix": { Type: schema.TypeString, @@ -31,6 +32,7 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Computed: true, ForceNew: true, ConflictsWith: []string{"name"}, + ValidateFunc: validateCloudFrontPublicKeyNamePrefix, }, "encoded_key": { Type: schema.TypeString, diff --git a/aws/validators.go b/aws/validators.go index e834c9239be..c65ffd161ea 100644 --- a/aws/validators.go +++ b/aws/validators.go @@ -1974,3 +1974,30 @@ func validateNeptuneEventSubscriptionNamePrefix(v interface{}, k string) (ws []s } return } + +func validateCloudFrontPublicKeyName(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if !regexp.MustCompile(`^[0-9A-Za-z_-]+$`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "only alphanumeric characters, underscores and hyphens allowed in %q", k)) + } + if len(value) > 128 { + errors = append(errors, fmt.Errorf( + "%q cannot be greater than 128 characters", k)) + } + return +} + +func validateCloudFrontPublicKeyNamePrefix(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if !regexp.MustCompile(`^[0-9A-Za-z_-]+$`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "only alphanumeric characters, underscores and hyphens allowed in %q", k)) + } + prefixMaxLength := 128 - resource.UniqueIDSuffixLength + if len(value) > prefixMaxLength { + errors = append(errors, fmt.Errorf( + "%q cannot be greater than %d characters", k, prefixMaxLength)) + } + return +} From 0975ac0327099ce2a4416aad3338cd00a64e9725 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Wed, 29 Aug 2018 20:03:31 +0400 Subject: [PATCH 019/184] add create func for cloudfront_pubkey --- aws/resource_aws_cloudfront_public_key.go | 44 ++++++++++++++++++++--- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 4eea2c3534c..265ac579c7f 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -47,10 +47,6 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Type: schema.TypeString, Computed: true, }, - "location": { - Type: schema.TypeString, - Computed: true, - }, "id": { Type: schema.TypeString, Computed: true, @@ -58,3 +54,43 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { }, } } + +func resourceAwsCloudFrontPublicKeyCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloudfrontconn + + if v, ok := d.GetOk("name"); ok { + d.Set("name", v.(string)) + } else if v, ok := d.GetOk("name_prefix"); ok { + d.Set("name", resource.PrefixedUniqueId(v.(string))) + } else { + d.Set("name", resource.PrefixedUniqueId("tf-")) + } + + request := &cloudfront.CreatePublicKeyInput{ + PublicKeyConfig: expandPublicKeyConfig(d), + } + + log.Println("[DEBUG] Create CloudFront PublicKey:", request) + + output, err := conn.CreatePublicKey(request) + if err != nil { + return fmt.Errorf("error creating CloudFront PublicKey: %s", err) + } + + d.SetId(aws.StringValue(output.PublicKey.Id)) + return resourceAwsCloudFrontPublicKeyRead(d, meta) +} + +func expandPublicKeyConfig(d *schema.ResourceData) *cloudfront.PublicKeyConfig { + publicKeyConfig := &cloudfront.PublicKeyConfig{ + CallerReference: aws.String(resource.UniqueId()), + EncodedKey: aws.String(d.Get("encoded_key").(string)), + Name: aws.String(d.Get("name").(string)), + } + + if v, ok := d.GetOk("comment"); ok { + publicKeyConfig.Comment = aws.String(v.(string)) + } + + return publicKeyConfig +} From 7d299ec4fcf15065c6f0bad5a0e5a1eb8c91b23f Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Wed, 29 Aug 2018 20:32:08 +0400 Subject: [PATCH 020/184] add read func for cloudfront_pubkey --- aws/resource_aws_cloudfront_public_key.go | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 265ac579c7f..3305b4a8154 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -81,6 +81,36 @@ func resourceAwsCloudFrontPublicKeyCreate(d *schema.ResourceData, meta interface return resourceAwsCloudFrontPublicKeyRead(d, meta) } +func resourceAwsCloudFrontPublicKeyRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloudfrontconn + request := &cloudfront.GetPublicKeyInput{ + Id: aws.String(d.Id()), + } + + output, err := conn.GetPublicKey(request) + if err != nil { + if isAWSErr(err, cloudfront.ErrCodeNoSuchPublicKey, "") { + log.Printf("[WARN] No PublicKey found: %s, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + + var publicKeyConfig *cloudfront.PublicKeyConfig + publicKeyConfig = output.PublicKey.PublicKeyConfig + + d.Set("encoded_key", publicKeyConfig.EncodedKey) + d.Set("name", publicKeyConfig.Name) + if publicKeyConfig.Comment != nil { + d.Set("comment", publicKeyConfig.Comment) + } + + d.Set("etag", output.ETag) + + return nil +} + func expandPublicKeyConfig(d *schema.ResourceData) *cloudfront.PublicKeyConfig { publicKeyConfig := &cloudfront.PublicKeyConfig{ CallerReference: aws.String(resource.UniqueId()), From bc0af850218294eb4456b8fc668cc62c8502ceab Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Wed, 29 Aug 2018 20:47:30 +0400 Subject: [PATCH 021/184] update cloudfront_pubkey resource in provider --- aws/provider.go | 1 + 1 file changed, 1 insertion(+) diff --git a/aws/provider.go b/aws/provider.go index bf80ad57383..b985dff5825 100644 --- a/aws/provider.go +++ b/aws/provider.go @@ -325,6 +325,7 @@ func Provider() terraform.ResourceProvider { "aws_cloudformation_stack": resourceAwsCloudFormationStack(), "aws_cloudfront_distribution": resourceAwsCloudFrontDistribution(), "aws_cloudfront_origin_access_identity": resourceAwsCloudFrontOriginAccessIdentity(), + "aws_cloudfront_public_key": resourceAwsCloudFrontPublicKey(), "aws_cloudtrail": resourceAwsCloudTrail(), "aws_cloudwatch_event_permission": resourceAwsCloudWatchEventPermission(), "aws_cloudwatch_event_rule": resourceAwsCloudWatchEventRule(), From d0464c975ffcabaec53c04e934d90b2bddaa92bd Mon Sep 17 00:00:00 2001 From: "B. Doepfner" Date: Thu, 30 Aug 2018 14:14:24 +0200 Subject: [PATCH 022/184] Add 'Seperator' property to AWS IoT Firehose Rule --- aws/resource_aws_iot_topic_rule.go | 11 ++++++++++- aws/resource_aws_iot_topic_rule_test.go | 1 + aws/structure.go | 1 + aws/validators.go | 13 +++++++++++++ website/docs/r/iot_topic_rule.html.markdown | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/aws/resource_aws_iot_topic_rule.go b/aws/resource_aws_iot_topic_rule.go index 0017db710df..36500a6d43d 100644 --- a/aws/resource_aws_iot_topic_rule.go +++ b/aws/resource_aws_iot_topic_rule.go @@ -190,6 +190,11 @@ func resourceAwsIotTopicRule() *schema.Resource { Required: true, ValidateFunc: validateArn, }, + "separator": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validateIoTTopicRuleFirehoseSeparator, + }, }, }, }, @@ -413,12 +418,16 @@ func createTopicRulePayload(d *schema.ResourceData) *iot.TopicRulePayload { for _, a := range firehoseActions { raw := a.(map[string]interface{}) - actions[i] = &iot.Action{ + act := &iot.Action{ Firehose: &iot.FirehoseAction{ DeliveryStreamName: aws.String(raw["delivery_stream_name"].(string)), RoleArn: aws.String(raw["role_arn"].(string)), }, } + if v, ok := raw["separator"].(string); ok && v != "" { + act.Firehose.Separator = aws.String(raw["separator"].(string)) + } + actions[i] = act i++ } diff --git a/aws/resource_aws_iot_topic_rule_test.go b/aws/resource_aws_iot_topic_rule_test.go index accad077660..5141f5a678a 100644 --- a/aws/resource_aws_iot_topic_rule_test.go +++ b/aws/resource_aws_iot_topic_rule_test.go @@ -387,6 +387,7 @@ resource "aws_iot_topic_rule" "rule" { firehose { delivery_stream_name = "mystream" role_arn = "${aws_iam_role.iot_role.arn}" + separator = "\n" } } `, rName) diff --git a/aws/structure.go b/aws/structure.go index 924da6b901b..2fe4161a3bd 100644 --- a/aws/structure.go +++ b/aws/structure.go @@ -2754,6 +2754,7 @@ func flattenIoTRuleFirehoseActions(actions []*iot.Action) []map[string]interface if v != nil { result["role_arn"] = *v.RoleArn result["delivery_stream_name"] = *v.DeliveryStreamName + result["separator"] = *v.Separator results = append(results, result) } diff --git a/aws/validators.go b/aws/validators.go index e834c9239be..a56ba272cd2 100644 --- a/aws/validators.go +++ b/aws/validators.go @@ -1625,6 +1625,19 @@ func validateIoTTopicRuleElasticSearchEndpoint(v interface{}, k string) (ws []st return } +func validateIoTTopicRuleFirehoseSeparator(v interface{}, s string) ([]string, []error) { + switch v.(string) { + case + ",", + "\t", + "\n", + "\r\n": + return nil, nil + } + + return nil, []error{fmt.Errorf("Separator must be one of ',' (comma), '\t' (tab) '\n' (newline) or '\r\n' (Windows newline)")} +} + func validateCognitoRoleMappingsAmbiguousRoleResolutionAgainstType(v map[string]interface{}) (errors []error) { t := v["type"].(string) isRequired := t == cognitoidentity.RoleMappingTypeToken || t == cognitoidentity.RoleMappingTypeRules diff --git a/website/docs/r/iot_topic_rule.html.markdown b/website/docs/r/iot_topic_rule.html.markdown index 52b465b45dd..365905c5cf8 100644 --- a/website/docs/r/iot_topic_rule.html.markdown +++ b/website/docs/r/iot_topic_rule.html.markdown @@ -115,6 +115,7 @@ The `firehose` object takes the following arguments: * `delivery_stream_name` - (Required) The delivery stream name. * `role_arn` - (Required) The IAM role ARN that grants access to the Amazon Kinesis Firehose stream. +* `separator` - (Optional) A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma). The `kinesis` object takes the following arguments: From 8c2d1db56c8ebf62dbca3b034547f0970df6fa1a Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 18:44:30 +0400 Subject: [PATCH 023/184] add update func for cloudfront_pubkey --- aws/resource_aws_cloudfront_public_key.go | 34 +++++++++++++++++------ 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 3305b4a8154..4323cd546b2 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -19,25 +19,25 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Schema: map[string]*schema.Schema{ "name": { - Type: schema.TypeString, - Optional: true, - Computed: true, - ForceNew: true, + Type: schema.TypeString, + Optional: true, + Computed: true, + //ForceNew: true, ConflictsWith: []string{"name_prefix"}, ValidateFunc: validateCloudFrontPublicKeyName, }, "name_prefix": { - Type: schema.TypeString, - Optional: true, - Computed: true, - ForceNew: true, + Type: schema.TypeString, + Optional: true, + Computed: true, + //ForceNew: true, ConflictsWith: []string{"name"}, ValidateFunc: validateCloudFrontPublicKeyNamePrefix, }, "encoded_key": { Type: schema.TypeString, Required: true, - ForceNew: true, + //ForceNew: true, }, "comment": { Type: schema.TypeString, @@ -111,6 +111,22 @@ func resourceAwsCloudFrontPublicKeyRead(d *schema.ResourceData, meta interface{} return nil } +func resourceAwsCloudFrontPublicKeyUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloudfrontconn + request := &cloudfront.UpdatePublicKeyInput{ + Id: aws.String(d.Id()), + PublicKeyConfig: expandPublicKeyConfig(d), + IfMatch: aws.String(d.Get("etag").(string)), + } + + _, err := conn.UpdatePublicKey(request) + if err != nil { + return fmt.Errorf("error updating CloudFront PublicKey (%s): %s", d.Id(), err) + } + + return resourceAwsCloudFrontPublicKeyRead(d, meta) +} + func expandPublicKeyConfig(d *schema.ResourceData) *cloudfront.PublicKeyConfig { publicKeyConfig := &cloudfront.PublicKeyConfig{ CallerReference: aws.String(resource.UniqueId()), From 32ca92190fd79eb77e63d78e879c2f72cefdd2a2 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 18:52:00 +0400 Subject: [PATCH 024/184] add delete func --- aws/resource_aws_cloudfront_public_key.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 4323cd546b2..8059b4590a3 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -113,6 +113,7 @@ func resourceAwsCloudFrontPublicKeyRead(d *schema.ResourceData, meta interface{} func resourceAwsCloudFrontPublicKeyUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).cloudfrontconn + request := &cloudfront.UpdatePublicKeyInput{ Id: aws.String(d.Id()), PublicKeyConfig: expandPublicKeyConfig(d), @@ -127,6 +128,27 @@ func resourceAwsCloudFrontPublicKeyUpdate(d *schema.ResourceData, meta interface return resourceAwsCloudFrontPublicKeyRead(d, meta) } +func resourceAwsCloudFrontPublicKeyDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloudfrontconn + + request := &cloudfront.DeletePublicKeyInput{ + Id: aws.String(d.Id()), + IfMatch: aws.String(d.Get("etag").(string)), + } + + _, err := conn.DeletePublicKey(request) + if err != nil { + if isAWSErr(err, cloudfront.ErrCodeNoSuchPublicKey, "") { + log.Printf("[WARN] No PublicKey found: %s, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + + return nil +} + func expandPublicKeyConfig(d *schema.ResourceData) *cloudfront.PublicKeyConfig { publicKeyConfig := &cloudfront.PublicKeyConfig{ CallerReference: aws.String(resource.UniqueId()), From 745daa882a3995da0fc5f01d946076eb81e2cf37 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 19:03:15 +0400 Subject: [PATCH 025/184] fix the id issue --- aws/resource_aws_cloudfront_public_key.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 8059b4590a3..82b5e081399 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -47,10 +47,6 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Type: schema.TypeString, Computed: true, }, - "id": { - Type: schema.TypeString, - Computed: true, - }, }, } } From 489865243405952a0f66e61c74e93bc127d519a9 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 19:25:34 +0400 Subject: [PATCH 026/184] fix the issues in update func --- aws/resource_aws_cloudfront_public_key.go | 39 ++++++++++++++++------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 82b5e081399..4c6f6592982 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -3,6 +3,7 @@ package aws import ( "fmt" "log" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/cloudfront" @@ -19,25 +20,25 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Schema: map[string]*schema.Schema{ "name": { - Type: schema.TypeString, - Optional: true, - Computed: true, - //ForceNew: true, + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, ConflictsWith: []string{"name_prefix"}, ValidateFunc: validateCloudFrontPublicKeyName, }, "name_prefix": { - Type: schema.TypeString, - Optional: true, - Computed: true, - //ForceNew: true, + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, ConflictsWith: []string{"name"}, ValidateFunc: validateCloudFrontPublicKeyNamePrefix, }, "encoded_key": { Type: schema.TypeString, Required: true, - //ForceNew: true, + ForceNew: true, }, "comment": { Type: schema.TypeString, @@ -47,6 +48,10 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "caller_reference": { + Type: schema.TypeString, + Computed: true, + }, }, } } @@ -98,10 +103,15 @@ func resourceAwsCloudFrontPublicKeyRead(d *schema.ResourceData, meta interface{} d.Set("encoded_key", publicKeyConfig.EncodedKey) d.Set("name", publicKeyConfig.Name) + if publicKeyConfig.Comment != nil { d.Set("comment", publicKeyConfig.Comment) } + if publicKeyConfig.CallerReference != nil { + d.Set("caller_reference", publicKeyConfig.CallerReference) + } + d.Set("etag", output.ETag) return nil @@ -147,14 +157,19 @@ func resourceAwsCloudFrontPublicKeyDelete(d *schema.ResourceData, meta interface func expandPublicKeyConfig(d *schema.ResourceData) *cloudfront.PublicKeyConfig { publicKeyConfig := &cloudfront.PublicKeyConfig{ - CallerReference: aws.String(resource.UniqueId()), - EncodedKey: aws.String(d.Get("encoded_key").(string)), - Name: aws.String(d.Get("name").(string)), + EncodedKey: aws.String(d.Get("encoded_key").(string)), + Name: aws.String(d.Get("name").(string)), } if v, ok := d.GetOk("comment"); ok { publicKeyConfig.Comment = aws.String(v.(string)) } + if v, ok := d.GetOk("caller_reference"); ok { + publicKeyConfig.CallerReference = aws.String(v.(string)) + } else { + publicKeyConfig.CallerReference = aws.String(time.Now().Format(time.RFC3339Nano)) + } + return publicKeyConfig } From 9f50045ef15de3e3ba16db41654435986250db57 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 19:47:45 +0400 Subject: [PATCH 027/184] add unit tests for cloudfront_pubkey name validate funcs --- aws/validators_test.go | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/aws/validators_test.go b/aws/validators_test.go index 5427d1c6a2f..0bb36a23d15 100644 --- a/aws/validators_test.go +++ b/aws/validators_test.go @@ -2809,3 +2809,59 @@ func TestValidateNeptuneParamGroupNamePrefix(t *testing.T) { } } } + +func TestValidateCloudFrontPublicKeyName(t *testing.T) { + cases := []struct { + Value string + ErrCount int + }{ + { + Value: "testing123!", + ErrCount: 1, + }, + { + Value: "testing 123", + ErrCount: 1, + }, + { + Value: randomString(129), + ErrCount: 1, + }, + } + + for _, tc := range cases { + _, errors := validateCloudFrontPublicKeyName(tc.Value, "aws_cloudfront_public_key") + + if len(errors) != tc.ErrCount { + t.Fatalf("Expected the CloudFront PublicKey Name to trigger a validation error for %q", tc.Value) + } + } +} + +func TestValidateCloudFrontPublicKeyNamePrefix(t *testing.T) { + cases := []struct { + Value string + ErrCount int + }{ + { + Value: "testing123!", + ErrCount: 1, + }, + { + Value: "testing 123", + ErrCount: 1, + }, + { + Value: randomString(128), + ErrCount: 1, + }, + } + + for _, tc := range cases { + _, errors := validateCloudFrontPublicKeyNamePrefix(tc.Value, "aws_cloudfront_public_key") + + if len(errors) != tc.ErrCount { + t.Fatalf("Expected the CloudFront PublicKey Name to trigger a validation error for %q", tc.Value) + } + } +} From b83a500057ce261071d45cca2d3c46b763bcf405 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 21:53:43 +0400 Subject: [PATCH 028/184] add acceptance test for cloudfront_pubkey --- ...resource_aws_cloudfront_public_key_test.go | 156 ++++++++++++++++++ aws/test-fixtures/cloudfront-public-key.pem | 9 + 2 files changed, 165 insertions(+) create mode 100644 aws/resource_aws_cloudfront_public_key_test.go create mode 100644 aws/test-fixtures/cloudfront-public-key.pem diff --git a/aws/resource_aws_cloudfront_public_key_test.go b/aws/resource_aws_cloudfront_public_key_test.go new file mode 100644 index 00000000000..f3bf1787d29 --- /dev/null +++ b/aws/resource_aws_cloudfront_public_key_test.go @@ -0,0 +1,156 @@ +package aws + +import ( + "fmt" + "regexp" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/cloudfront" + "github.com/hashicorp/terraform/helper/acctest" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/terraform" +) + +func TestAccAWSCloudFrontPublicKey_basic(t *testing.T) { + rInt := acctest.RandInt() + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckCloudFrontPublicKeyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSCloudFrontPublicKeyConfig(rInt), + Check: resource.ComposeTestCheckFunc( + testAccCheckCloudFrontPublicKeyExistence("aws_cloudfront_public_key.example"), + resource.TestCheckResourceAttr("aws_cloudfront_public_key.example", "comment", "test key"), + resource.TestMatchResourceAttr("aws_cloudfront_public_key.example", + "caller_reference", + regexp.MustCompile("^20[0-9]{2}.*")), + resource.TestCheckResourceAttr("aws_cloudfront_public_key.example", "name", fmt.Sprintf("tf-acc-test-%d", rInt)), + ), + }, + }, + }) +} + +func TestAccAWSCloudFrontPublicKey_namePrefix(t *testing.T) { + startsWithPrefix := regexp.MustCompile("^tf-acc-test-") + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckCloudFrontPublicKeyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSCloudFrontPublicKeyConfig_namePrefix(), + Check: resource.ComposeTestCheckFunc( + testAccCheckCloudFrontPublicKeyExistence("aws_cloudfront_public_key.example"), + resource.TestMatchResourceAttr("aws_cloudfront_public_key.example", "name", startsWithPrefix), + ), + }, + }, + }) +} + +func TestAccAWSCloudFrontPublicKey_update(t *testing.T) { + rInt := acctest.RandInt() + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckCloudFrontPublicKeyDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSCloudFrontPublicKeyConfig(rInt), + Check: resource.ComposeTestCheckFunc( + testAccCheckCloudFrontPublicKeyExistence("aws_cloudfront_public_key.example"), + resource.TestCheckResourceAttr("aws_cloudfront_public_key.example", "comment", "test key"), + ), + }, + { + Config: testAccAWSCloudFrontPublicKeyConfigUpdate(rInt), + Check: resource.ComposeTestCheckFunc( + testAccCheckCloudFrontPublicKeyExistence("aws_cloudfront_public_key.example"), + resource.TestCheckResourceAttr("aws_cloudfront_public_key.example", "comment", "test key1"), + ), + }, + }, + }) +} + +func testAccCheckCloudFrontPublicKeyExistence(r string) resource.TestCheckFunc { + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[r] + if !ok { + return fmt.Errorf("Not found: %s", r) + } + if rs.Primary.ID == "" { + return fmt.Errorf("No Id is set") + } + + conn := testAccProvider.Meta().(*AWSClient).cloudfrontconn + + params := &cloudfront.GetPublicKeyInput{ + Id: aws.String(rs.Primary.ID), + } + + _, err := conn.GetPublicKey(params) + if err != nil { + return fmt.Errorf("Error retrieving CloudFront PublicKey: %s", err) + } + return nil + } +} + +func testAccCheckCloudFrontPublicKeyDestroy(s *terraform.State) error { + conn := testAccProvider.Meta().(*AWSClient).cloudfrontconn + + for _, rs := range s.RootModule().Resources { + if rs.Type != "aws_cloudfront_public_key" { + continue + } + + params := &cloudfront.GetPublicKeyInput{ + Id: aws.String(rs.Primary.ID), + } + + _, err := conn.GetPublicKey(params) + if err == nil { + return fmt.Errorf("CloudFront PublicKey was not deleted") + } + } + + return nil +} + +func testAccAWSCloudFrontPublicKeyConfig(rInt int) string { + return fmt.Sprintf(` + resource "aws_cloudfront_public_key" "example" { + comment = "test key" + encoded_key = "${file("test-fixtures/cloudfront-public-key.pem")}" + name = "tf-acc-test-%d" +} +`, rInt) +} + +func testAccAWSCloudFrontPublicKeyConfig_namePrefix() string { + return fmt.Sprintf(` + resource "aws_cloudfront_public_key" "example" { + comment = "test key" + encoded_key = "${file("test-fixtures/cloudfront-public-key.pem")}" + name_prefix = "tf-acc-test-" +} +`) +} + +func testAccAWSCloudFrontPublicKeyConfigUpdate(rInt int) string { + return fmt.Sprintf(` + resource "aws_cloudfront_public_key" "example" { + comment = "test key1" + encoded_key = "${file("test-fixtures/cloudfront-public-key.pem")}" + name = "tf-acc-test-%d" +} +`, rInt) +} diff --git a/aws/test-fixtures/cloudfront-public-key.pem b/aws/test-fixtures/cloudfront-public-key.pem new file mode 100644 index 00000000000..d25ae696d39 --- /dev/null +++ b/aws/test-fixtures/cloudfront-public-key.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZCjGTEV/ttumSJBnsc2 +SUzPY/wJjfNchT2mjWivg/S7HuwKp1tDHizxrXTVuZLdDKceVcSclS7otzwfmGxM +Gjk2/CM2hEMThT86q76TrbH6hvGa25n8piBOkhwbwdbvmg3DRJiLR9bqw+nAPt/n +1ggTcwazm1Bw7y112Ardop+buWirS3w2C6au2OdloaaLz5N1eHEHQuRpnmD+UoVR +OgGeaLaU7FxKkpOps4Giu4vgjcefGlM3MrqG4FAzDMtgGZdJm4U+bldYmk0+J1yv +JA0FGd9g9GhjHMT9UznxXccw7PhHQsXn4lQfOn47uO9KIq170t8FeHKEzbCMsmyA +2QIDAQAB +-----END PUBLIC KEY----- From e1f73b09546332a17232c6fe9a24f3bdc8c507ae Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 22:21:01 +0400 Subject: [PATCH 029/184] add documentation --- website/aws.erb | 3 ++ .../r/cloudfront_public_key.html.markdown | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 website/docs/r/cloudfront_public_key.html.markdown diff --git a/website/aws.erb b/website/aws.erb index c5710e4ddc8..1ee142c3477 100644 --- a/website/aws.erb +++ b/website/aws.erb @@ -566,6 +566,9 @@ > aws_cloudfront_origin_access_identity + > + aws_cloudfront_public_key + diff --git a/website/docs/r/cloudfront_public_key.html.markdown b/website/docs/r/cloudfront_public_key.html.markdown new file mode 100644 index 00000000000..11b4174be14 --- /dev/null +++ b/website/docs/r/cloudfront_public_key.html.markdown @@ -0,0 +1,38 @@ +--- +layout: "aws" +page_title: "AWS: cloudfront_public_key" +sidebar_current: "docs-aws-resource-cloudfront-public-key" +description: |- + Provides a CloudFront Public Key which you add to CloudFront to use with features like field-level encryption. +--- + +# aws_cloudfront_distribution + +## Example Usage + +The following example below creates a CloudFront public key. + +```hcl +resource "aws_cloudfront_public_key" "example" { + comment = "test public key" + encoded_key = "${file("public_key.pem")}" + name = "test_key" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `comment` - (Optional) An optional comment about the public key. +* `encoded_key` - (Required) The encoded public key that you want to add to CloudFront to use with features like field-level encryption. +* `name` - (Optional) The name for the public key. By default generated by Terraform. +* `name_prefix` - (Optional) The name for the public key. Conflicts with `name`. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `caller_reference` - Internal value used by CloudFront to allow future updates to the public key configuration. +* `etag` - The current version of the public key. For example: `E2QWRUHAPOMQZL`. +* `id` - The identifier for the public key. For example: `K3D5EWEUDCCXON`. From abfe7c49e90810657e9ed6b9401f2e3c439fcefc Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Thu, 30 Aug 2018 22:29:52 +0400 Subject: [PATCH 030/184] arrange the attributes order properly --- aws/resource_aws_cloudfront_public_key.go | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/aws/resource_aws_cloudfront_public_key.go b/aws/resource_aws_cloudfront_public_key.go index 4c6f6592982..7a6e819909f 100644 --- a/aws/resource_aws_cloudfront_public_key.go +++ b/aws/resource_aws_cloudfront_public_key.go @@ -19,6 +19,23 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { Delete: resourceAwsCloudFrontPublicKeyDelete, Schema: map[string]*schema.Schema{ + "caller_reference": { + Type: schema.TypeString, + Computed: true, + }, + "comment": { + Type: schema.TypeString, + Optional: true, + }, + "encoded_key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "etag": { + Type: schema.TypeString, + Computed: true, + }, "name": { Type: schema.TypeString, Optional: true, @@ -35,23 +52,6 @@ func resourceAwsCloudFrontPublicKey() *schema.Resource { ConflictsWith: []string{"name"}, ValidateFunc: validateCloudFrontPublicKeyNamePrefix, }, - "encoded_key": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - }, - "comment": { - Type: schema.TypeString, - Optional: true, - }, - "etag": { - Type: schema.TypeString, - Computed: true, - }, - "caller_reference": { - Type: schema.TypeString, - Computed: true, - }, }, } } From eeb04c6a07450348b92bfa80e904f73778b5ccf8 Mon Sep 17 00:00:00 2001 From: Bastiaan Schaap Date: Fri, 31 Aug 2018 07:26:11 +0200 Subject: [PATCH 031/184] Add TypeStringBoolean equivalence from #5632 --- aws/resource_aws_launch_template.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/aws/resource_aws_launch_template.go b/aws/resource_aws_launch_template.go index 067d711c40c..7f148e6f33f 100644 --- a/aws/resource_aws_launch_template.go +++ b/aws/resource_aws_launch_template.go @@ -159,13 +159,14 @@ func resourceAwsLaunchTemplate() *schema.Resource { }, "ebs_optimized": { - Type: schema.TypeString, - Optional: true, - ValidateFunc: validation.StringInSlice([]string{ - "", - "false", - "true", - }, false), + // Use TypeString to allow an "unspecified" value, + // since TypeBool only has true/false with false default. + // The conversion from bare true/false values in + // configurations to TypeString value is currently safe. + Type: schema.TypeString, + Optional: true, + DiffSuppressFunc: suppressEquivalentTypeStringBoolean, + ValidateFunc: validateTypeStringNullableBoolean, }, "elastic_gpu_specifications": { From cb3bd94ff162f33550dc29bd2f88d385eed3b36c Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Fri, 31 Aug 2018 14:20:40 +0100 Subject: [PATCH 032/184] Add working URL for ICMP types and codes --- website/docs/r/network_acl.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/network_acl.html.markdown b/website/docs/r/network_acl.html.markdown index 7f0472f5fad..4a9c45e87dc 100644 --- a/website/docs/r/network_acl.html.markdown +++ b/website/docs/r/network_acl.html.markdown @@ -73,7 +73,7 @@ valid network mask. * `icmp_type` - (Optional) The ICMP type to be used. Default 0. * `icmp_code` - (Optional) The ICMP type code to be used. Default 0. -~> Note: For more information on ICMP types and codes, see here: http://www.nthelp.com/icmp.html +~> Note: For more information on ICMP types and codes, see here: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml ## Attributes Reference From ba713b9b051c638ca6cb4698fe4256e53494d11b Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Fri, 31 Aug 2018 15:53:56 +0100 Subject: [PATCH 033/184] Add working URL for ICMP types and codes --- aws/resource_aws_network_acl_rule.go | 2 +- website/docs/r/default_network_acl.html.markdown | 2 +- website/docs/r/network_acl_rule.html.markdown | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aws/resource_aws_network_acl_rule.go b/aws/resource_aws_network_acl_rule.go index 6a17cdcea4a..99157218bd0 100644 --- a/aws/resource_aws_network_acl_rule.go +++ b/aws/resource_aws_network_acl_rule.go @@ -133,7 +133,7 @@ func resourceAwsNetworkAclRuleCreate(d *schema.ResourceData, meta interface{}) e } // Specify additional required fields for ICMP. For the list - // of ICMP codes and types, see: http://www.nthelp.com/icmp.html + // of ICMP codes and types, see: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml if p == 1 { params.IcmpTypeCode = &ec2.IcmpTypeCode{} if v, ok := d.GetOk("icmp_type"); ok { diff --git a/website/docs/r/default_network_acl.html.markdown b/website/docs/r/default_network_acl.html.markdown index eddd871f8d9..13524575805 100644 --- a/website/docs/r/default_network_acl.html.markdown +++ b/website/docs/r/default_network_acl.html.markdown @@ -135,7 +135,7 @@ valid network mask. * `icmp_type` - (Optional) The ICMP type to be used. Default 0. * `icmp_code` - (Optional) The ICMP type code to be used. Default 0. -~> Note: For more information on ICMP types and codes, see here: http://www.nthelp.com/icmp.html +~> Note: For more information on ICMP types and codes, see here: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml ### Managing Subnets in the Default Network ACL diff --git a/website/docs/r/network_acl_rule.html.markdown b/website/docs/r/network_acl_rule.html.markdown index f8c8dd06fc1..9b5d55713ef 100644 --- a/website/docs/r/network_acl_rule.html.markdown +++ b/website/docs/r/network_acl_rule.html.markdown @@ -57,7 +57,7 @@ The following arguments are supported: ~> **NOTE:** If the value of `icmp_type` is `-1` (which results in a wildcard ICMP type), the `icmp_code` must also be set to `-1` (wildcard ICMP code). -~> Note: For more information on ICMP types and codes, see here: http://www.nthelp.com/icmp.html +~> Note: For more information on ICMP types and codes, see here: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml ## Attributes Reference From 4d08acbb9dcecabb49d8dc62614bb33b54d44ccb Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Fri, 31 Aug 2018 19:04:28 +0400 Subject: [PATCH 034/184] unit tests for validate funcs in neptune --- ...a_source_aws_cloudformation_export_test.go | 2 +- aws/opsworks_layers.go | 24 +++--- ...source_aws_acmpca_certificate_authority.go | 6 +- aws/resource_aws_api_gateway_integration.go | 30 ++++---- ...e_aws_cloudfront_origin_access_identity.go | 4 +- ...ce_aws_codedeploy_deployment_group_test.go | 8 +- aws/resource_aws_db_instance.go | 2 +- aws/resource_aws_db_security_group.go | 2 +- aws/resource_aws_dms_replication_instance.go | 2 +- ...sticache_replication_group_migrate_test.go | 2 +- ...resource_aws_emr_security_configuration.go | 2 +- aws/resource_aws_gamelift_fleet.go | 10 +-- aws/resource_aws_instance.go | 12 +-- aws/resource_aws_instance_migrate_test.go | 8 +- ...ce_aws_kinesis_firehose_delivery_stream.go | 10 +-- aws/resource_aws_neptune_cluster_instance.go | 2 +- ...rce_aws_neptune_cluster_parameter_group.go | 2 +- aws/resource_aws_rds_cluster_instance.go | 2 +- ...esource_aws_rds_cluster_parameter_group.go | 2 +- aws/resource_aws_redshift_cluster.go | 2 +- aws/resource_aws_route53_record.go | 4 +- aws/resource_aws_s3_bucket.go | 4 +- aws/resource_aws_s3_bucket_inventory.go | 4 +- aws/resource_aws_s3_bucket_notification.go | 4 +- ...esource_aws_security_group_migrate_test.go | 2 +- ..._service_discovery_service_migrate_test.go | 4 +- aws/resource_aws_sns_topic.go | 8 +- aws/resource_aws_spot_fleet_request.go | 2 +- aws/resource_aws_spot_instance_request.go | 4 +- aws/resource_aws_ssm_maintenance_window.go | 8 +- aws/resource_aws_ssm_patch_baseline.go | 2 +- aws/resource_aws_swf_domain.go | 2 +- aws/resource_aws_vpc.go | 2 +- aws/validators_test.go | 76 +++++++++++++++++-- 34 files changed, 160 insertions(+), 100 deletions(-) diff --git a/aws/data_source_aws_cloudformation_export_test.go b/aws/data_source_aws_cloudformation_export_test.go index e76f91e20b0..1ca42d7bc43 100644 --- a/aws/data_source_aws_cloudformation_export_test.go +++ b/aws/data_source_aws_cloudformation_export_test.go @@ -17,7 +17,7 @@ func TestAccAWSCloudformationExportDataSource_basic(t *testing.T) { Providers: testAccProviders, Steps: []resource.TestStep{ { - Config: testAccCheckAwsCloudformationExportConfig(rName), + Config: testAccCheckAwsCloudformationExportConfig(rName), PreventPostDestroyRefresh: true, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.aws_cloudformation_export.waiter", "value", "waiter"), diff --git a/aws/opsworks_layers.go b/aws/opsworks_layers.go index 83e0b2d0284..d33eab61ca2 100644 --- a/aws/opsworks_layers.go +++ b/aws/opsworks_layers.go @@ -345,13 +345,13 @@ func (lt *opsworksLayerType) Create(d *schema.ResourceData, client *opsworks.Ops EnableAutoHealing: aws.Bool(d.Get("auto_healing").(bool)), InstallUpdatesOnBoot: aws.Bool(d.Get("install_updates_on_boot").(bool)), LifecycleEventConfiguration: lt.LifecycleEventConfiguration(d), - Name: aws.String(d.Get("name").(string)), - Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), - Type: aws.String(lt.TypeName), - StackId: aws.String(d.Get("stack_id").(string)), - UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), - Attributes: lt.AttributeMap(d), - VolumeConfigurations: lt.VolumeConfigurations(d), + Name: aws.String(d.Get("name").(string)), + Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), + Type: aws.String(lt.TypeName), + StackId: aws.String(d.Get("stack_id").(string)), + UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), + Attributes: lt.AttributeMap(d), + VolumeConfigurations: lt.VolumeConfigurations(d), } if lt.CustomShortName { @@ -399,11 +399,11 @@ func (lt *opsworksLayerType) Update(d *schema.ResourceData, client *opsworks.Ops EnableAutoHealing: aws.Bool(d.Get("auto_healing").(bool)), InstallUpdatesOnBoot: aws.Bool(d.Get("install_updates_on_boot").(bool)), LifecycleEventConfiguration: lt.LifecycleEventConfiguration(d), - Name: aws.String(d.Get("name").(string)), - Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), - UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), - Attributes: lt.AttributeMap(d), - VolumeConfigurations: lt.VolumeConfigurations(d), + Name: aws.String(d.Get("name").(string)), + Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), + UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), + Attributes: lt.AttributeMap(d), + VolumeConfigurations: lt.VolumeConfigurations(d), } if lt.CustomShortName { diff --git a/aws/resource_aws_acmpca_certificate_authority.go b/aws/resource_aws_acmpca_certificate_authority.go index e8158743c68..81bc3479f41 100644 --- a/aws/resource_aws_acmpca_certificate_authority.go +++ b/aws/resource_aws_acmpca_certificate_authority.go @@ -284,7 +284,7 @@ func resourceAwsAcmpcaCertificateAuthorityCreate(d *schema.ResourceData, meta in if v, ok := d.GetOk("tags"); ok { input := &acmpca.TagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: tagsFromMapACMPCA(v.(map[string]interface{})), + Tags: tagsFromMapACMPCA(v.(map[string]interface{})), } log.Printf("[DEBUG] Tagging ACMPCA Certificate Authority: %s", input) @@ -458,7 +458,7 @@ func resourceAwsAcmpcaCertificateAuthorityUpdate(d *schema.ResourceData, meta in log.Printf("[DEBUG] Removing ACMPCA Certificate Authority %q tags: %#v", d.Id(), remove) _, err := conn.UntagCertificateAuthority(&acmpca.UntagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: remove, + Tags: remove, }) if err != nil { return fmt.Errorf("error updating ACMPCA Certificate Authority %q tags: %s", d.Id(), err) @@ -468,7 +468,7 @@ func resourceAwsAcmpcaCertificateAuthorityUpdate(d *schema.ResourceData, meta in log.Printf("[DEBUG] Creating ACMPCA Certificate Authority %q tags: %#v", d.Id(), create) _, err := conn.TagCertificateAuthority(&acmpca.TagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: create, + Tags: create, }) if err != nil { return fmt.Errorf("error updating ACMPCA Certificate Authority %q tags: %s", d.Id(), err) diff --git a/aws/resource_aws_api_gateway_integration.go b/aws/resource_aws_api_gateway_integration.go index 259d5d69136..755bcb54c09 100644 --- a/aws/resource_aws_api_gateway_integration.go +++ b/aws/resource_aws_api_gateway_integration.go @@ -243,22 +243,22 @@ func resourceAwsApiGatewayIntegrationCreate(d *schema.ResourceData, meta interfa } _, err := conn.PutIntegration(&apigateway.PutIntegrationInput{ - HttpMethod: aws.String(d.Get("http_method").(string)), - ResourceId: aws.String(d.Get("resource_id").(string)), - RestApiId: aws.String(d.Get("rest_api_id").(string)), - Type: aws.String(d.Get("type").(string)), + HttpMethod: aws.String(d.Get("http_method").(string)), + ResourceId: aws.String(d.Get("resource_id").(string)), + RestApiId: aws.String(d.Get("rest_api_id").(string)), + Type: aws.String(d.Get("type").(string)), IntegrationHttpMethod: integrationHttpMethod, - Uri: uri, - RequestParameters: aws.StringMap(parameters), - RequestTemplates: aws.StringMap(templates), - Credentials: credentials, - CacheNamespace: cacheNamespace, - CacheKeyParameters: cacheKeyParameters, - PassthroughBehavior: passthroughBehavior, - ContentHandling: contentHandling, - ConnectionType: connectionType, - ConnectionId: connectionId, - TimeoutInMillis: timeoutInMillis, + Uri: uri, + RequestParameters: aws.StringMap(parameters), + RequestTemplates: aws.StringMap(templates), + Credentials: credentials, + CacheNamespace: cacheNamespace, + CacheKeyParameters: cacheKeyParameters, + PassthroughBehavior: passthroughBehavior, + ContentHandling: contentHandling, + ConnectionType: connectionType, + ConnectionId: connectionId, + TimeoutInMillis: timeoutInMillis, }) if err != nil { return fmt.Errorf("Error creating API Gateway Integration: %s", err) diff --git a/aws/resource_aws_cloudfront_origin_access_identity.go b/aws/resource_aws_cloudfront_origin_access_identity.go index b82296763a9..00f6b65877b 100644 --- a/aws/resource_aws_cloudfront_origin_access_identity.go +++ b/aws/resource_aws_cloudfront_origin_access_identity.go @@ -95,9 +95,9 @@ func resourceAwsCloudFrontOriginAccessIdentityRead(d *schema.ResourceData, meta func resourceAwsCloudFrontOriginAccessIdentityUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).cloudfrontconn params := &cloudfront.UpdateCloudFrontOriginAccessIdentityInput{ - Id: aws.String(d.Id()), + Id: aws.String(d.Id()), CloudFrontOriginAccessIdentityConfig: expandOriginAccessIdentityConfig(d), - IfMatch: aws.String(d.Get("etag").(string)), + IfMatch: aws.String(d.Get("etag").(string)), } _, err := conn.UpdateCloudFrontOriginAccessIdentity(params) if err != nil { diff --git a/aws/resource_aws_codedeploy_deployment_group_test.go b/aws/resource_aws_codedeploy_deployment_group_test.go index 9f107231c5e..1ab89775d09 100644 --- a/aws/resource_aws_codedeploy_deployment_group_test.go +++ b/aws/resource_aws_codedeploy_deployment_group_test.go @@ -1568,7 +1568,7 @@ func TestAWSCodeDeployDeploymentGroup_expandBlueGreenDeploymentConfig(t *testing "terminate_blue_instances_on_deployment_success": []interface{}{ map[string]interface{}{ - "action": "TERMINATE", + "action": "TERMINATE", "termination_wait_time_in_minutes": 90, }, }, @@ -1586,7 +1586,7 @@ func TestAWSCodeDeployDeploymentGroup_expandBlueGreenDeploymentConfig(t *testing }, TerminateBlueInstancesOnDeploymentSuccess: &codedeploy.BlueInstanceTerminationOption{ - Action: aws.String("TERMINATE"), + Action: aws.String("TERMINATE"), TerminationWaitTimeInMinutes: aws.Int64(90), }, } @@ -1611,7 +1611,7 @@ func TestAWSCodeDeployDeploymentGroup_flattenBlueGreenDeploymentConfig(t *testin }, TerminateBlueInstancesOnDeploymentSuccess: &codedeploy.BlueInstanceTerminationOption{ - Action: aws.String("KEEP_ALIVE"), + Action: aws.String("KEEP_ALIVE"), TerminationWaitTimeInMinutes: aws.Int64(90), }, } @@ -1632,7 +1632,7 @@ func TestAWSCodeDeployDeploymentGroup_flattenBlueGreenDeploymentConfig(t *testin "terminate_blue_instances_on_deployment_success": []map[string]interface{}{ { - "action": "KEEP_ALIVE", + "action": "KEEP_ALIVE", "termination_wait_time_in_minutes": 90, }, }, diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index 9100d9518dd..8e44d8703c3 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -460,7 +460,7 @@ func resourceAwsDbInstanceCreate(d *schema.ResourceData, meta interface{}) error DBInstanceIdentifier: aws.String(identifier), PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), SourceDBInstanceIdentifier: aws.String(v.(string)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("allocated_storage"); ok { diff --git a/aws/resource_aws_db_security_group.go b/aws/resource_aws_db_security_group.go index 04d4ef1f9f8..f3bd2617c2f 100644 --- a/aws/resource_aws_db_security_group.go +++ b/aws/resource_aws_db_security_group.go @@ -91,7 +91,7 @@ func resourceAwsDbSecurityGroupCreate(d *schema.ResourceData, meta interface{}) opts := rds.CreateDBSecurityGroupInput{ DBSecurityGroupName: aws.String(d.Get("name").(string)), DBSecurityGroupDescription: aws.String(d.Get("description").(string)), - Tags: tags, + Tags: tags, } log.Printf("[DEBUG] DB Security Group create configuration: %#v", opts) diff --git a/aws/resource_aws_dms_replication_instance.go b/aws/resource_aws_dms_replication_instance.go index 282451a7b0e..df12efb91d6 100644 --- a/aws/resource_aws_dms_replication_instance.go +++ b/aws/resource_aws_dms_replication_instance.go @@ -136,7 +136,7 @@ func resourceAwsDmsReplicationInstanceCreate(d *schema.ResourceData, meta interf PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), ReplicationInstanceClass: aws.String(d.Get("replication_instance_class").(string)), ReplicationInstanceIdentifier: aws.String(d.Get("replication_instance_id").(string)), - Tags: dmsTagsFromMap(d.Get("tags").(map[string]interface{})), + Tags: dmsTagsFromMap(d.Get("tags").(map[string]interface{})), } // WARNING: GetOk returns the zero value for the type if the key is omitted in config. This means for optional diff --git a/aws/resource_aws_elasticache_replication_group_migrate_test.go b/aws/resource_aws_elasticache_replication_group_migrate_test.go index c014f7e6d68..1379d539a47 100644 --- a/aws/resource_aws_elasticache_replication_group_migrate_test.go +++ b/aws/resource_aws_elasticache_replication_group_migrate_test.go @@ -16,7 +16,7 @@ func TestAwsElasticacheReplicationGroupMigrateState(t *testing.T) { "v0Tov1": { StateVersion: 0, Attributes: map[string]string{ - "cluster_mode.#": "1", + "cluster_mode.#": "1", "cluster_mode.4170186206.num_node_groups": "2", "cluster_mode.4170186206.replicas_per_node_group": "1", }, diff --git a/aws/resource_aws_emr_security_configuration.go b/aws/resource_aws_emr_security_configuration.go index ff25619a361..45beffc6d1a 100644 --- a/aws/resource_aws_emr_security_configuration.go +++ b/aws/resource_aws_emr_security_configuration.go @@ -65,7 +65,7 @@ func resourceAwsEmrSecurityConfigurationCreate(d *schema.ResourceData, meta inte } resp, err := conn.CreateSecurityConfiguration(&emr.CreateSecurityConfigurationInput{ - Name: aws.String(emrSCName), + Name: aws.String(emrSCName), SecurityConfiguration: aws.String(d.Get("configuration").(string)), }) diff --git a/aws/resource_aws_gamelift_fleet.go b/aws/resource_aws_gamelift_fleet.go index 815b899d716..be1a328daab 100644 --- a/aws/resource_aws_gamelift_fleet.go +++ b/aws/resource_aws_gamelift_fleet.go @@ -301,10 +301,10 @@ func resourceAwsGameliftFleetUpdate(d *schema.ResourceData, meta interface{}) er if d.HasChange("description") || d.HasChange("metric_groups") || d.HasChange("name") || d.HasChange("new_game_session_protection_policy") || d.HasChange("resource_creation_limit_policy") { _, err := conn.UpdateFleetAttributes(&gamelift.UpdateFleetAttributesInput{ - Description: aws.String(d.Get("description").(string)), - FleetId: aws.String(d.Id()), - MetricGroups: expandStringList(d.Get("metric_groups").([]interface{})), - Name: aws.String(d.Get("name").(string)), + Description: aws.String(d.Get("description").(string)), + FleetId: aws.String(d.Id()), + MetricGroups: expandStringList(d.Get("metric_groups").([]interface{})), + Name: aws.String(d.Get("name").(string)), NewGameSessionProtectionPolicy: aws.String(d.Get("new_game_session_protection_policy").(string)), ResourceCreationLimitPolicy: expandGameliftResourceCreationLimitPolicy(d.Get("resource_creation_limit_policy").([]interface{})), }) @@ -318,7 +318,7 @@ func resourceAwsGameliftFleetUpdate(d *schema.ResourceData, meta interface{}) er authorizations, revocations := diffGameliftPortSettings(oldPerms.([]interface{}), newPerms.([]interface{})) _, err := conn.UpdateFleetPortSettings(&gamelift.UpdateFleetPortSettingsInput{ - FleetId: aws.String(d.Id()), + FleetId: aws.String(d.Id()), InboundPermissionAuthorizations: authorizations, InboundPermissionRevocations: revocations, }) diff --git a/aws/resource_aws_instance.go b/aws/resource_aws_instance.go index 65637d7a05c..a51ad8f461c 100644 --- a/aws/resource_aws_instance.go +++ b/aws/resource_aws_instance.go @@ -505,12 +505,12 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error { // Build the creation struct runOpts := &ec2.RunInstancesInput{ - BlockDeviceMappings: instanceOpts.BlockDeviceMappings, - DisableApiTermination: instanceOpts.DisableAPITermination, - EbsOptimized: instanceOpts.EBSOptimized, - Monitoring: instanceOpts.Monitoring, - IamInstanceProfile: instanceOpts.IAMInstanceProfile, - ImageId: instanceOpts.ImageID, + BlockDeviceMappings: instanceOpts.BlockDeviceMappings, + DisableApiTermination: instanceOpts.DisableAPITermination, + EbsOptimized: instanceOpts.EBSOptimized, + Monitoring: instanceOpts.Monitoring, + IamInstanceProfile: instanceOpts.IAMInstanceProfile, + ImageId: instanceOpts.ImageID, InstanceInitiatedShutdownBehavior: instanceOpts.InstanceInitiatedShutdownBehavior, InstanceType: instanceOpts.InstanceType, Ipv6AddressCount: instanceOpts.Ipv6AddressCount, diff --git a/aws/resource_aws_instance_migrate_test.go b/aws/resource_aws_instance_migrate_test.go index bc591fd092a..d392943315e 100644 --- a/aws/resource_aws_instance_migrate_test.go +++ b/aws/resource_aws_instance_migrate_test.go @@ -17,7 +17,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { StateVersion: 0, Attributes: map[string]string{ // EBS - "block_device.#": "2", + "block_device.#": "2", "block_device.3851383343.delete_on_termination": "true", "block_device.3851383343.device_name": "/dev/sdx", "block_device.3851383343.encrypted": "false", @@ -42,7 +42,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { "block_device.56575650.volume_type": "standard", }, Expected: map[string]string{ - "ebs_block_device.#": "1", + "ebs_block_device.#": "1", "ebs_block_device.3851383343.delete_on_termination": "true", "ebs_block_device.3851383343.device_name": "/dev/sdx", "ebs_block_device.3851383343.encrypted": "false", @@ -64,7 +64,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { StateVersion: 0, Attributes: map[string]string{ // EBS - "block_device.#": "2", + "block_device.#": "2", "block_device.3851383343.delete_on_termination": "true", "block_device.3851383343.device_name": "/dev/sdx", "block_device.3851383343.encrypted": "false", @@ -92,7 +92,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { "root_block_device.3018388612.iops": "1000", }, Expected: map[string]string{ - "ebs_block_device.#": "1", + "ebs_block_device.#": "1", "ebs_block_device.3851383343.delete_on_termination": "true", "ebs_block_device.3851383343.device_name": "/dev/sdx", "ebs_block_device.3851383343.encrypted": "false", diff --git a/aws/resource_aws_kinesis_firehose_delivery_stream.go b/aws/resource_aws_kinesis_firehose_delivery_stream.go index d570bb62b60..74dedf576b2 100644 --- a/aws/resource_aws_kinesis_firehose_delivery_stream.go +++ b/aws/resource_aws_kinesis_firehose_delivery_stream.go @@ -228,11 +228,11 @@ func flattenFirehoseExtendedS3Configuration(description *firehose.ExtendedS3Dest "cloudwatch_logging_options": flattenCloudwatchLoggingOptions(description.CloudWatchLoggingOptions), "compression_format": aws.StringValue(description.CompressionFormat), "data_format_conversion_configuration": flattenFirehoseDataFormatConversionConfiguration(description.DataFormatConversionConfiguration), - "prefix": aws.StringValue(description.Prefix), - "processing_configuration": flattenProcessingConfiguration(description.ProcessingConfiguration, aws.StringValue(description.RoleARN)), - "role_arn": aws.StringValue(description.RoleARN), - "s3_backup_configuration": flattenFirehoseS3Configuration(description.S3BackupDescription), - "s3_backup_mode": aws.StringValue(description.S3BackupMode), + "prefix": aws.StringValue(description.Prefix), + "processing_configuration": flattenProcessingConfiguration(description.ProcessingConfiguration, aws.StringValue(description.RoleARN)), + "role_arn": aws.StringValue(description.RoleARN), + "s3_backup_configuration": flattenFirehoseS3Configuration(description.S3BackupDescription), + "s3_backup_mode": aws.StringValue(description.S3BackupMode), } if description.BufferingHints != nil { diff --git a/aws/resource_aws_neptune_cluster_instance.go b/aws/resource_aws_neptune_cluster_instance.go index 6cb8ec42a41..026feeb7346 100644 --- a/aws/resource_aws_neptune_cluster_instance.go +++ b/aws/resource_aws_neptune_cluster_instance.go @@ -196,7 +196,7 @@ func resourceAwsNeptuneClusterInstanceCreate(d *schema.ResourceData, meta interf PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), PromotionTier: aws.Int64(int64(d.Get("promotion_tier").(int))), AutoMinorVersionUpgrade: aws.Bool(d.Get("auto_minor_version_upgrade").(bool)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("availability_zone"); ok { diff --git a/aws/resource_aws_neptune_cluster_parameter_group.go b/aws/resource_aws_neptune_cluster_parameter_group.go index 7a879889d5c..a04db20a2d5 100644 --- a/aws/resource_aws_neptune_cluster_parameter_group.go +++ b/aws/resource_aws_neptune_cluster_parameter_group.go @@ -154,7 +154,7 @@ func resourceAwsNeptuneClusterParameterGroupRead(d *schema.ResourceData, meta in // Only include user customized parameters as there's hundreds of system/default ones describeParametersOpts := neptune.DescribeDBClusterParametersInput{ DBClusterParameterGroupName: aws.String(d.Id()), - Source: aws.String("user"), + Source: aws.String("user"), } describeParametersResp, err := conn.DescribeDBClusterParameters(&describeParametersOpts) diff --git a/aws/resource_aws_rds_cluster_instance.go b/aws/resource_aws_rds_cluster_instance.go index 70ad3d3dafe..4a65db57786 100644 --- a/aws/resource_aws_rds_cluster_instance.go +++ b/aws/resource_aws_rds_cluster_instance.go @@ -216,7 +216,7 @@ func resourceAwsRDSClusterInstanceCreate(d *schema.ResourceData, meta interface{ PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), PromotionTier: aws.Int64(int64(d.Get("promotion_tier").(int))), AutoMinorVersionUpgrade: aws.Bool(d.Get("auto_minor_version_upgrade").(bool)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("availability_zone"); ok { diff --git a/aws/resource_aws_rds_cluster_parameter_group.go b/aws/resource_aws_rds_cluster_parameter_group.go index 577a5b6f4b3..c882de7660a 100644 --- a/aws/resource_aws_rds_cluster_parameter_group.go +++ b/aws/resource_aws_rds_cluster_parameter_group.go @@ -161,7 +161,7 @@ func resourceAwsRDSClusterParameterGroupRead(d *schema.ResourceData, meta interf // Only include user customized parameters as there's hundreds of system/default ones describeParametersOpts := rds.DescribeDBClusterParametersInput{ DBClusterParameterGroupName: aws.String(d.Id()), - Source: aws.String("user"), + Source: aws.String("user"), } describeParametersResp, err := rdsconn.DescribeDBClusterParameters(&describeParametersOpts) diff --git a/aws/resource_aws_redshift_cluster.go b/aws/resource_aws_redshift_cluster.go index 9f6c99ee3cf..6cde16cef90 100644 --- a/aws/resource_aws_redshift_cluster.go +++ b/aws/resource_aws_redshift_cluster.go @@ -415,7 +415,7 @@ func resourceAwsRedshiftClusterCreate(d *schema.ResourceData, meta interface{}) AllowVersionUpgrade: aws.Bool(d.Get("allow_version_upgrade").(bool)), PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), AutomatedSnapshotRetentionPeriod: aws.Int64(int64(d.Get("automated_snapshot_retention_period").(int))), - Tags: tags, + Tags: tags, } if v := d.Get("number_of_nodes").(int); v > 1 { diff --git a/aws/resource_aws_route53_record.go b/aws/resource_aws_route53_record.go index 92c10adb301..f0f6651065e 100644 --- a/aws/resource_aws_route53_record.go +++ b/aws/resource_aws_route53_record.go @@ -541,8 +541,8 @@ func resourceAwsRoute53RecordRead(d *schema.ResourceData, meta interface{}) erro name := normalizeAwsAliasName(*alias.DNSName) d.Set("alias", []interface{}{ map[string]interface{}{ - "zone_id": *alias.HostedZoneId, - "name": name, + "zone_id": *alias.HostedZoneId, + "name": name, "evaluate_target_health": *alias.EvaluateTargetHealth, }, }) diff --git a/aws/resource_aws_s3_bucket.go b/aws/resource_aws_s3_bucket.go index e304cd614ed..c935ddb2258 100644 --- a/aws/resource_aws_s3_bucket.go +++ b/aws/resource_aws_s3_bucket.go @@ -1700,7 +1700,7 @@ func resourceAwsS3BucketServerSideEncryptionConfigurationUpdate(s3conn *s3.S3, d rc.Rules = rules i := &s3.PutBucketEncryptionInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), ServerSideEncryptionConfiguration: rc, } log.Printf("[DEBUG] S3 put bucket replication configuration: %#v", i) @@ -1807,7 +1807,7 @@ func resourceAwsS3BucketReplicationConfigurationUpdate(s3conn *s3.S3, d *schema. rc.Rules = rules i := &s3.PutBucketReplicationInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), ReplicationConfiguration: rc, } log.Printf("[DEBUG] S3 put bucket replication configuration: %#v", i) diff --git a/aws/resource_aws_s3_bucket_inventory.go b/aws/resource_aws_s3_bucket_inventory.go index 71b8f7eb0d8..43a0498fb0c 100644 --- a/aws/resource_aws_s3_bucket_inventory.go +++ b/aws/resource_aws_s3_bucket_inventory.go @@ -221,8 +221,8 @@ func resourceAwsS3BucketInventoryPut(d *schema.ResourceData, meta interface{}) e } input := &s3.PutBucketInventoryConfigurationInput{ - Bucket: aws.String(bucket), - Id: aws.String(name), + Bucket: aws.String(bucket), + Id: aws.String(name), InventoryConfiguration: inventoryConfiguration, } diff --git a/aws/resource_aws_s3_bucket_notification.go b/aws/resource_aws_s3_bucket_notification.go index 4e313b6e833..ba03a393754 100644 --- a/aws/resource_aws_s3_bucket_notification.go +++ b/aws/resource_aws_s3_bucket_notification.go @@ -304,7 +304,7 @@ func resourceAwsS3BucketNotificationPut(d *schema.ResourceData, meta interface{} notificationConfiguration.TopicConfigurations = topicConfigs } i := &s3.PutBucketNotificationConfigurationInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), NotificationConfiguration: notificationConfiguration, } @@ -336,7 +336,7 @@ func resourceAwsS3BucketNotificationDelete(d *schema.ResourceData, meta interfac s3conn := meta.(*AWSClient).s3conn i := &s3.PutBucketNotificationConfigurationInput{ - Bucket: aws.String(d.Id()), + Bucket: aws.String(d.Id()), NotificationConfiguration: &s3.NotificationConfiguration{}, } diff --git a/aws/resource_aws_security_group_migrate_test.go b/aws/resource_aws_security_group_migrate_test.go index e990ef3e1f1..3b14edb0e5e 100644 --- a/aws/resource_aws_security_group_migrate_test.go +++ b/aws/resource_aws_security_group_migrate_test.go @@ -19,7 +19,7 @@ func TestAWSSecurityGroupMigrateState(t *testing.T) { "name": "test", }, Expected: map[string]string{ - "name": "test", + "name": "test", "revoke_rules_on_delete": "false", }, }, diff --git a/aws/resource_aws_service_discovery_service_migrate_test.go b/aws/resource_aws_service_discovery_service_migrate_test.go index ddd24a8f46b..8a36485b451 100644 --- a/aws/resource_aws_service_discovery_service_migrate_test.go +++ b/aws/resource_aws_service_discovery_service_migrate_test.go @@ -24,7 +24,7 @@ func TestAwsServiceDiscoveryServiceMigrateState(t *testing.T) { "dns_config.0.dns_records.#": "1", "dns_config.0.dns_records.0.ttl": "10", "dns_config.0.dns_records.0.type": "A", - "arn": "arn", + "arn": "arn", }, Expected: map[string]string{ "name": "test-name", @@ -34,7 +34,7 @@ func TestAwsServiceDiscoveryServiceMigrateState(t *testing.T) { "dns_config.0.dns_records.#": "1", "dns_config.0.dns_records.0.ttl": "10", "dns_config.0.dns_records.0.type": "A", - "arn": "arn", + "arn": "arn", }, }, } diff --git a/aws/resource_aws_sns_topic.go b/aws/resource_aws_sns_topic.go index be5d2bfcc8e..519aa4698f2 100644 --- a/aws/resource_aws_sns_topic.go +++ b/aws/resource_aws_sns_topic.go @@ -27,10 +27,10 @@ var SNSAttributeMap = map[string]string{ "lambda_failure_feedback_role_arn": "LambdaFailureFeedbackRoleArn", "lambda_success_feedback_role_arn": "LambdaSuccessFeedbackRoleArn", "lambda_success_feedback_sample_rate": "LambdaSuccessFeedbackSampleRate", - "policy": "Policy", - "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn", - "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", - "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", + "policy": "Policy", + "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn", + "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", + "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", } func resourceAwsSnsTopic() *schema.Resource { diff --git a/aws/resource_aws_spot_fleet_request.go b/aws/resource_aws_spot_fleet_request.go index 15fcb4c01ed..d794d09c508 100644 --- a/aws/resource_aws_spot_fleet_request.go +++ b/aws/resource_aws_spot_fleet_request.go @@ -610,7 +610,7 @@ func resourceAwsSpotFleetRequestCreate(d *schema.ResourceData, meta interface{}) TerminateInstancesWithExpiration: aws.Bool(d.Get("terminate_instances_with_expiration").(bool)), ReplaceUnhealthyInstances: aws.Bool(d.Get("replace_unhealthy_instances").(bool)), InstanceInterruptionBehavior: aws.String(d.Get("instance_interruption_behaviour").(string)), - Type: aws.String(d.Get("fleet_type").(string)), + Type: aws.String(d.Get("fleet_type").(string)), } if v, ok := d.GetOk("excess_capacity_termination_policy"); ok { diff --git a/aws/resource_aws_spot_instance_request.go b/aws/resource_aws_spot_instance_request.go index 5460b0790cc..5a0dbeabc84 100644 --- a/aws/resource_aws_spot_instance_request.go +++ b/aws/resource_aws_spot_instance_request.go @@ -118,8 +118,8 @@ func resourceAwsSpotInstanceRequestCreate(d *schema.ResourceData, meta interface } spotOpts := &ec2.RequestSpotInstancesInput{ - SpotPrice: aws.String(d.Get("spot_price").(string)), - Type: aws.String(d.Get("spot_type").(string)), + SpotPrice: aws.String(d.Get("spot_price").(string)), + Type: aws.String(d.Get("spot_type").(string)), InstanceInterruptionBehavior: aws.String(d.Get("instance_interruption_behaviour").(string)), // Though the AWS API supports creating spot instance requests for multiple diff --git a/aws/resource_aws_ssm_maintenance_window.go b/aws/resource_aws_ssm_maintenance_window.go index f9d55e8d039..a7c939cc747 100644 --- a/aws/resource_aws_ssm_maintenance_window.go +++ b/aws/resource_aws_ssm_maintenance_window.go @@ -55,10 +55,10 @@ func resourceAwsSsmMaintenanceWindowCreate(d *schema.ResourceData, meta interfac ssmconn := meta.(*AWSClient).ssmconn params := &ssm.CreateMaintenanceWindowInput{ - Name: aws.String(d.Get("name").(string)), - Schedule: aws.String(d.Get("schedule").(string)), - Duration: aws.Int64(int64(d.Get("duration").(int))), - Cutoff: aws.Int64(int64(d.Get("cutoff").(int))), + Name: aws.String(d.Get("name").(string)), + Schedule: aws.String(d.Get("schedule").(string)), + Duration: aws.Int64(int64(d.Get("duration").(int))), + Cutoff: aws.Int64(int64(d.Get("cutoff").(int))), AllowUnassociatedTargets: aws.Bool(d.Get("allow_unassociated_targets").(bool)), } diff --git a/aws/resource_aws_ssm_patch_baseline.go b/aws/resource_aws_ssm_patch_baseline.go index 7183190f2a9..c271c84ae40 100644 --- a/aws/resource_aws_ssm_patch_baseline.go +++ b/aws/resource_aws_ssm_patch_baseline.go @@ -147,7 +147,7 @@ func resourceAwsSsmPatchBaselineCreate(d *schema.ResourceData, meta interface{}) ssmconn := meta.(*AWSClient).ssmconn params := &ssm.CreatePatchBaselineInput{ - Name: aws.String(d.Get("name").(string)), + Name: aws.String(d.Get("name").(string)), ApprovedPatchesComplianceLevel: aws.String(d.Get("approved_patches_compliance_level").(string)), OperatingSystem: aws.String(d.Get("operating_system").(string)), } diff --git a/aws/resource_aws_swf_domain.go b/aws/resource_aws_swf_domain.go index 8668ec108fd..5e254496611 100644 --- a/aws/resource_aws_swf_domain.go +++ b/aws/resource_aws_swf_domain.go @@ -70,7 +70,7 @@ func resourceAwsSwfDomainCreate(d *schema.ResourceData, meta interface{}) error } input := &swf.RegisterDomainInput{ - Name: aws.String(name), + Name: aws.String(name), WorkflowExecutionRetentionPeriodInDays: aws.String(d.Get("workflow_execution_retention_period_in_days").(string)), } diff --git a/aws/resource_aws_vpc.go b/aws/resource_aws_vpc.go index f6f0b4dff7c..73a9defe488 100644 --- a/aws/resource_aws_vpc.go +++ b/aws/resource_aws_vpc.go @@ -411,7 +411,7 @@ func resourceAwsVpcUpdate(d *schema.ResourceData, meta interface{}) error { if toAssign { modifyOpts := &ec2.AssociateVpcCidrBlockInput{ - VpcId: &vpcid, + VpcId: &vpcid, AmazonProvidedIpv6CidrBlock: aws.Bool(toAssign), } log.Printf("[INFO] Enabling assign_generated_ipv6_cidr_block vpc attribute for %s: %#v", diff --git a/aws/validators_test.go b/aws/validators_test.go index df9fed35db5..3f11fbc8807 100644 --- a/aws/validators_test.go +++ b/aws/validators_test.go @@ -1563,6 +1563,66 @@ func TestValidateElbNamePrefix(t *testing.T) { } } +func TestValidateNeptuneEventSubscriptionName(t *testing.T) { + cases := []struct { + Value string + ErrCount int + }{ + { + Value: "testing123!", + ErrCount: 1, + }, + { + Value: "testing 123", + ErrCount: 1, + }, + { + Value: "testing_123", + ErrCount: 1, + }, + { + Value: randomString(256), + ErrCount: 1, + }, + } + for _, tc := range cases { + _, errors := validateNeptuneEventSubscriptionName(tc.Value, "aws_neptune_event_subscription") + if len(errors) != tc.ErrCount { + t.Fatalf("Expected the Neptune Event Subscription Name to trigger a validation error for %q", tc.Value) + } + } +} + +func TestValidateNeptuneEventSubscriptionNamePrefix(t *testing.T) { + cases := []struct { + Value string + ErrCount int + }{ + { + Value: "testing123!", + ErrCount: 1, + }, + { + Value: "testing 123", + ErrCount: 1, + }, + { + Value: "testing_123", + ErrCount: 1, + }, + { + Value: randomString(254), + ErrCount: 1, + }, + } + for _, tc := range cases { + _, errors := validateNeptuneEventSubscriptionNamePrefix(tc.Value, "aws_neptune_event_subscription") + if len(errors) != tc.ErrCount { + t.Fatalf("Expected the Neptune Event Subscription Name Prefix to trigger a validation error for %q", tc.Value) + } + } +} + func TestValidateDbSubnetGroupName(t *testing.T) { cases := []struct { Value string @@ -2280,23 +2340,23 @@ func TestValidateCognitoRoleMappingsAmbiguousRoleResolutionAgainstType(t *testin }{ { AmbiguousRoleResolution: nil, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 1, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 1, }, { AmbiguousRoleResolution: "foo", - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, // 0 as it should be defined, the value isn't validated here + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, // 0 as it should be defined, the value isn't validated here }, { AmbiguousRoleResolution: cognitoidentity.AmbiguousRoleResolutionTypeAuthenticatedRole, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, }, { AmbiguousRoleResolution: cognitoidentity.AmbiguousRoleResolutionTypeDeny, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, }, } From df74055e07548a249394ec008d6a014525691bb5 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Fri, 31 Aug 2018 18:54:48 -0400 Subject: [PATCH 035/184] vendor: aws/aws-sdk-go@v1.15.26 * Updated via `govendor fetch github.com/aws/aws-sdk-go/...@v1.15.26` --- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 10 + .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/service/codebuild/api.go | 298 +++++ .../aws/aws-sdk-go/service/eks/api.go | 35 +- .../aws/aws-sdk-go/service/eks/doc.go | 16 +- .../aws/aws-sdk-go/service/eks/errors.go | 6 +- .../aws/aws-sdk-go/service/iot/api.go | 456 ++++++-- .../aws-sdk-go/service/mediapackage/api.go | 203 +++- .../aws/aws-sdk-go/service/redshift/api.go | 22 +- .../aws/aws-sdk-go/service/sagemaker/api.go | 25 +- .../aws/aws-sdk-go/service/waf/api.go | 954 +++++++++++++-- .../aws/aws-sdk-go/service/waf/errors.go | 8 +- .../aws/aws-sdk-go/service/wafregional/api.go | 475 +++++++- .../aws-sdk-go/service/wafregional/errors.go | 8 +- vendor/vendor.json | 1038 ++++++++--------- 15 files changed, 2758 insertions(+), 798 deletions(-) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index ebce035cfdd..86788100adc 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -113,6 +113,7 @@ const ( ImportexportServiceID = "importexport" // Importexport. InspectorServiceID = "inspector" // Inspector. IotServiceID = "iot" // Iot. + IotanalyticsServiceID = "iotanalytics" // Iotanalytics. KinesisServiceID = "kinesis" // Kinesis. KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics. KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo. @@ -1409,6 +1410,15 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "iotanalytics": service{ + + Endpoints: endpoints{ + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "kinesis": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index f44b55400cf..844aa4d26f0 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.15.21" +const SDKVersion = "1.15.26" diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go index 52824177a7b..41ad39eeb7c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go @@ -1626,6 +1626,33 @@ type Build struct { // The name of the AWS CodeBuild project. ProjectName *string `locationName:"projectName" min:"1" type:"string"` + // An array of ProjectArtifacts objects. + SecondaryArtifacts []*BuildArtifacts `locationName:"secondaryArtifacts" type:"list"` + + // An array of ProjectSourceVersion objects. Each ProjectSourceVersion must + // be one of: + // + // * For AWS CodeCommit: the commit ID to use. + // + // * For GitHub: the commit ID, pull request ID, branch name, or tag name + // that corresponds to the version of the source code you want to build. + // If a pull request ID is specified, it must use the format pr/pull-request-ID + // (for example pr/25). If a branch name is specified, the branch's HEAD + // commit ID will be used. If not specified, the default branch's HEAD commit + // ID will be used. + // + // * For Bitbucket: the commit ID, branch name, or tag name that corresponds + // to the version of the source code you want to build. If a branch name + // is specified, the branch's HEAD commit ID will be used. If not specified, + // the default branch's HEAD commit ID will be used. + // + // * For Amazon Simple Storage Service (Amazon S3): the version ID of the + // object representing the build input ZIP file to use. + SecondarySourceVersions []*ProjectSourceVersion `locationName:"secondarySourceVersions" type:"list"` + + // An array of ProjectSource objects. + SecondarySources []*ProjectSource `locationName:"secondarySources" type:"list"` + // The name of a service role used for this build. ServiceRole *string `locationName:"serviceRole" min:"1" type:"string"` @@ -1749,6 +1776,24 @@ func (s *Build) SetProjectName(v string) *Build { return s } +// SetSecondaryArtifacts sets the SecondaryArtifacts field's value. +func (s *Build) SetSecondaryArtifacts(v []*BuildArtifacts) *Build { + s.SecondaryArtifacts = v + return s +} + +// SetSecondarySourceVersions sets the SecondarySourceVersions field's value. +func (s *Build) SetSecondarySourceVersions(v []*ProjectSourceVersion) *Build { + s.SecondarySourceVersions = v + return s +} + +// SetSecondarySources sets the SecondarySources field's value. +func (s *Build) SetSecondarySources(v []*ProjectSource) *Build { + s.SecondarySources = v + return s +} + // SetServiceRole sets the ServiceRole field's value. func (s *Build) SetServiceRole(v string) *Build { s.ServiceRole = &v @@ -1789,6 +1834,9 @@ func (s *Build) SetVpcConfig(v *VpcConfig) *Build { type BuildArtifacts struct { _ struct{} `type:"structure"` + // An identifier for this artifact definition. + ArtifactIdentifier *string `locationName:"artifactIdentifier" type:"string"` + // Information that tells you if encryption for build artifacts is disabled. EncryptionDisabled *bool `locationName:"encryptionDisabled" type:"boolean"` @@ -1830,6 +1878,12 @@ func (s BuildArtifacts) GoString() string { return s.String() } +// SetArtifactIdentifier sets the ArtifactIdentifier field's value. +func (s *BuildArtifacts) SetArtifactIdentifier(v string) *BuildArtifacts { + s.ArtifactIdentifier = &v + return s +} + // SetEncryptionDisabled sets the EncryptionDisabled field's value. func (s *BuildArtifacts) SetEncryptionDisabled(v bool) *BuildArtifacts { s.EncryptionDisabled = &v @@ -2033,6 +2087,12 @@ type CreateProjectInput struct { // Name is a required field Name *string `locationName:"name" min:"2" type:"string" required:"true"` + // An array of ProjectArtifacts objects. + SecondaryArtifacts []*ProjectArtifacts `locationName:"secondaryArtifacts" type:"list"` + + // An array of ProjectSource objects. + SecondarySources []*ProjectSource `locationName:"secondarySources" type:"list"` + // The ARN of the AWS Identity and Access Management (IAM) role that enables // AWS CodeBuild to interact with dependent AWS services on behalf of the AWS // account. @@ -2115,6 +2175,26 @@ func (s *CreateProjectInput) Validate() error { invalidParams.AddNested("Environment", err.(request.ErrInvalidParams)) } } + if s.SecondaryArtifacts != nil { + for i, v := range s.SecondaryArtifacts { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondaryArtifacts", i), err.(request.ErrInvalidParams)) + } + } + } + if s.SecondarySources != nil { + for i, v := range s.SecondarySources { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondarySources", i), err.(request.ErrInvalidParams)) + } + } + } if s.Source != nil { if err := s.Source.Validate(); err != nil { invalidParams.AddNested("Source", err.(request.ErrInvalidParams)) @@ -2184,6 +2264,18 @@ func (s *CreateProjectInput) SetName(v string) *CreateProjectInput { return s } +// SetSecondaryArtifacts sets the SecondaryArtifacts field's value. +func (s *CreateProjectInput) SetSecondaryArtifacts(v []*ProjectArtifacts) *CreateProjectInput { + s.SecondaryArtifacts = v + return s +} + +// SetSecondarySources sets the SecondarySources field's value. +func (s *CreateProjectInput) SetSecondarySources(v []*ProjectSource) *CreateProjectInput { + s.SecondarySources = v + return s +} + // SetServiceRole sets the ServiceRole field's value. func (s *CreateProjectInput) SetServiceRole(v string) *CreateProjectInput { s.ServiceRole = &v @@ -3144,6 +3236,12 @@ type Project struct { // The name of the build project. Name *string `locationName:"name" min:"2" type:"string"` + // An array of ProjectArtifacts objects. + SecondaryArtifacts []*ProjectArtifacts `locationName:"secondaryArtifacts" type:"list"` + + // An array of ProjectSource objects. + SecondarySources []*ProjectSource `locationName:"secondarySources" type:"list"` + // The ARN of the AWS Identity and Access Management (IAM) role that enables // AWS CodeBuild to interact with dependent AWS services on behalf of the AWS // account. @@ -3241,6 +3339,18 @@ func (s *Project) SetName(v string) *Project { return s } +// SetSecondaryArtifacts sets the SecondaryArtifacts field's value. +func (s *Project) SetSecondaryArtifacts(v []*ProjectArtifacts) *Project { + s.SecondaryArtifacts = v + return s +} + +// SetSecondarySources sets the SecondarySources field's value. +func (s *Project) SetSecondarySources(v []*ProjectSource) *Project { + s.SecondarySources = v + return s +} + // SetServiceRole sets the ServiceRole field's value. func (s *Project) SetServiceRole(v string) *Project { s.ServiceRole = &v @@ -3281,6 +3391,9 @@ func (s *Project) SetWebhook(v *Webhook) *Project { type ProjectArtifacts struct { _ struct{} `type:"structure"` + // An identifier for this artifact definition. + ArtifactIdentifier *string `locationName:"artifactIdentifier" type:"string"` + // Set to true if you do not want your output artifacts encrypted. This option // is only valid if your artifacts type is Amazon S3. If this is set with another // artifacts type, an invalidInputException will be thrown. @@ -3427,6 +3540,12 @@ func (s *ProjectArtifacts) Validate() error { return nil } +// SetArtifactIdentifier sets the ArtifactIdentifier field's value. +func (s *ProjectArtifacts) SetArtifactIdentifier(v string) *ProjectArtifacts { + s.ArtifactIdentifier = &v + return s +} + // SetEncryptionDisabled sets the EncryptionDisabled field's value. func (s *ProjectArtifacts) SetEncryptionDisabled(v bool) *ProjectArtifacts { s.EncryptionDisabled = &v @@ -3774,6 +3893,9 @@ type ProjectSource struct { // is thrown. ReportBuildStatus *bool `locationName:"reportBuildStatus" type:"boolean"` + // An identifier for this project source. + SourceIdentifier *string `locationName:"sourceIdentifier" type:"string"` + // The type of repository that contains the source code to be built. Valid values // include: // @@ -3857,12 +3979,89 @@ func (s *ProjectSource) SetReportBuildStatus(v bool) *ProjectSource { return s } +// SetSourceIdentifier sets the SourceIdentifier field's value. +func (s *ProjectSource) SetSourceIdentifier(v string) *ProjectSource { + s.SourceIdentifier = &v + return s +} + // SetType sets the Type field's value. func (s *ProjectSource) SetType(v string) *ProjectSource { s.Type = &v return s } +// A source identifier and its corresponding version. +type ProjectSourceVersion struct { + _ struct{} `type:"structure"` + + // An identifier for a source in the build project. + // + // SourceIdentifier is a required field + SourceIdentifier *string `locationName:"sourceIdentifier" type:"string" required:"true"` + + // The source version for the corresponding source identifier. If specified, + // must be one of: + // + // * For AWS CodeCommit: the commit ID to use. + // + // * For GitHub: the commit ID, pull request ID, branch name, or tag name + // that corresponds to the version of the source code you want to build. + // If a pull request ID is specified, it must use the format pr/pull-request-ID + // (for example pr/25). If a branch name is specified, the branch's HEAD + // commit ID will be used. If not specified, the default branch's HEAD commit + // ID will be used. + // + // * For Bitbucket: the commit ID, branch name, or tag name that corresponds + // to the version of the source code you want to build. If a branch name + // is specified, the branch's HEAD commit ID will be used. If not specified, + // the default branch's HEAD commit ID will be used. + // + // * For Amazon Simple Storage Service (Amazon S3): the version ID of the + // object representing the build input ZIP file to use. + // + // SourceVersion is a required field + SourceVersion *string `locationName:"sourceVersion" type:"string" required:"true"` +} + +// String returns the string representation +func (s ProjectSourceVersion) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ProjectSourceVersion) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ProjectSourceVersion) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ProjectSourceVersion"} + if s.SourceIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("SourceIdentifier")) + } + if s.SourceVersion == nil { + invalidParams.Add(request.NewErrParamRequired("SourceVersion")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSourceIdentifier sets the SourceIdentifier field's value. +func (s *ProjectSourceVersion) SetSourceIdentifier(v string) *ProjectSourceVersion { + s.SourceIdentifier = &v + return s +} + +// SetSourceVersion sets the SourceVersion field's value. +func (s *ProjectSourceVersion) SetSourceVersion(v string) *ProjectSourceVersion { + s.SourceVersion = &v + return s +} + // Information about the authorization settings for AWS CodeBuild to access // the source code to be built. // @@ -3982,6 +4181,16 @@ type StartBuildInput struct { // GitHub, an invalidInputException is thrown. ReportBuildStatusOverride *bool `locationName:"reportBuildStatusOverride" type:"boolean"` + // An array of ProjectArtifacts objects. + SecondaryArtifactsOverride []*ProjectArtifacts `locationName:"secondaryArtifactsOverride" type:"list"` + + // An array of ProjectSource objects. + SecondarySourcesOverride []*ProjectSource `locationName:"secondarySourcesOverride" type:"list"` + + // An array of ProjectSourceVersion objects that specify one or more versions + // of the project's secondary sources to be used for this build only. + SecondarySourcesVersionOverride []*ProjectSourceVersion `locationName:"secondarySourcesVersionOverride" type:"list"` + // The name of a service role for this build that overrides the one specified // in the build project. ServiceRoleOverride *string `locationName:"serviceRoleOverride" min:"1" type:"string"` @@ -4073,6 +4282,36 @@ func (s *StartBuildInput) Validate() error { } } } + if s.SecondaryArtifactsOverride != nil { + for i, v := range s.SecondaryArtifactsOverride { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondaryArtifactsOverride", i), err.(request.ErrInvalidParams)) + } + } + } + if s.SecondarySourcesOverride != nil { + for i, v := range s.SecondarySourcesOverride { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondarySourcesOverride", i), err.(request.ErrInvalidParams)) + } + } + } + if s.SecondarySourcesVersionOverride != nil { + for i, v := range s.SecondarySourcesVersionOverride { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondarySourcesVersionOverride", i), err.(request.ErrInvalidParams)) + } + } + } if s.SourceAuthOverride != nil { if err := s.SourceAuthOverride.Validate(); err != nil { invalidParams.AddNested("SourceAuthOverride", err.(request.ErrInvalidParams)) @@ -4169,6 +4408,24 @@ func (s *StartBuildInput) SetReportBuildStatusOverride(v bool) *StartBuildInput return s } +// SetSecondaryArtifactsOverride sets the SecondaryArtifactsOverride field's value. +func (s *StartBuildInput) SetSecondaryArtifactsOverride(v []*ProjectArtifacts) *StartBuildInput { + s.SecondaryArtifactsOverride = v + return s +} + +// SetSecondarySourcesOverride sets the SecondarySourcesOverride field's value. +func (s *StartBuildInput) SetSecondarySourcesOverride(v []*ProjectSource) *StartBuildInput { + s.SecondarySourcesOverride = v + return s +} + +// SetSecondarySourcesVersionOverride sets the SecondarySourcesVersionOverride field's value. +func (s *StartBuildInput) SetSecondarySourcesVersionOverride(v []*ProjectSourceVersion) *StartBuildInput { + s.SecondarySourcesVersionOverride = v + return s +} + // SetServiceRoleOverride sets the ServiceRoleOverride field's value. func (s *StartBuildInput) SetServiceRoleOverride(v string) *StartBuildInput { s.ServiceRoleOverride = &v @@ -4378,6 +4635,12 @@ type UpdateProjectInput struct { // Name is a required field Name *string `locationName:"name" min:"1" type:"string" required:"true"` + // An array of ProjectSource objects. + SecondaryArtifacts []*ProjectArtifacts `locationName:"secondaryArtifacts" type:"list"` + + // An array of ProjectSource objects. + SecondarySources []*ProjectSource `locationName:"secondarySources" type:"list"` + // The replacement ARN of the AWS Identity and Access Management (IAM) role // that enables AWS CodeBuild to interact with dependent AWS services on behalf // of the AWS account. @@ -4444,6 +4707,26 @@ func (s *UpdateProjectInput) Validate() error { invalidParams.AddNested("Environment", err.(request.ErrInvalidParams)) } } + if s.SecondaryArtifacts != nil { + for i, v := range s.SecondaryArtifacts { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondaryArtifacts", i), err.(request.ErrInvalidParams)) + } + } + } + if s.SecondarySources != nil { + for i, v := range s.SecondarySources { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecondarySources", i), err.(request.ErrInvalidParams)) + } + } + } if s.Source != nil { if err := s.Source.Validate(); err != nil { invalidParams.AddNested("Source", err.(request.ErrInvalidParams)) @@ -4513,6 +4796,18 @@ func (s *UpdateProjectInput) SetName(v string) *UpdateProjectInput { return s } +// SetSecondaryArtifacts sets the SecondaryArtifacts field's value. +func (s *UpdateProjectInput) SetSecondaryArtifacts(v []*ProjectArtifacts) *UpdateProjectInput { + s.SecondaryArtifacts = v + return s +} + +// SetSecondarySources sets the SecondarySources field's value. +func (s *UpdateProjectInput) SetSecondarySources(v []*ProjectSource) *UpdateProjectInput { + s.SecondarySources = v + return s +} + // SetServiceRole sets the ServiceRole field's value. func (s *UpdateProjectInput) SetServiceRole(v string) *UpdateProjectInput { s.ServiceRole = &v @@ -4951,6 +5246,9 @@ const ( // SourceTypeGithubEnterprise is a SourceType enum value SourceTypeGithubEnterprise = "GITHUB_ENTERPRISE" + + // SourceTypeNoSource is a SourceType enum value + SourceTypeNoSource = "NO_SOURCE" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/api.go b/vendor/github.com/aws/aws-sdk-go/service/eks/api.go index 4d76063f1b8..bb1cefd8892 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/api.go @@ -104,11 +104,11 @@ func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Requ // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" -// The service is unavailable, back off and retry the operation. +// The service is unavailable. Back off and retry the operation. // // * ErrCodeUnsupportedAvailabilityZoneException "UnsupportedAvailabilityZoneException" // At least one of your specified cluster subnets is in an Availability Zone -// that does not support Amazon EKS. The exception output will specify the supported +// that does not support Amazon EKS. The exception output specifies the supported // Availability Zones for your account, from which you can choose subnets for // your cluster. // @@ -200,7 +200,7 @@ func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Requ // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are region-specific. +// with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action, such as using an action @@ -211,7 +211,7 @@ func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Requ // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" -// The service is unavailable, back off and retry the operation. +// The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster func (c *EKS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) { @@ -299,7 +299,7 @@ func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request. // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource could not be found. You can view your available clusters -// with ListClusters. Amazon EKS clusters are region-specific. +// with ListClusters. Amazon EKS clusters are Region-specific. // // * ErrCodeClientException "ClientException" // These errors are usually caused by a client action, such as using an action @@ -310,7 +310,7 @@ func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request. // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" -// The service is unavailable, back off and retry the operation. +// The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster func (c *EKS) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) { @@ -378,7 +378,7 @@ func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Reques // ListClusters API operation for Amazon Elastic Container Service for Kubernetes. // -// Lists the Amazon EKS clusters in your AWS account in the specified region. +// Lists the Amazon EKS clusters in your AWS account in the specified Region. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -401,7 +401,7 @@ func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Reques // These errors are usually caused by a server-side issue. // // * ErrCodeServiceUnavailableException "ServiceUnavailableException" -// The service is unavailable, back off and retry the operation. +// The service is unavailable. Back off and retry the operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters func (c *EKS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) { @@ -474,6 +474,11 @@ type Cluster struct { // The name of the cluster. Name *string `locationName:"name" type:"string"` + // The platform version of your Amazon EKS cluster. For more information, see + // Platform Versions (eks/latest/userguide/platform-versions.html) in the Amazon + // EKS User Guide. + PlatformVersion *string `locationName:"platformVersion" type:"string"` + // The VPC subnets and security groups used by the cluster control plane. Amazon // EKS VPC resources have specific requirements to work properly with Kubernetes. // For more information, see Cluster VPC Considerations (http://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) @@ -539,6 +544,12 @@ func (s *Cluster) SetName(v string) *Cluster { return s } +// SetPlatformVersion sets the PlatformVersion field's value. +func (s *Cluster) SetPlatformVersion(v string) *Cluster { + s.PlatformVersion = &v + return s +} + // SetResourcesVpcConfig sets the ResourcesVpcConfig field's value. func (s *Cluster) SetResourcesVpcConfig(v *VpcConfigResponse) *Cluster { s.ResourcesVpcConfig = v @@ -579,7 +590,9 @@ type CreateClusterInput struct { // EKS VPC resources have specific requirements to work properly with Kubernetes. // For more information, see Cluster VPC Considerations (http://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) // and Cluster Security Group Considerations (http://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) - // in the Amazon EKS User Guide. + // in the Amazon EKS User Guide. You must specify at least two subnets. You + // may specify up to 5 security groups, but we recommend that you use a dedicated + // security group for your cluster control plane. // // ResourcesVpcConfig is a required field ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure" required:"true"` @@ -587,7 +600,7 @@ type CreateClusterInput struct { // The Amazon Resource Name (ARN) of the IAM role that provides permissions // for Amazon EKS to make calls to other AWS API operations on your behalf. // For more information, see Amazon EKS Service IAM Role (http://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) - // in the Amazon EKS User Guide + // in the Amazon EKS User Guide. // // RoleArn is a required field RoleArn *string `locationName:"roleArn" type:"string" required:"true"` @@ -869,7 +882,7 @@ func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput { type ListClustersOutput struct { _ struct{} `type:"structure"` - // A list of all of the clusters for your account in the specified region. + // A list of all of the clusters for your account in the specified Region. Clusters []*string `locationName:"clusters" type:"list"` // The nextToken value to include in a future ListClusters request. When the diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/doc.go b/vendor/github.com/aws/aws-sdk-go/service/eks/doc.go index 9f819afc685..0f194107613 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/doc.go @@ -9,21 +9,7 @@ // an open-source system for automating the deployment, scaling, and management // of containerized applications. // -// Amazon EKS runs three Kubernetes control plane instances across three Availability -// Zones to ensure high availability. Amazon EKS automatically detects and replaces -// unhealthy control plane instances, and it provides automated version upgrades -// and patching for them. -// -// Amazon EKS is also integrated with many AWS services to provide scalability -// and security for your applications, including the following: -// -// * Elastic Load Balancing for load distribution -// -// * IAM for authentication -// -// * Amazon VPC for isolation -// -// Amazon EKS runs up to date versions of the open-source Kubernetes software, +// Amazon EKS runs up-to-date versions of the open-source Kubernetes software, // so you can use all the existing plugins and tooling from the Kubernetes community. // Applications running on Amazon EKS are fully compatible with applications // running on any standard Kubernetes environment, whether running in on-premises diff --git a/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go b/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go index 825e7d2dbd8..98a2410c563 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/eks/errors.go @@ -35,7 +35,7 @@ const ( // "ResourceNotFoundException". // // The specified resource could not be found. You can view your available clusters - // with ListClusters. Amazon EKS clusters are region-specific. + // with ListClusters. Amazon EKS clusters are Region-specific. ErrCodeResourceNotFoundException = "ResourceNotFoundException" // ErrCodeServerException for service response error code @@ -47,14 +47,14 @@ const ( // ErrCodeServiceUnavailableException for service response error code // "ServiceUnavailableException". // - // The service is unavailable, back off and retry the operation. + // The service is unavailable. Back off and retry the operation. ErrCodeServiceUnavailableException = "ServiceUnavailableException" // ErrCodeUnsupportedAvailabilityZoneException for service response error code // "UnsupportedAvailabilityZoneException". // // At least one of your specified cluster subnets is in an Availability Zone - // that does not support Amazon EKS. The exception output will specify the supported + // that does not support Amazon EKS. The exception output specifies the supported // Availability Zones for your account, from which you can choose subnets for // your cluster. ErrCodeUnsupportedAvailabilityZoneException = "UnsupportedAvailabilityZoneException" diff --git a/vendor/github.com/aws/aws-sdk-go/service/iot/api.go b/vendor/github.com/aws/aws-sdk-go/service/iot/api.go index 70ebbdcd43c..5d610e3a8f5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/iot/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/iot/api.go @@ -1604,6 +1604,9 @@ func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request. // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is not valid. // +// * ErrCodeLimitExceededException "LimitExceededException" +// A limit has been exceeded. +// // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource does not exist. // @@ -2170,6 +2173,9 @@ func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Reques // * ErrCodeInvalidRequestException "InvalidRequestException" // The request is not valid. // +// * ErrCodeLimitExceededException "LimitExceededException" +// A limit has been exceeded. +// // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The specified resource does not exist. // @@ -3222,6 +3228,10 @@ func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request. // * ErrCodeServiceUnavailableException "ServiceUnavailableException" // The service is temporarily unavailable. // +// * ErrCodeVersionConflictException "VersionConflictException" +// An exception thrown when the version of an entity specified with the expectedVersion +// parameter does not match the latest version in the system. +// func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) { req, out := c.DeleteOTAUpdateRequest(input) return out, req.Send() @@ -15165,6 +15175,43 @@ func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary { return s } +// Configuration for the rollout of OTA updates. +type AwsJobExecutionsRolloutConfig struct { + _ struct{} `type:"structure"` + + // The maximum number of OTA update job executions started per minute. + MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"` +} + +// String returns the string representation +func (s AwsJobExecutionsRolloutConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsJobExecutionsRolloutConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AwsJobExecutionsRolloutConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"} + if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaximumPerMinute sets the MaximumPerMinute field's value. +func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig { + s.MaximumPerMinute = &v + return s +} + // A Device Defender security profile behavior. type Behavior struct { _ struct{} `type:"structure"` @@ -16214,6 +16261,9 @@ type CodeSigning struct { // A custom method for code signing a file. CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"` + + // Describes the code-signing job. + StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"` } // String returns the string representation @@ -16229,9 +16279,9 @@ func (s CodeSigning) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CodeSigning) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CodeSigning"} - if s.CustomCodeSigning != nil { - if err := s.CustomCodeSigning.Validate(); err != nil { - invalidParams.AddNested("CustomCodeSigning", err.(request.ErrInvalidParams)) + if s.StartSigningJobParameter != nil { + if err := s.StartSigningJobParameter.Validate(); err != nil { + invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams)) } } @@ -16253,6 +16303,12 @@ func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning { return s } +// SetStartSigningJobParameter sets the StartSigningJobParameter field's value. +func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning { + s.StartSigningJobParameter = v + return s +} + // Describes the certificate chain being used when code signing a file. type CodeSigningCertificateChain struct { _ struct{} `type:"structure"` @@ -16262,9 +16318,6 @@ type CodeSigningCertificateChain struct { // A base64 encoded binary representation of the code signing certificate chain. InlineDocument *string `locationName:"inlineDocument" type:"string"` - - // A stream of the certificate chain files. - Stream *Stream `locationName:"stream" type:"structure"` } // String returns the string representation @@ -16277,21 +16330,6 @@ func (s CodeSigningCertificateChain) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CodeSigningCertificateChain) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CodeSigningCertificateChain"} - if s.Stream != nil { - if err := s.Stream.Validate(); err != nil { - invalidParams.AddNested("Stream", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetCertificateName sets the CertificateName field's value. func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain { s.CertificateName = &v @@ -16304,12 +16342,6 @@ func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCe return s } -// SetStream sets the Stream field's value. -func (s *CodeSigningCertificateChain) SetStream(v *Stream) *CodeSigningCertificateChain { - s.Stream = v - return s -} - // Describes the signature for a file. type CodeSigningSignature struct { _ struct{} `type:"structure"` @@ -16318,9 +16350,6 @@ type CodeSigningSignature struct { // // InlineDocument is automatically base64 encoded/decoded by the SDK. InlineDocument []byte `locationName:"inlineDocument" type:"blob"` - - // A stream of the code signing signature. - Stream *Stream `locationName:"stream" type:"structure"` } // String returns the string representation @@ -16333,33 +16362,12 @@ func (s CodeSigningSignature) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CodeSigningSignature) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CodeSigningSignature"} - if s.Stream != nil { - if err := s.Stream.Validate(); err != nil { - invalidParams.AddNested("Stream", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetInlineDocument sets the InlineDocument field's value. func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature { s.InlineDocument = v return s } -// SetStream sets the Stream field's value. -func (s *CodeSigningSignature) SetStream(v *Stream) *CodeSigningSignature { - s.Stream = v - return s -} - // Configuration. type Configuration struct { _ struct{} `type:"structure"` @@ -16861,6 +16869,9 @@ type CreateOTAUpdateInput struct { // A list of additional OTA update parameters which are name-value pairs. AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"` + // Configuration for the rollout of OTA updates. + AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"` + // The description of the OTA update. Description *string `locationName:"description" type:"string"` @@ -16930,6 +16941,11 @@ func (s *CreateOTAUpdateInput) Validate() error { if s.Targets != nil && len(s.Targets) < 1 { invalidParams.Add(request.NewErrParamMinLen("Targets", 1)) } + if s.AwsJobExecutionsRolloutConfig != nil { + if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil { + invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams)) + } + } if s.Files != nil { for i, v := range s.Files { if v == nil { @@ -16953,6 +16969,12 @@ func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *Cr return s } +// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value. +func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput { + s.AwsJobExecutionsRolloutConfig = v + return s +} + // SetDescription sets the Description field's value. func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput { s.Description = &v @@ -18178,26 +18200,6 @@ func (s CustomCodeSigning) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CustomCodeSigning) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CustomCodeSigning"} - if s.CertificateChain != nil { - if err := s.CertificateChain.Validate(); err != nil { - invalidParams.AddNested("CertificateChain", err.(request.ErrInvalidParams)) - } - } - if s.Signature != nil { - if err := s.Signature.Validate(); err != nil { - invalidParams.AddNested("Signature", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetCertificateChain sets the CertificateChain field's value. func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning { s.CertificateChain = v @@ -18622,6 +18624,14 @@ func (s DeleteJobOutput) GoString() string { type DeleteOTAUpdateInput struct { _ struct{} `type:"structure"` + // Specifies if the stream associated with an OTA update should be deleted when + // the OTA update is deleted. + DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"` + + // Specifies if the AWS Job associated with the OTA update should be deleted + // with the OTA update is deleted. + ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"` + // The OTA update ID to delete. // // OtaUpdateId is a required field @@ -18654,6 +18664,18 @@ func (s *DeleteOTAUpdateInput) Validate() error { return nil } +// SetDeleteStream sets the DeleteStream field's value. +func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput { + s.DeleteStream = &v + return s +} + +// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value. +func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput { + s.ForceDeleteAWSJob = &v + return s +} + // SetOtaUpdateId sets the OtaUpdateId field's value. func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput { s.OtaUpdateId = &v @@ -21113,6 +21135,45 @@ func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) return s } +// Describes the location of the updated firmware. +type Destination struct { + _ struct{} `type:"structure"` + + // Describes the location in S3 of the updated firmware. + S3Destination *S3Destination `locationName:"s3Destination" type:"structure"` +} + +// String returns the string representation +func (s Destination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Destination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Destination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Destination"} + if s.S3Destination != nil { + if err := s.S3Destination.Validate(); err != nil { + invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3Destination sets the S3Destination field's value. +func (s *Destination) SetS3Destination(v *S3Destination) *Destination { + s.S3Destination = v + return s +} + type DetachPolicyInput struct { _ struct{} `type:"structure"` @@ -21914,6 +21975,59 @@ func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny { return s } +// The location of the OTA update. +type FileLocation struct { + _ struct{} `type:"structure"` + + // The location of the updated firmware in S3. + S3Location *S3Location `locationName:"s3Location" type:"structure"` + + // The stream that contains the OTA update. + Stream *Stream `locationName:"stream" type:"structure"` +} + +// String returns the string representation +func (s FileLocation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FileLocation) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FileLocation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FileLocation"} + if s.S3Location != nil { + if err := s.S3Location.Validate(); err != nil { + invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams)) + } + } + if s.Stream != nil { + if err := s.Stream.Validate(); err != nil { + invalidParams.AddNested("Stream", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3Location sets the S3Location field's value. +func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation { + s.S3Location = v + return s +} + +// SetStream sets the Stream field's value. +func (s *FileLocation) SetStream(v *Stream) *FileLocation { + s.Stream = v + return s +} + // Describes an action that writes data to an Amazon Kinesis Firehose stream. type FirehoseAction struct { _ struct{} `type:"structure"` @@ -27419,12 +27533,12 @@ type OTAUpdateFile struct { // The code signing method of the file. CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"` + // The location of the updated firmware. + FileLocation *FileLocation `locationName:"fileLocation" type:"structure"` + // The name of the file. FileName *string `locationName:"fileName" type:"string"` - // The source of the file. - FileSource *Stream `locationName:"fileSource" type:"structure"` - // The file version. FileVersion *string `locationName:"fileVersion" type:"string"` } @@ -27447,9 +27561,9 @@ func (s *OTAUpdateFile) Validate() error { invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams)) } } - if s.FileSource != nil { - if err := s.FileSource.Validate(); err != nil { - invalidParams.AddNested("FileSource", err.(request.ErrInvalidParams)) + if s.FileLocation != nil { + if err := s.FileLocation.Validate(); err != nil { + invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams)) } } @@ -27471,15 +27585,15 @@ func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile { return s } -// SetFileName sets the FileName field's value. -func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile { - s.FileName = &v +// SetFileLocation sets the FileLocation field's value. +func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile { + s.FileLocation = v return s } -// SetFileSource sets the FileSource field's value. -func (s *OTAUpdateFile) SetFileSource(v *Stream) *OTAUpdateFile { - s.FileSource = v +// SetFileName sets the FileName field's value. +func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile { + s.FileName = &v return s } @@ -27502,6 +27616,9 @@ type OTAUpdateInfo struct { // The AWS IoT job ID associated with the OTA update. AwsIotJobId *string `locationName:"awsIotJobId" type:"string"` + // Configuration for the rollout of OTA updates. + AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"` + // The date when the OTA update was created. CreationDate *time.Time `locationName:"creationDate" type:"timestamp"` @@ -27566,6 +27683,12 @@ func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo { return s } +// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value. +func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo { + s.AwsJobExecutionsRolloutConfig = v + return s +} + // SetCreationDate sets the CreationDate field's value. func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo { s.CreationDate = &v @@ -28871,21 +28994,63 @@ func (s *S3Action) SetRoleArn(v string) *S3Action { return s } -// The location in S3 the contains the files to stream. +// Describes the location of updated firmware in S3. +type S3Destination struct { + _ struct{} `type:"structure"` + + // The S3 bucket that contains the updated firmware. + Bucket *string `locationName:"bucket" min:"1" type:"string"` + + // The S3 prefix. + Prefix *string `locationName:"prefix" type:"string"` +} + +// String returns the string representation +func (s S3Destination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s S3Destination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Destination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3Destination"} + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *S3Destination) SetBucket(v string) *S3Destination { + s.Bucket = &v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *S3Destination) SetPrefix(v string) *S3Destination { + s.Prefix = &v + return s +} + +// The S3 location. type S3Location struct { _ struct{} `type:"structure"` - // The S3 bucket that contains the file to stream. - // - // Bucket is a required field - Bucket *string `locationName:"bucket" min:"1" type:"string" required:"true"` + // The S3 bucket. + Bucket *string `locationName:"bucket" min:"1" type:"string"` - // The name of the file within the S3 bucket to stream. - // - // Key is a required field - Key *string `locationName:"key" min:"1" type:"string" required:"true"` + // The S3 key. + Key *string `locationName:"key" min:"1" type:"string"` - // The file version. + // The S3 bucket version. Version *string `locationName:"version" type:"string"` } @@ -28902,15 +29067,9 @@ func (s S3Location) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *S3Location) Validate() error { invalidParams := request.ErrInvalidParams{Context: "S3Location"} - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } if s.Bucket != nil && len(*s.Bucket) < 1 { invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) } - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } if s.Key != nil && len(*s.Key) < 1 { invalidParams.Add(request.NewErrParamMinLen("Key", 1)) } @@ -29610,6 +29769,48 @@ func (s SetV2LoggingOptionsOutput) GoString() string { return s.String() } +// Describes the code-signing profile. +type SigningProfileParameter struct { + _ struct{} `type:"structure"` + + // Certificate ARN. + CertificateArn *string `locationName:"certificateArn" type:"string"` + + // The location of the code-signing certificate on your device. + CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"` + + // The hardware platform of your device. + Platform *string `locationName:"platform" type:"string"` +} + +// String returns the string representation +func (s SigningProfileParameter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SigningProfileParameter) GoString() string { + return s.String() +} + +// SetCertificateArn sets the CertificateArn field's value. +func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter { + s.CertificateArn = &v + return s +} + +// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value. +func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter { + s.CertificatePathOnDevice = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter { + s.Platform = &v + return s +} + // Describes an action to publish to an Amazon SNS topic. type SnsAction struct { _ struct{} `type:"structure"` @@ -29803,6 +30004,63 @@ func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTa return s } +// Information required to start a signing job. +type StartSigningJobParameter struct { + _ struct{} `type:"structure"` + + // The location to write the code-signed file. + Destination *Destination `locationName:"destination" type:"structure"` + + // The code-signing profile name. + SigningProfileName *string `locationName:"signingProfileName" type:"string"` + + // Describes the code-signing profile. + SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"` +} + +// String returns the string representation +func (s StartSigningJobParameter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartSigningJobParameter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartSigningJobParameter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"} + if s.Destination != nil { + if err := s.Destination.Validate(); err != nil { + invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter { + s.Destination = v + return s +} + +// SetSigningProfileName sets the SigningProfileName field's value. +func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter { + s.SigningProfileName = &v + return s +} + +// SetSigningProfileParameter sets the SigningProfileParameter field's value. +func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter { + s.SigningProfileParameter = v + return s +} + type StartThingRegistrationTaskInput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go b/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go index fa47d515063..a0bac9a2f4e 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go @@ -853,6 +853,9 @@ const opRotateChannelCredentials = "RotateChannelCredentials" // // See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/RotateChannelCredentials func (c *MediaPackage) RotateChannelCredentialsRequest(input *RotateChannelCredentialsInput) (req *request.Request, output *RotateChannelCredentialsOutput) { + if c.Client.Config.Logger != nil { + c.Client.Config.Logger.Log("This operation, RotateChannelCredentials, has been deprecated") + } op := &request.Operation{ Name: opRotateChannelCredentials, HTTPMethod: "PUT", @@ -870,7 +873,8 @@ func (c *MediaPackage) RotateChannelCredentialsRequest(input *RotateChannelCrede // RotateChannelCredentials API operation for AWS Elemental MediaPackage. // -// Changes the Channel ingest username and password. +// Changes the Channel's first IngestEndpoint's username and password. WARNING +// - This API is deprecated. Please use RotateIngestEndpointCredentials instead // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -914,6 +918,95 @@ func (c *MediaPackage) RotateChannelCredentialsWithContext(ctx aws.Context, inpu return out, req.Send() } +const opRotateIngestEndpointCredentials = "RotateIngestEndpointCredentials" + +// RotateIngestEndpointCredentialsRequest generates a "aws/request.Request" representing the +// client's request for the RotateIngestEndpointCredentials operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See RotateIngestEndpointCredentials for more information on using the RotateIngestEndpointCredentials +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the RotateIngestEndpointCredentialsRequest method. +// req, resp := client.RotateIngestEndpointCredentialsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/RotateIngestEndpointCredentials +func (c *MediaPackage) RotateIngestEndpointCredentialsRequest(input *RotateIngestEndpointCredentialsInput) (req *request.Request, output *RotateIngestEndpointCredentialsOutput) { + op := &request.Operation{ + Name: opRotateIngestEndpointCredentials, + HTTPMethod: "PUT", + HTTPPath: "/channels/{id}/ingest_endpoints/{ingest_endpoint_id}/credentials", + } + + if input == nil { + input = &RotateIngestEndpointCredentialsInput{} + } + + output = &RotateIngestEndpointCredentialsOutput{} + req = c.newRequest(op, input, output) + return +} + +// RotateIngestEndpointCredentials API operation for AWS Elemental MediaPackage. +// +// Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's +// id. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Elemental MediaPackage's +// API operation RotateIngestEndpointCredentials for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnprocessableEntityException "UnprocessableEntityException" +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// +// * ErrCodeForbiddenException "ForbiddenException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeServiceUnavailableException "ServiceUnavailableException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/RotateIngestEndpointCredentials +func (c *MediaPackage) RotateIngestEndpointCredentials(input *RotateIngestEndpointCredentialsInput) (*RotateIngestEndpointCredentialsOutput, error) { + req, out := c.RotateIngestEndpointCredentialsRequest(input) + return out, req.Send() +} + +// RotateIngestEndpointCredentialsWithContext is the same as RotateIngestEndpointCredentials with the addition of +// the ability to pass a context and additional request options. +// +// See RotateIngestEndpointCredentials for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaPackage) RotateIngestEndpointCredentialsWithContext(ctx aws.Context, input *RotateIngestEndpointCredentialsInput, opts ...request.Option) (*RotateIngestEndpointCredentialsOutput, error) { + req, out := c.RotateIngestEndpointCredentialsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateChannel = "UpdateChannel" // UpdateChannelRequest generates a "aws/request.Request" representing the @@ -2662,6 +2755,9 @@ func (s *HlsPackage) SetUseAudioRenditionGroup(v bool) *HlsPackage { type IngestEndpoint struct { _ struct{} `type:"structure"` + // The system generated unique identifier for the IngestEndpoint + Id *string `locationName:"id" type:"string"` + // The system generated password for ingest authentication. Password *string `locationName:"password" type:"string"` @@ -2682,6 +2778,12 @@ func (s IngestEndpoint) GoString() string { return s.String() } +// SetId sets the Id field's value. +func (s *IngestEndpoint) SetId(v string) *IngestEndpoint { + s.Id = &v + return s +} + // SetPassword sets the Password field's value. func (s *IngestEndpoint) SetPassword(v string) *IngestEndpoint { s.Password = &v @@ -3100,7 +3202,7 @@ func (s *OriginEndpoint) SetWhitelist(v []*string) *OriginEndpoint { } type RotateChannelCredentialsInput struct { - _ struct{} `type:"structure"` + _ struct{} `deprecated:"true" type:"structure"` // Id is a required field Id *string `location:"uri" locationName:"id" type:"string" required:"true"` @@ -3136,7 +3238,7 @@ func (s *RotateChannelCredentialsInput) SetId(v string) *RotateChannelCredential } type RotateChannelCredentialsOutput struct { - _ struct{} `type:"structure"` + _ struct{} `deprecated:"true" type:"structure"` Arn *string `locationName:"arn" type:"string"` @@ -3182,6 +3284,101 @@ func (s *RotateChannelCredentialsOutput) SetId(v string) *RotateChannelCredentia return s } +type RotateIngestEndpointCredentialsInput struct { + _ struct{} `type:"structure"` + + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // IngestEndpointId is a required field + IngestEndpointId *string `location:"uri" locationName:"ingest_endpoint_id" type:"string" required:"true"` +} + +// String returns the string representation +func (s RotateIngestEndpointCredentialsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RotateIngestEndpointCredentialsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RotateIngestEndpointCredentialsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RotateIngestEndpointCredentialsInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.IngestEndpointId == nil { + invalidParams.Add(request.NewErrParamRequired("IngestEndpointId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *RotateIngestEndpointCredentialsInput) SetId(v string) *RotateIngestEndpointCredentialsInput { + s.Id = &v + return s +} + +// SetIngestEndpointId sets the IngestEndpointId field's value. +func (s *RotateIngestEndpointCredentialsInput) SetIngestEndpointId(v string) *RotateIngestEndpointCredentialsInput { + s.IngestEndpointId = &v + return s +} + +type RotateIngestEndpointCredentialsOutput struct { + _ struct{} `type:"structure"` + + Arn *string `locationName:"arn" type:"string"` + + Description *string `locationName:"description" type:"string"` + + // An HTTP Live Streaming (HLS) ingest resource configuration. + HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"` + + Id *string `locationName:"id" type:"string"` +} + +// String returns the string representation +func (s RotateIngestEndpointCredentialsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RotateIngestEndpointCredentialsOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetArn(v string) *RotateIngestEndpointCredentialsOutput { + s.Arn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetDescription(v string) *RotateIngestEndpointCredentialsOutput { + s.Description = &v + return s +} + +// SetHlsIngest sets the HlsIngest field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetHlsIngest(v *HlsIngest) *RotateIngestEndpointCredentialsOutput { + s.HlsIngest = v + return s +} + +// SetId sets the Id field's value. +func (s *RotateIngestEndpointCredentialsOutput) SetId(v string) *RotateIngestEndpointCredentialsOutput { + s.Id = &v + return s +} + // A configuration for accessing an external Secure Packager and Encoder Key // Exchange (SPEKE) service that will provide encryption keys. type SpekeKeyProvider struct { diff --git a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go index 9aef96db1a2..abf5b5076c8 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go @@ -6905,7 +6905,24 @@ func (c *Redshift) ResizeClusterRequest(input *ResizeClusterInput) (req *request // ResizeCluster API operation for Amazon Redshift. // -// Changes the cluster's type, node type, or number of nodes. +// Changes the size of the cluster. You can change the cluster's type, or change +// the number or type of nodes. The default behavior is to use the elastic resize +// method. With an elastic resize your cluster is avaialble for read and write +// operations more quickly than with the classic resize method. +// +// Elastic resize operations have the following restrictions: +// +// * You can only resize clusters of the following types: +// +// dc2.large +// +// dc2.8xlarge +// +// ds2.xlarge +// +// ds2.8xlarge +// +// * The type of nodes you add must match the node type for the cluster. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -16692,7 +16709,8 @@ type ResizeClusterInput struct { _ struct{} `type:"structure"` // A boolean value indicating whether the resize operation is using the classic - // resize process. + // resize process. If you don't provide this parameter or set the value to false + // the resize type is elastic. Classic *bool `type:"boolean"` // The unique identifier for the cluster to resize. diff --git a/vendor/github.com/aws/aws-sdk-go/service/sagemaker/api.go b/vendor/github.com/aws/aws-sdk-go/service/sagemaker/api.go index 76505fc2101..b070e16e246 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sagemaker/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sagemaker/api.go @@ -750,6 +750,15 @@ func (c *SageMaker) CreatePresignedNotebookInstanceUrlRequest(input *CreatePresi // home page from the notebook instance. The console uses this API to get the // URL and show the page. // +// You can restrict access to this API and to the URL that it returns to a list +// of IP addresses that you specify. To restrict access, attach an IAM policy +// that denies access to this API unless the call comes from an IP address in +// the specified list to every AWS Identity and Access Management user, group, +// or role used to access the notebook instance. Use the NotIpAddress condition +// operator and the aws:SourceIP condition context key to specify the list of +// IP addresses that you want to have access to the notebook instance. For more +// information, see nbi-ip-filter. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -4416,7 +4425,7 @@ type Channel struct { // algorithm requires the RecordIO format, in which case, Amazon SageMaker wraps // each individual S3 object in a RecordIO record. If the input data is already // in RecordIO format, you don't need to set this attribute. For more information, - // see Create a Dataset Using RecordIO (https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec) + // see Create a Dataset Using RecordIO (https://mxnet.incubator.apache.org/architecture/note_data_loading.html#data-format) RecordWrapperType *string `type:"string" enum:"RecordWrapper"` } @@ -12120,6 +12129,11 @@ type TransformResources struct { // // InstanceType is a required field InstanceType *string `type:"string" required:"true" enum:"TransformInstanceType"` + + // The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon + // SageMaker uses to encrypt data on the storage volume attached to the ML compute + // instance(s) that run the batch transform job. + VolumeKmsKeyId *string `type:"string"` } // String returns the string representation @@ -12163,6 +12177,12 @@ func (s *TransformResources) SetInstanceType(v string) *TransformResources { return s } +// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value. +func (s *TransformResources) SetVolumeKmsKeyId(v string) *TransformResources { + s.VolumeKmsKeyId = &v + return s +} + // Describes the S3 data source. type TransformS3DataSource struct { _ struct{} `type:"structure"` @@ -12735,6 +12755,9 @@ const ( // EndpointStatusUpdating is a EndpointStatus enum value EndpointStatusUpdating = "Updating" + // EndpointStatusSystemUpdating is a EndpointStatus enum value + EndpointStatusSystemUpdating = "SystemUpdating" + // EndpointStatusRollingBack is a EndpointStatus enum value EndpointStatusRollingBack = "RollingBack" diff --git a/vendor/github.com/aws/aws-sdk-go/service/waf/api.go b/vendor/github.com/aws/aws-sdk-go/service/waf/api.go index e08ff3ee98e..0d9abe4d7f3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/waf/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/waf/api.go @@ -2094,6 +2094,93 @@ func (c *WAF) DeleteIPSetWithContext(ctx aws.Context, input *DeleteIPSetInput, o return out, req.Send() } +const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration" + +// DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteLoggingConfigurationRequest method. +// req, resp := client.DeleteLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteLoggingConfiguration +func (c *WAF) DeleteLoggingConfigurationRequest(input *DeleteLoggingConfigurationInput) (req *request.Request, output *DeleteLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLoggingConfigurationInput{} + } + + output = &DeleteLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteLoggingConfiguration API operation for AWS WAF. +// +// Permanently deletes the LoggingConfiguration from the specified web ACL. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF's +// API operation DeleteLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeStaleDataException "WAFStaleDataException" +// The operation failed because you tried to create, update, or delete an object +// by using a change token that has already been used. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteLoggingConfiguration +func (c *WAF) DeleteLoggingConfiguration(input *DeleteLoggingConfigurationInput) (*DeleteLoggingConfigurationOutput, error) { + req, out := c.DeleteLoggingConfigurationRequest(input) + return out, req.Send() +} + +// DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAF) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *DeleteLoggingConfigurationInput, opts ...request.Option) (*DeleteLoggingConfigurationOutput, error) { + req, out := c.DeleteLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeletePermissionPolicy = "DeletePermissionPolicy" // DeletePermissionPolicyRequest generates a "aws/request.Request" representing the @@ -2778,6 +2865,24 @@ func (c *WAF) DeleteRuleGroupRequest(input *DeleteRuleGroupInput) (req *request. // // * You tried to delete an IPSet that references one or more IP addresses. // +// * ErrCodeInvalidOperationException "WAFInvalidOperationException" +// The operation failed because there was nothing to do. For example: +// +// * You tried to remove a Rule from a WebACL, but the Rule isn't in the +// specified WebACL. +// +// * You tried to remove an IP address from an IPSet, but the IP address +// isn't in the specified IPSet. +// +// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple +// isn't in the specified WebACL. +// +// * You tried to add a Rule to a WebACL, but the Rule already exists in +// the specified WebACL. +// +// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple +// already exists in the specified WebACL. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroup func (c *WAF) DeleteRuleGroup(input *DeleteRuleGroupInput) (*DeleteRuleGroupOutput, error) { req, out := c.DeleteRuleGroupRequest(input) @@ -3753,6 +3858,89 @@ func (c *WAF) GetIPSetWithContext(ctx aws.Context, input *GetIPSetInput, opts .. return out, req.Send() } +const opGetLoggingConfiguration = "GetLoggingConfiguration" + +// GetLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetLoggingConfiguration for more information on using the GetLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetLoggingConfigurationRequest method. +// req, resp := client.GetLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetLoggingConfiguration +func (c *WAF) GetLoggingConfigurationRequest(input *GetLoggingConfigurationInput) (req *request.Request, output *GetLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opGetLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetLoggingConfigurationInput{} + } + + output = &GetLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetLoggingConfiguration API operation for AWS WAF. +// +// Returns the LoggingConfiguration for the specified web ACL. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF's +// API operation GetLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetLoggingConfiguration +func (c *WAF) GetLoggingConfiguration(input *GetLoggingConfigurationInput) (*GetLoggingConfigurationOutput, error) { + req, out := c.GetLoggingConfigurationRequest(input) + return out, req.Send() +} + +// GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See GetLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAF) GetLoggingConfigurationWithContext(ctx aws.Context, input *GetLoggingConfigurationInput, opts ...request.Option) (*GetLoggingConfigurationOutput, error) { + req, out := c.GetLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetPermissionPolicy = "GetPermissionPolicy" // GetPermissionPolicyRequest generates a "aws/request.Request" representing the @@ -5196,6 +5384,118 @@ func (c *WAF) ListIPSetsWithContext(ctx aws.Context, input *ListIPSetsInput, opt return out, req.Send() } +const opListLoggingConfigurations = "ListLoggingConfigurations" + +// ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListLoggingConfigurations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListLoggingConfigurations for more information on using the ListLoggingConfigurations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListLoggingConfigurationsRequest method. +// req, resp := client.ListLoggingConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListLoggingConfigurations +func (c *WAF) ListLoggingConfigurationsRequest(input *ListLoggingConfigurationsInput) (req *request.Request, output *ListLoggingConfigurationsOutput) { + op := &request.Operation{ + Name: opListLoggingConfigurations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListLoggingConfigurationsInput{} + } + + output = &ListLoggingConfigurationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListLoggingConfigurations API operation for AWS WAF. +// +// Returns an array of LoggingConfiguration objects. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF's +// API operation ListLoggingConfigurations for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeInvalidParameterException "WAFInvalidParameterException" +// The operation failed because AWS WAF didn't recognize a parameter in the +// request. For example: +// +// * You specified an invalid parameter name. +// +// * You specified an invalid value. +// +// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) +// using an action other than INSERT or DELETE. +// +// * You tried to create a WebACL with a DefaultActionType other than ALLOW, +// BLOCK, or COUNT. +// +// * You tried to create a RateBasedRule with a RateKey value other than +// IP. +// +// * You tried to update a WebACL with a WafActionType other than ALLOW, +// BLOCK, or COUNT. +// +// * You tried to update a ByteMatchSet with a FieldToMatchType other than +// HEADER, METHOD, QUERY_STRING, URI, or BODY. +// +// * You tried to update a ByteMatchSet with a Field of HEADER but no value +// for Data. +// +// * Your request references an ARN that is malformed, or corresponds to +// a resource with which a web ACL cannot be associated. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListLoggingConfigurations +func (c *WAF) ListLoggingConfigurations(input *ListLoggingConfigurationsInput) (*ListLoggingConfigurationsOutput, error) { + req, out := c.ListLoggingConfigurationsRequest(input) + return out, req.Send() +} + +// ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of +// the ability to pass a context and additional request options. +// +// See ListLoggingConfigurations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAF) ListLoggingConfigurationsWithContext(ctx aws.Context, input *ListLoggingConfigurationsInput, opts ...request.Option) (*ListLoggingConfigurationsOutput, error) { + req, out := c.ListLoggingConfigurationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListRateBasedRules = "ListRateBasedRules" // ListRateBasedRulesRequest generates a "aws/request.Request" representing the @@ -6031,6 +6331,108 @@ func (c *WAF) ListXssMatchSetsWithContext(ctx aws.Context, input *ListXssMatchSe return out, req.Send() } +const opPutLoggingConfiguration = "PutLoggingConfiguration" + +// PutLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutLoggingConfiguration for more information on using the PutLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutLoggingConfigurationRequest method. +// req, resp := client.PutLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutLoggingConfiguration +func (c *WAF) PutLoggingConfigurationRequest(input *PutLoggingConfigurationInput) (req *request.Request, output *PutLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opPutLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutLoggingConfigurationInput{} + } + + output = &PutLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutLoggingConfiguration API operation for AWS WAF. +// +// Associates a LoggingConfiguration with a specified web ACL. +// +// You can access information about all traffic that AWS WAF inspects using +// the following steps: +// +// Create an Amazon Kinesis Data Firehose delivery stream. For more information, +// see Creating an Amazon Kinesis Data Firehose Delivery Stream (https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html). +// +// Associate that delivery stream to your web ACL using a PutLoggingConfiguration +// request. +// +// When you successfully enable logging using a PutLoggingConfiguration request, +// AWS WAF will create a service linked role with the necessary permissions +// to write logs to the Amazon Kinesis Data Firehose delivery stream. For more +// information, see Logging Web ACL Traffic Information (http://docs.aws.amazon.com/waf/latest/developerguide/logging.html) +// in the AWS WAF Developer Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF's +// API operation PutLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeStaleDataException "WAFStaleDataException" +// The operation failed because you tried to create, update, or delete an object +// by using a change token that has already been used. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutLoggingConfiguration +func (c *WAF) PutLoggingConfiguration(input *PutLoggingConfigurationInput) (*PutLoggingConfigurationOutput, error) { + req, out := c.PutLoggingConfigurationRequest(input) + return out, req.Send() +} + +// PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAF) PutLoggingConfigurationWithContext(ctx aws.Context, input *PutLoggingConfigurationInput, opts ...request.Option) (*PutLoggingConfigurationOutput, error) { + req, out := c.PutLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutPermissionPolicy = "PutPermissionPolicy" // PutPermissionPolicyRequest generates a "aws/request.Request" representing the @@ -6086,8 +6488,9 @@ func (c *WAF) PutPermissionPolicyRequest(input *PutPermissionPolicyInput) (req * // // * Effect must specify Allow. // -// * The Action in the policy must be waf:UpdateWebACL and waf-regional:UpdateWebACL. -// Any extra or wildcard actions in the policy will be rejected. +// * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, +// waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard +// actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // @@ -6132,8 +6535,9 @@ func (c *WAF) PutPermissionPolicyRequest(input *PutPermissionPolicyInput) (req * // // * Effect must specify Allow. // -// * The Action in the policy must be waf:UpdateWebACL or waf-regional:UpdateWebACL. -// Any extra or wildcard actions in the policy will be rejected. +// * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, +// waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard +// actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // @@ -6279,9 +6683,6 @@ func (c *WAF) UpdateByteMatchSetRequest(input *UpdateByteMatchSetInput) (req *re // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -6473,9 +6874,6 @@ func (c *WAF) UpdateGeoMatchSetRequest(input *UpdateGeoMatchSetInput) (req *requ // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -6620,9 +7018,10 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, // range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 // (for the individual IP address 192.0.2.44). // -// AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, -// /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, -// see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). +// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through +// /32. AWS WAF supports IPv6 address ranges: /16, /24, /32, /48, /56, /64, +// and /128. For more information about CIDR notation, see the Wikipedia entry +// Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). // // IPv6 addresses can be represented using any of the following formats: // @@ -6654,6 +7053,8 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, // and/or the IP addresses that you want to delete. If you want to change an // IP address, you delete the existing IP address and add the new one. // +// You can insert a maximum of 1000 addresses in a single request. +// // For more information about how to use the AWS WAF API to allow or block HTTP // requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). // @@ -6692,9 +7093,6 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -6900,9 +7298,6 @@ func (c *WAF) UpdateRateBasedRuleRequest(input *UpdateRateBasedRuleInput) (req * // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7128,9 +7523,6 @@ func (c *WAF) UpdateRegexMatchSetRequest(input *UpdateRegexMatchSetInput) (req * // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7292,9 +7684,6 @@ func (c *WAF) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) (r // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7440,9 +7829,6 @@ func (c *WAF) UpdateRuleRequest(input *UpdateRuleInput) (req *request.Request, o // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7648,9 +8034,6 @@ func (c *WAF) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request. // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7770,6 +8153,8 @@ func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput // of the request body are not supported because the AWS resource forwards // only the first 8192 bytes of your request to AWS WAF. // +// You can only specify a single type of TextTransformation. +// // * A ComparisonOperator used for evaluating the selected part of the request // against the specified Size, such as equals, greater than, less than, and // so on. @@ -7830,9 +8215,6 @@ func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7972,12 +8354,15 @@ func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSe // object and add a new one. // // * FieldToMatch: The part of web requests that you want AWS WAF to inspect -// and, if you want AWS WAF to inspect a header, the name of the header. +// and, if you want AWS WAF to inspect a header or custom query parameter, +// the name of the header or parameter. // // * TextTransformation: Which text transformation, if any, to perform on // the web request before inspecting the request for snippets of malicious // SQL code. // +// You can only specify a single type of TextTransformation. +// // You use SqlInjectionMatchSet objects to specify which CloudFront requests // you want to allow, block, or count. For example, if you're receiving requests // that contain snippets of SQL code in the query string and you want to block @@ -8028,9 +8413,6 @@ func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSe // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8242,9 +8624,6 @@ func (c *WAF) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Reques // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8387,12 +8766,15 @@ func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *requ // add a new one. // // * FieldToMatch: The part of web requests that you want AWS WAF to inspect -// and, if you want AWS WAF to inspect a header, the name of the header. +// and, if you want AWS WAF to inspect a header or custom query parameter, +// the name of the header or parameter. // // * TextTransformation: Which text transformation, if any, to perform on // the web request before inspecting the request for cross-site scripting // attacks. // +// You can only specify a single type of TextTransformation. +// // You use XssMatchSet objects to specify which CloudFront requests you want // to allow, block, or count. For example, if you're receiving requests that // contain cross-site scripting attacks in the request body and you want to @@ -8443,9 +8825,6 @@ func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *requ // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8923,6 +9302,14 @@ type ByteMatchTuple struct { // of the body, you can create a size constraint set. For more information, // see CreateSizeConstraintSet. // + // * SINGLE_QUERY_ARG: The parameter in the query string that you will inspect, + // such as UserName or SalesRegion. The maximum length for SINGLE_QUERY_ARG + // is 30 characters. + // + // * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but instead of inspecting + // a single parameter, AWS WAF inspects all parameters within the query string + // for the value or regex pattern that you specify in TargetString. + // // If TargetString includes alphabetic characters A-Z and a-z, note that the // value is case sensitive. // @@ -8951,11 +9338,13 @@ type ByteMatchTuple struct { // AWS WAF performs the transformation on TargetString before inspecting a request // for a match. // + // You can only specify a single type of TextTransformation. + // // CMD_LINE // - // When you're concerned that attackers are injecting an operating system commandline - // command and using unusual formatting to disguise some or all of the command, - // use this option to perform the following transformations: + // When you're concerned that attackers are injecting an operating system command + // line command and using unusual formatting to disguise some or all of the + // command, use this option to perform the following transformations: // // * Delete the following characters: \ " ' ^ // @@ -10536,8 +10925,81 @@ func (s *DeleteIPSetInput) Validate() error { if s.IPSetId == nil { invalidParams.Add(request.NewErrParamRequired("IPSetId")) } - if s.IPSetId != nil && len(*s.IPSetId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1)) + if s.IPSetId != nil && len(*s.IPSetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetChangeToken sets the ChangeToken field's value. +func (s *DeleteIPSetInput) SetChangeToken(v string) *DeleteIPSetInput { + s.ChangeToken = &v + return s +} + +// SetIPSetId sets the IPSetId field's value. +func (s *DeleteIPSetInput) SetIPSetId(v string) *DeleteIPSetInput { + s.IPSetId = &v + return s +} + +type DeleteIPSetOutput struct { + _ struct{} `type:"structure"` + + // The ChangeToken that you used to submit the DeleteIPSet request. You can + // also use this value to query the status of the request. For more information, + // see GetChangeTokenStatus. + ChangeToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteIPSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteIPSetOutput) GoString() string { + return s.String() +} + +// SetChangeToken sets the ChangeToken field's value. +func (s *DeleteIPSetOutput) SetChangeToken(v string) *DeleteIPSetOutput { + s.ChangeToken = &v + return s +} + +type DeleteLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the web ACL from which you want to delete + // the LoggingConfiguration. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteLoggingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLoggingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLoggingConfigurationInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) } if invalidParams.Len() > 0 { @@ -10546,43 +11008,26 @@ func (s *DeleteIPSetInput) Validate() error { return nil } -// SetChangeToken sets the ChangeToken field's value. -func (s *DeleteIPSetInput) SetChangeToken(v string) *DeleteIPSetInput { - s.ChangeToken = &v - return s -} - -// SetIPSetId sets the IPSetId field's value. -func (s *DeleteIPSetInput) SetIPSetId(v string) *DeleteIPSetInput { - s.IPSetId = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *DeleteLoggingConfigurationInput) SetResourceArn(v string) *DeleteLoggingConfigurationInput { + s.ResourceArn = &v return s } -type DeleteIPSetOutput struct { +type DeleteLoggingConfigurationOutput struct { _ struct{} `type:"structure"` - - // The ChangeToken that you used to submit the DeleteIPSet request. You can - // also use this value to query the status of the request. For more information, - // see GetChangeTokenStatus. - ChangeToken *string `min:"1" type:"string"` } // String returns the string representation -func (s DeleteIPSetOutput) String() string { +func (s DeleteLoggingConfigurationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteIPSetOutput) GoString() string { +func (s DeleteLoggingConfigurationOutput) GoString() string { return s.String() } -// SetChangeToken sets the ChangeToken field's value. -func (s *DeleteIPSetOutput) SetChangeToken(v string) *DeleteIPSetOutput { - s.ChangeToken = &v - return s -} - type DeletePermissionPolicyInput struct { _ struct{} `type:"structure"` @@ -11406,10 +11851,14 @@ type FieldToMatch struct { _ struct{} `type:"structure"` // When the value of Type is HEADER, enter the name of the header that you want - // AWS WAF to search, for example, User-Agent or Referer. If the value of Type - // is any other value, omit Data. + // AWS WAF to search, for example, User-Agent or Referer. The name of the header + // is not case sensitive. // - // The name of the header is not case sensitive. + // When the value of Type is SINGLE_QUERY_ARG, enter the name of the parameter + // that you want AWS WAF to search, for example, UserName or SalesRegion. The + // parameter name is not case sensitive. + // + // If the value of Type is any other value, omit Data. Data *string `type:"string"` // The part of the web request that you want AWS WAF to search for a specified @@ -11437,6 +11886,14 @@ type FieldToMatch struct { // of the body, you can create a size constraint set. For more information, // see CreateSizeConstraintSet. // + // * SINGLE_QUERY_ARG: The parameter in the query string that you will inspect, + // such as UserName or SalesRegion. The maximum length for SINGLE_QUERY_ARG + // is 30 characters. + // + // * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but rather than inspecting + // a single parameter, AWS WAF will inspect all parameters within the query + // for the value or regex pattern that you specify in TargetString. + // // Type is a required field Type *string `type:"string" required:"true" enum:"MatchFieldType"` } @@ -11997,6 +12454,71 @@ func (s *GetIPSetOutput) SetIPSet(v *IPSet) *GetIPSetOutput { return s } +type GetLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the web ACL for which you want to get the + // LoggingConfiguration. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetLoggingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLoggingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetLoggingConfigurationInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *GetLoggingConfigurationInput) SetResourceArn(v string) *GetLoggingConfigurationInput { + s.ResourceArn = &v + return s +} + +type GetLoggingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The LoggingConfiguration for the specified web ACL. + LoggingConfiguration *LoggingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetLoggingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetLoggingConfigurationOutput) GoString() string { + return s.String() +} + +// SetLoggingConfiguration sets the LoggingConfiguration field's value. +func (s *GetLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *GetLoggingConfigurationOutput { + s.LoggingConfiguration = v + return s +} + type GetPermissionPolicyInput struct { _ struct{} `type:"structure"` @@ -13059,15 +13581,15 @@ func (s *HTTPRequest) SetURI(v string) *HTTPRequest { } // Contains one or more IP addresses or blocks of IP addresses specified in -// Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports /8, /16, -// /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and -// /128 for IPv6. +// Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports IPv4 address +// ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address +// ranges: /16, /24, /32, /48, /56, /64, and /128. // // To specify an individual IP address, you specify the four-part IP address // followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses, -// you can specify a /128, /64, /56, /48, /32, /24, /16, or /8 CIDR. For more -// information about CIDR notation, see the Wikipedia entry Classless Inter-Domain -// Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). +// you can specify /8 or any range between /16 through /32 (for IPv4) or /16, +// /24, /32, /48, /56, /64, or /128 (for IPv6). For more information about CIDR +// notation, see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). type IPSet struct { _ struct{} `type:"structure"` @@ -13656,6 +14178,94 @@ func (s *ListIPSetsOutput) SetNextMarker(v string) *ListIPSetsOutput { return s } +type ListLoggingConfigurationsInput struct { + _ struct{} `type:"structure"` + + // Specifies the number of LoggingConfigurations that you want AWS WAF to return + // for this request. If you have more LoggingConfigurations than the number + // that you specify for Limit, the response includes a NextMarker value that + // you can use to get another batch of LoggingConfigurations. + Limit *int64 `type:"integer"` + + // If you specify a value for Limit and you have more LoggingConfigurations + // than the value of Limit, AWS WAF returns a NextMarker value in the response + // that allows you to list another group of LoggingConfigurations. For the second + // and subsequent ListLoggingConfigurations requests, specify the value of NextMarker + // from the previous response to get information about another batch of ListLoggingConfigurations. + NextMarker *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListLoggingConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListLoggingConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLoggingConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListLoggingConfigurationsInput"} + if s.NextMarker != nil && len(*s.NextMarker) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *ListLoggingConfigurationsInput) SetLimit(v int64) *ListLoggingConfigurationsInput { + s.Limit = &v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *ListLoggingConfigurationsInput) SetNextMarker(v string) *ListLoggingConfigurationsInput { + s.NextMarker = &v + return s +} + +type ListLoggingConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // An array of LoggingConfiguration objects. + LoggingConfigurations []*LoggingConfiguration `type:"list"` + + // If you have more LoggingConfigurations than the number that you specified + // for Limit in the request, the response includes a NextMarker value. To list + // more LoggingConfigurations, submit another ListLoggingConfigurations request, + // and specify the NextMarker value from the response in the NextMarker value + // in the next request. + NextMarker *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListLoggingConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListLoggingConfigurationsOutput) GoString() string { + return s.String() +} + +// SetLoggingConfigurations sets the LoggingConfigurations field's value. +func (s *ListLoggingConfigurationsOutput) SetLoggingConfigurations(v []*LoggingConfiguration) *ListLoggingConfigurationsOutput { + s.LoggingConfigurations = v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *ListLoggingConfigurationsOutput) SetNextMarker(v string) *ListLoggingConfigurationsOutput { + s.NextMarker = &v + return s +} + type ListRateBasedRulesInput struct { _ struct{} `type:"structure"` @@ -14538,6 +15148,88 @@ func (s *ListXssMatchSetsOutput) SetXssMatchSets(v []*XssMatchSetSummary) *ListX return s } +// The Amazon Kinesis Data Firehose delivery streams, RedactedFields information, +// and the web ACL Amazon Resource Name (ARN). +type LoggingConfiguration struct { + _ struct{} `type:"structure"` + + // An array of Amazon Kinesis Data Firehose delivery stream ARNs. + // + // LogDestinationConfigs is a required field + LogDestinationConfigs []*string `min:"1" type:"list" required:"true"` + + // The parts of the request that you want redacted from the logs. For example, + // if you redact the cookie field, the cookie field in the delivery stream will + // be xxx. + RedactedFields []*FieldToMatch `type:"list"` + + // The Amazon Resource Name (ARN) of the web ACL that you want to associate + // with LogDestinationConfigs. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s LoggingConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LoggingConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LoggingConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LoggingConfiguration"} + if s.LogDestinationConfigs == nil { + invalidParams.Add(request.NewErrParamRequired("LogDestinationConfigs")) + } + if s.LogDestinationConfigs != nil && len(s.LogDestinationConfigs) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogDestinationConfigs", 1)) + } + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.RedactedFields != nil { + for i, v := range s.RedactedFields { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RedactedFields", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogDestinationConfigs sets the LogDestinationConfigs field's value. +func (s *LoggingConfiguration) SetLogDestinationConfigs(v []*string) *LoggingConfiguration { + s.LogDestinationConfigs = v + return s +} + +// SetRedactedFields sets the RedactedFields field's value. +func (s *LoggingConfiguration) SetRedactedFields(v []*FieldToMatch) *LoggingConfiguration { + s.RedactedFields = v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *LoggingConfiguration) SetResourceArn(v string) *LoggingConfiguration { + s.ResourceArn = &v + return s +} + // Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, // GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule // and, for each object, indicates whether you want to negate the settings, @@ -14566,7 +15258,7 @@ type Predicate struct { // Negated is a required field Negated *bool `type:"boolean" required:"true"` - // The type of predicate in a Rule, such as ByteMatchSet or IPSet. + // The type of predicate in a Rule, such as ByteMatch or IPSet. // // Type is a required field Type *string `type:"string" required:"true" enum:"PredicateType"` @@ -14622,6 +15314,74 @@ func (s *Predicate) SetType(v string) *Predicate { return s } +type PutLoggingConfigurationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Kinesis Data Firehose delivery streams that contains the inspected + // traffic information, the redacted fields details, and the Amazon Resource + // Name (ARN) of the web ACL to monitor. + // + // LoggingConfiguration is a required field + LoggingConfiguration *LoggingConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation +func (s PutLoggingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutLoggingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutLoggingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutLoggingConfigurationInput"} + if s.LoggingConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("LoggingConfiguration")) + } + if s.LoggingConfiguration != nil { + if err := s.LoggingConfiguration.Validate(); err != nil { + invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLoggingConfiguration sets the LoggingConfiguration field's value. +func (s *PutLoggingConfigurationInput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationInput { + s.LoggingConfiguration = v + return s +} + +type PutLoggingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The LoggingConfiguration that you submitted in the request. + LoggingConfiguration *LoggingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s PutLoggingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutLoggingConfigurationOutput) GoString() string { + return s.String() +} + +// SetLoggingConfiguration sets the LoggingConfiguration field's value. +func (s *PutLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationOutput { + s.LoggingConfiguration = v + return s +} + type PutPermissionPolicyInput struct { _ struct{} `type:"structure"` @@ -15010,6 +15770,8 @@ type RegexMatchTuple struct { // AWS WAF performs the transformation on RegexPatternSet before inspecting // a request for a match. // + // You can only specify a single type of TextTransformation. + // // CMD_LINE // // When you're concerned that attackers are injecting an operating system commandline @@ -15763,6 +16525,8 @@ type SizeConstraint struct { // AWS WAF performs the transformation on FieldToMatch before inspecting a request // for a match. // + // You can only specify a single type of TextTransformation. + // // Note that if you choose BODY for the value of Type, you must choose NONE // for TextTransformation because CloudFront forwards only the first 8192 bytes // for inspection. @@ -16240,11 +17004,13 @@ type SqlInjectionMatchTuple struct { // AWS WAF performs the transformation on FieldToMatch before inspecting a request // for a match. // + // You can only specify a single type of TextTransformation. + // // CMD_LINE // - // When you're concerned that attackers are injecting an operating system commandline - // command and using unusual formatting to disguise some or all of the command, - // use this option to perform the following transformations: + // When you're concerned that attackers are injecting an operating system command + // line command and using unusual formatting to disguise some or all of the + // command, use this option to perform the following transformations: // // * Delete the following characters: \ " ' ^ // @@ -16732,6 +17498,8 @@ type UpdateIPSetInput struct { // // * IPSetDescriptor: Contains Type and Value // + // You can insert a maximum of 1000 addresses in a single request. + // // Updates is a required field Updates []*IPSetUpdate `min:"1" type:"list" required:"true"` } @@ -18363,11 +19131,13 @@ type XssMatchTuple struct { // AWS WAF performs the transformation on FieldToMatch before inspecting a request // for a match. // + // You can only specify a single type of TextTransformation. + // // CMD_LINE // - // When you're concerned that attackers are injecting an operating system commandline - // command and using unusual formatting to disguise some or all of the command, - // use this option to perform the following transformations: + // When you're concerned that attackers are injecting an operating system command + // line command and using unusual formatting to disguise some or all of the + // command, use this option to perform the following transformations: // // * Delete the following characters: \ " ' ^ // @@ -19292,6 +20062,12 @@ const ( // MatchFieldTypeBody is a MatchFieldType enum value MatchFieldTypeBody = "BODY" + + // MatchFieldTypeSingleQueryArg is a MatchFieldType enum value + MatchFieldTypeSingleQueryArg = "SINGLE_QUERY_ARG" + + // MatchFieldTypeAllQueryArgs is a MatchFieldType enum value + MatchFieldTypeAllQueryArgs = "ALL_QUERY_ARGS" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go b/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go index 97850b5df1e..02c9752b0bc 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go @@ -41,9 +41,6 @@ const ( // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // - // * You tried to add an IP address to an IPSet, but the IP address already - // exists in the specified IPSet. - // // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. ErrCodeInvalidOperationException = "WAFInvalidOperationException" @@ -93,8 +90,9 @@ const ( // // * Effect must specify Allow. // - // * The Action in the policy must be waf:UpdateWebACL or waf-regional:UpdateWebACL. - // Any extra or wildcard actions in the policy will be rejected. + // * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, + // waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard + // actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go b/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go index cd5c09e23a5..470cefe4995 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go @@ -2212,6 +2212,93 @@ func (c *WAFRegional) DeleteIPSetWithContext(ctx aws.Context, input *waf.DeleteI return out, req.Send() } +const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration" + +// DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteLoggingConfigurationRequest method. +// req, resp := client.DeleteLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration +func (c *WAFRegional) DeleteLoggingConfigurationRequest(input *waf.DeleteLoggingConfigurationInput) (req *request.Request, output *waf.DeleteLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &waf.DeleteLoggingConfigurationInput{} + } + + output = &waf.DeleteLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteLoggingConfiguration API operation for AWS WAF Regional. +// +// Permanently deletes the LoggingConfiguration from the specified web ACL. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF Regional's +// API operation DeleteLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeWAFInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeWAFStaleDataException "WAFStaleDataException" +// The operation failed because you tried to create, update, or delete an object +// by using a change token that has already been used. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration +func (c *WAFRegional) DeleteLoggingConfiguration(input *waf.DeleteLoggingConfigurationInput) (*waf.DeleteLoggingConfigurationOutput, error) { + req, out := c.DeleteLoggingConfigurationRequest(input) + return out, req.Send() +} + +// DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAFRegional) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *waf.DeleteLoggingConfigurationInput, opts ...request.Option) (*waf.DeleteLoggingConfigurationOutput, error) { + req, out := c.DeleteLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeletePermissionPolicy = "DeletePermissionPolicy" // DeletePermissionPolicyRequest generates a "aws/request.Request" representing the @@ -2896,6 +2983,24 @@ func (c *WAFRegional) DeleteRuleGroupRequest(input *waf.DeleteRuleGroupInput) (r // // * You tried to delete an IPSet that references one or more IP addresses. // +// * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException" +// The operation failed because there was nothing to do. For example: +// +// * You tried to remove a Rule from a WebACL, but the Rule isn't in the +// specified WebACL. +// +// * You tried to remove an IP address from an IPSet, but the IP address +// isn't in the specified IPSet. +// +// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple +// isn't in the specified WebACL. +// +// * You tried to add a Rule to a WebACL, but the Rule already exists in +// the specified WebACL. +// +// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple +// already exists in the specified WebACL. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRuleGroup func (c *WAFRegional) DeleteRuleGroup(input *waf.DeleteRuleGroupInput) (*waf.DeleteRuleGroupOutput, error) { req, out := c.DeleteRuleGroupRequest(input) @@ -3987,6 +4092,89 @@ func (c *WAFRegional) GetIPSetWithContext(ctx aws.Context, input *waf.GetIPSetIn return out, req.Send() } +const opGetLoggingConfiguration = "GetLoggingConfiguration" + +// GetLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetLoggingConfiguration for more information on using the GetLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetLoggingConfigurationRequest method. +// req, resp := client.GetLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration +func (c *WAFRegional) GetLoggingConfigurationRequest(input *waf.GetLoggingConfigurationInput) (req *request.Request, output *waf.GetLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opGetLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &waf.GetLoggingConfigurationInput{} + } + + output = &waf.GetLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetLoggingConfiguration API operation for AWS WAF Regional. +// +// Returns the LoggingConfiguration for the specified web ACL. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF Regional's +// API operation GetLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeWAFInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration +func (c *WAFRegional) GetLoggingConfiguration(input *waf.GetLoggingConfigurationInput) (*waf.GetLoggingConfigurationOutput, error) { + req, out := c.GetLoggingConfigurationRequest(input) + return out, req.Send() +} + +// GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See GetLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAFRegional) GetLoggingConfigurationWithContext(ctx aws.Context, input *waf.GetLoggingConfigurationInput, opts ...request.Option) (*waf.GetLoggingConfigurationOutput, error) { + req, out := c.GetLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetPermissionPolicy = "GetPermissionPolicy" // GetPermissionPolicyRequest generates a "aws/request.Request" representing the @@ -5550,6 +5738,118 @@ func (c *WAFRegional) ListIPSetsWithContext(ctx aws.Context, input *waf.ListIPSe return out, req.Send() } +const opListLoggingConfigurations = "ListLoggingConfigurations" + +// ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListLoggingConfigurations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListLoggingConfigurations for more information on using the ListLoggingConfigurations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListLoggingConfigurationsRequest method. +// req, resp := client.ListLoggingConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations +func (c *WAFRegional) ListLoggingConfigurationsRequest(input *waf.ListLoggingConfigurationsInput) (req *request.Request, output *waf.ListLoggingConfigurationsOutput) { + op := &request.Operation{ + Name: opListLoggingConfigurations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &waf.ListLoggingConfigurationsInput{} + } + + output = &waf.ListLoggingConfigurationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListLoggingConfigurations API operation for AWS WAF Regional. +// +// Returns an array of LoggingConfiguration objects. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF Regional's +// API operation ListLoggingConfigurations for usage and error information. +// +// Returned Error Codes: +// * ErrCodeWAFInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException" +// The operation failed because AWS WAF didn't recognize a parameter in the +// request. For example: +// +// * You specified an invalid parameter name. +// +// * You specified an invalid value. +// +// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) +// using an action other than INSERT or DELETE. +// +// * You tried to create a WebACL with a DefaultActionType other than ALLOW, +// BLOCK, or COUNT. +// +// * You tried to create a RateBasedRule with a RateKey value other than +// IP. +// +// * You tried to update a WebACL with a WafActionType other than ALLOW, +// BLOCK, or COUNT. +// +// * You tried to update a ByteMatchSet with a FieldToMatchType other than +// HEADER, METHOD, QUERY_STRING, URI, or BODY. +// +// * You tried to update a ByteMatchSet with a Field of HEADER but no value +// for Data. +// +// * Your request references an ARN that is malformed, or corresponds to +// a resource with which a web ACL cannot be associated. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations +func (c *WAFRegional) ListLoggingConfigurations(input *waf.ListLoggingConfigurationsInput) (*waf.ListLoggingConfigurationsOutput, error) { + req, out := c.ListLoggingConfigurationsRequest(input) + return out, req.Send() +} + +// ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of +// the ability to pass a context and additional request options. +// +// See ListLoggingConfigurations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAFRegional) ListLoggingConfigurationsWithContext(ctx aws.Context, input *waf.ListLoggingConfigurationsInput, opts ...request.Option) (*waf.ListLoggingConfigurationsOutput, error) { + req, out := c.ListLoggingConfigurationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListRateBasedRules = "ListRateBasedRules" // ListRateBasedRulesRequest generates a "aws/request.Request" representing the @@ -6472,6 +6772,108 @@ func (c *WAFRegional) ListXssMatchSetsWithContext(ctx aws.Context, input *waf.Li return out, req.Send() } +const opPutLoggingConfiguration = "PutLoggingConfiguration" + +// PutLoggingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutLoggingConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutLoggingConfiguration for more information on using the PutLoggingConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutLoggingConfigurationRequest method. +// req, resp := client.PutLoggingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration +func (c *WAFRegional) PutLoggingConfigurationRequest(input *waf.PutLoggingConfigurationInput) (req *request.Request, output *waf.PutLoggingConfigurationOutput) { + op := &request.Operation{ + Name: opPutLoggingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &waf.PutLoggingConfigurationInput{} + } + + output = &waf.PutLoggingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutLoggingConfiguration API operation for AWS WAF Regional. +// +// Associates a LoggingConfiguration with a specified web ACL. +// +// You can access information about all traffic that AWS WAF inspects using +// the following steps: +// +// Create an Amazon Kinesis Data Firehose delivery stream. For more information, +// see Creating an Amazon Kinesis Data Firehose Delivery Stream (https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html). +// +// Associate that delivery stream to your web ACL using a PutLoggingConfiguration +// request. +// +// When you successfully enable logging using a PutLoggingConfiguration request, +// AWS WAF will create a service linked role with the necessary permissions +// to write logs to the Amazon Kinesis Data Firehose delivery stream. For more +// information, see Logging Web ACL Traffic Information (http://docs.aws.amazon.com/waf/latest/developerguide/logging.html) +// in the AWS WAF Developer Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS WAF Regional's +// API operation PutLoggingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeWAFInternalErrorException "WAFInternalErrorException" +// The operation failed because of a system problem, even though the request +// was valid. Retry your request. +// +// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException" +// The operation failed because the referenced object doesn't exist. +// +// * ErrCodeWAFStaleDataException "WAFStaleDataException" +// The operation failed because you tried to create, update, or delete an object +// by using a change token that has already been used. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration +func (c *WAFRegional) PutLoggingConfiguration(input *waf.PutLoggingConfigurationInput) (*waf.PutLoggingConfigurationOutput, error) { + req, out := c.PutLoggingConfigurationRequest(input) + return out, req.Send() +} + +// PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutLoggingConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WAFRegional) PutLoggingConfigurationWithContext(ctx aws.Context, input *waf.PutLoggingConfigurationInput, opts ...request.Option) (*waf.PutLoggingConfigurationOutput, error) { + req, out := c.PutLoggingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutPermissionPolicy = "PutPermissionPolicy" // PutPermissionPolicyRequest generates a "aws/request.Request" representing the @@ -6527,8 +6929,9 @@ func (c *WAFRegional) PutPermissionPolicyRequest(input *waf.PutPermissionPolicyI // // * Effect must specify Allow. // -// * The Action in the policy must be waf:UpdateWebACL and waf-regional:UpdateWebACL. -// Any extra or wildcard actions in the policy will be rejected. +// * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, +// waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard +// actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // @@ -6573,8 +6976,9 @@ func (c *WAFRegional) PutPermissionPolicyRequest(input *waf.PutPermissionPolicyI // // * Effect must specify Allow. // -// * The Action in the policy must be waf:UpdateWebACL or waf-regional:UpdateWebACL. -// Any extra or wildcard actions in the policy will be rejected. +// * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, +// waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard +// actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // @@ -6720,9 +7124,6 @@ func (c *WAFRegional) UpdateByteMatchSetRequest(input *waf.UpdateByteMatchSetInp // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -6914,9 +7315,6 @@ func (c *WAFRegional) UpdateGeoMatchSetRequest(input *waf.UpdateGeoMatchSetInput // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7061,9 +7459,10 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ // range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 // (for the individual IP address 192.0.2.44). // -// AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, -// /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, -// see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). +// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through +// /32. AWS WAF supports IPv6 address ranges: /16, /24, /32, /48, /56, /64, +// and /128. For more information about CIDR notation, see the Wikipedia entry +// Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). // // IPv6 addresses can be represented using any of the following formats: // @@ -7095,6 +7494,8 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ // and/or the IP addresses that you want to delete. If you want to change an // IP address, you delete the existing IP address and add the new one. // +// You can insert a maximum of 1000 addresses in a single request. +// // For more information about how to use the AWS WAF API to allow or block HTTP // requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). // @@ -7133,9 +7534,6 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7341,9 +7739,6 @@ func (c *WAFRegional) UpdateRateBasedRuleRequest(input *waf.UpdateRateBasedRuleI // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7569,9 +7964,6 @@ func (c *WAFRegional) UpdateRegexMatchSetRequest(input *waf.UpdateRegexMatchSetI // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7733,9 +8125,6 @@ func (c *WAFRegional) UpdateRegexPatternSetRequest(input *waf.UpdateRegexPattern // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -7881,9 +8270,6 @@ func (c *WAFRegional) UpdateRuleRequest(input *waf.UpdateRuleInput) (req *reques // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8089,9 +8475,6 @@ func (c *WAFRegional) UpdateRuleGroupRequest(input *waf.UpdateRuleGroupInput) (r // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8211,6 +8594,8 @@ func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstr // of the request body are not supported because the AWS resource forwards // only the first 8192 bytes of your request to AWS WAF. // +// You can only specify a single type of TextTransformation. +// // * A ComparisonOperator used for evaluating the selected part of the request // against the specified Size, such as equals, greater than, less than, and // so on. @@ -8271,9 +8656,6 @@ func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstr // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8413,12 +8795,15 @@ func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInje // object and add a new one. // // * FieldToMatch: The part of web requests that you want AWS WAF to inspect -// and, if you want AWS WAF to inspect a header, the name of the header. +// and, if you want AWS WAF to inspect a header or custom query parameter, +// the name of the header or parameter. // // * TextTransformation: Which text transformation, if any, to perform on // the web request before inspecting the request for snippets of malicious // SQL code. // +// You can only specify a single type of TextTransformation. +// // You use SqlInjectionMatchSet objects to specify which CloudFront requests // you want to allow, block, or count. For example, if you're receiving requests // that contain snippets of SQL code in the query string and you want to block @@ -8469,9 +8854,6 @@ func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInje // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8683,9 +9065,6 @@ func (c *WAFRegional) UpdateWebACLRequest(input *waf.UpdateWebACLInput) (req *re // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -8828,12 +9207,15 @@ func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput // add a new one. // // * FieldToMatch: The part of web requests that you want AWS WAF to inspect -// and, if you want AWS WAF to inspect a header, the name of the header. +// and, if you want AWS WAF to inspect a header or custom query parameter, +// the name of the header or parameter. // // * TextTransformation: Which text transformation, if any, to perform on // the web request before inspecting the request for cross-site scripting // attacks. // +// You can only specify a single type of TextTransformation. +// // You use XssMatchSet objects to specify which CloudFront requests you want // to allow, block, or count. For example, if you're receiving requests that // contain cross-site scripting attacks in the request body and you want to @@ -8884,9 +9266,6 @@ func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // -// * You tried to add an IP address to an IPSet, but the IP address already -// exists in the specified IPSet. -// // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. // @@ -10046,6 +10425,12 @@ const ( // MatchFieldTypeBody is a MatchFieldType enum value MatchFieldTypeBody = "BODY" + + // MatchFieldTypeSingleQueryArg is a MatchFieldType enum value + MatchFieldTypeSingleQueryArg = "SINGLE_QUERY_ARG" + + // MatchFieldTypeAllQueryArgs is a MatchFieldType enum value + MatchFieldTypeAllQueryArgs = "ALL_QUERY_ARGS" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go b/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go index 793dbc2fcae..fed17a99181 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go @@ -41,9 +41,6 @@ const ( // * You tried to add a Rule to a WebACL, but the Rule already exists in // the specified WebACL. // - // * You tried to add an IP address to an IPSet, but the IP address already - // exists in the specified IPSet. - // // * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple // already exists in the specified WebACL. ErrCodeWAFInvalidOperationException = "WAFInvalidOperationException" @@ -93,8 +90,9 @@ const ( // // * Effect must specify Allow. // - // * The Action in the policy must be waf:UpdateWebACL or waf-regional:UpdateWebACL. - // Any extra or wildcard actions in the policy will be rejected. + // * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL, + // waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard + // actions in the policy will be rejected. // // * The policy cannot include a Resource parameter. // diff --git a/vendor/vendor.json b/vendor/vendor.json index f47ca6f5661..e4a8e464ad4 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -39,1020 +39,1020 @@ "revisionTime": "2017-07-27T15:54:43Z" }, { - "checksumSHA1": "HULJqYLUc6/Qx7ru4PrJwd+MuKQ=", + "checksumSHA1": "qO2na7vGPve58xAwBJziIc+BJb4=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "DtuTqKH29YnLjrIJkRYX0HQtXY0=", "path": "github.com/aws/aws-sdk-go/aws/arn", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "EwL79Cq6euk+EV/t/n2E+jzPNmU=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "uEJU4I6dTKaraQKvrljlYKUZwoc=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "vVSUnICaD9IaBQisCfw0n8zLwig=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "I87y3G8r14yKZQ5NlkupFUJ5jW0=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "JTilCBYWVAfhbKSnrxCNhE8IFns=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "eI5TmiOTCFjEUNvWeceFycs9dRU=", "path": "github.com/aws/aws-sdk-go/aws/csm", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "6DRhqSAN7O45gYfRIpwDeuJE8j8=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "uPkjJo+J10vbEukYYXmf0w7Cn4Q=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "r62WcUmf2YEqmAu1QwytNo8gn+g=", + "checksumSHA1": "gbuyBRQ+CdbJrzAx+nRNMbPvW7k=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Ia/AZ2fZp7J4lMO6fpkvfLU/HGY=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "zx1mZCdOwgbjBV3jMfb0kyDd//Q=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Dj9WOMBPbboyUJV4GB99PwPcO4g=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "wjxQlU1PYxrDRFoL1Vek8Wch7jk=", "path": "github.com/aws/aws-sdk-go/internal/sdkio", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "MYLldFRnsZh21TfCkgkXCT3maPU=", "path": "github.com/aws/aws-sdk-go/internal/sdkrand", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "tQVg7Sz2zv+KkhbiXxPH0mh9spg=", "path": "github.com/aws/aws-sdk-go/internal/sdkuri", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "ZX5QHZb0PrK4UF45um2kaAEiX+8=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "GQuRJY72iGQrufDqIaB50zG27u0=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "stsUCJVnZ5yMrmzSExbjbYp5tZ8=", "path": "github.com/aws/aws-sdk-go/private/protocol/eventstream", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "bOQjEfKXaTqe7dZhDDER/wZUzQc=", "path": "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "CTsp/h3FbFg9QizH4bH1abLwljg=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "SBBVYdLcocjdPzMWgDuR8vcOfDQ=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "+O6A945eTP9plLpkEMZB0lwBAcg=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "uRvmEPKcEdv7qc0Ep2zn0E3Xumc=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "soXVJWQ/xvEB72Mo6FresaQIxLg=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "4xFqSOZkwDKot6FJQQgKjhJFoQw=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "3e/4A/8NqTOSXEtJ6KhYAqqWnuY=", "path": "github.com/aws/aws-sdk-go/service/acmpca", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "FjnLIflNek7g0j5NKT3qFkNtdY8=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "K/ynSj/L2OzW+9Zqs2PRe8NzYUc=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "owhfVKeKxjXt4P5KO6PSIjnMLIA=", "path": "github.com/aws/aws-sdk-go/service/appsync", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "3JN52M5wxJMazxQWXB4epL78LNQ=", "path": "github.com/aws/aws-sdk-go/service/athena", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "P2+Mby00TG2KXcfhiVoNoqIT1Kc=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "42OCpXRErVgOtgPsuTrdg7y++TA=", "path": "github.com/aws/aws-sdk-go/service/batch", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "kPYTVg109H4HL8CKEf1yQvwKMw4=", "path": "github.com/aws/aws-sdk-go/service/budgets", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "GhANcrglYWrhNSR/NzxNe3jClMk=", "path": "github.com/aws/aws-sdk-go/service/cloud9", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "HmZRIixQ6u+zMz2Qt0iTU42WVZU=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "1nPdiFsBAEdm+vd7Kk4+8Lx55jw=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "iFvc4+KfDeQHigAz2+TmogG1Y7M=", "path": "github.com/aws/aws-sdk-go/service/cloudhsmv2", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "1uyTJ/RTr7c8uL2Kbrp+60PE40M=", "path": "github.com/aws/aws-sdk-go/service/cloudsearch", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "3q2FBK4CEarGbVeLCuuX+g1E3jk=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "o+DFxugR5Cy/Wwlv7GSRRilTW4o=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "bbsROEsQ5BI5F2k8qiArbrpgH94=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "nGSD4idK9hW8o3U4gLGLESYCpwE=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "SfdREjSJPmW+OjKCjwD8m07wT+w=", + "checksumSHA1": "D3p9zRPfvqPBDBVGCCVG2wgYh38=", "path": "github.com/aws/aws-sdk-go/service/codebuild", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "ysSU5yhqWT4+deQUYZiI8/1tJ2c=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "GvjVVg5btXuEFEHqyoe19BZogGw=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "vklitYIK0AiOXA0obSTq0c04pc4=", "path": "github.com/aws/aws-sdk-go/service/codepipeline", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "rL0O6L1zSJ/UQE0kEWUoCOOFDog=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentity", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "gkmRw2ZP/uU+V3b9v7CQM0CA0xs=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentityprovider", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "o9WTZk66Jlu+0UdO1wmtO3qp8ps=", "path": "github.com/aws/aws-sdk-go/service/configservice", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "/y7nXSnR9OqMoxlIl1hFcCk5kT8=", "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "TWva9VAs3zgU/FQjJkiUvY3wIXw=", "path": "github.com/aws/aws-sdk-go/service/dax", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "LfJ0Owy9HyaulKTvDEgCdkChMG8=", "path": "github.com/aws/aws-sdk-go/service/devicefarm", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "PBdPTvba1Ci9LrAs0VExIAWtdKQ=", "path": "github.com/aws/aws-sdk-go/service/directconnect", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "a02+OXxnVBBBeaZpgs8dXUHj8b0=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "xoFqND2spsYdyoui+wKepfGQS8c=", "path": "github.com/aws/aws-sdk-go/service/dlm", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "XRzDF1GFEnm7CWURxz8oirdEty4=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "QutiSGcdlnEisOq+KNZ872PAl7I=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "VD7bAh0n/UgOwRBPe5y38Ow/dHU=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Q8RuvleYpFO1hlm/eKRbg5wG/nQ=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "NDrEwIZeUSlHgENwBzVdy0KcCCY=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "5QdblYPoDtRsQ8aczXOesIKTDpc=", + "checksumSHA1": "dSndJIyIFwpciskUn2ZmUvIdR+c=", "path": "github.com/aws/aws-sdk-go/service/eks", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "kvsll2DfqS1hg97xSWMIcMan5as=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "G1BmSThB0eTjq8gSfjA+PnB9zs0=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "O++z0DZj/MzSNWgVfV+SYzTS/fM=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "VFjWDQMsGpFMrNfcc//ABRpo6Ew=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Gp+QZjtg8PCNVi9X8m2SqtFvMas=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "wIiqI9GFAV2AQ32o2kEYHNyqVig=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "oNOLs79R42Vsj/jYTYtrbyTWxcw=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "3hICqVOs1WmluYMZN9fTMbDQSyM=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "tNVmAgvnURWLWibVCL7vIDYU7UM=", "path": "github.com/aws/aws-sdk-go/service/fms", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "J1SHh0J6kX8JBD0+TQCFP+1Kij4=", "path": "github.com/aws/aws-sdk-go/service/gamelift", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "BB3/VzUU5Rg4KgrezJ17D4kCnwA=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "A1E5569KvbsmoB9/eA0YxBYmjMI=", "path": "github.com/aws/aws-sdk-go/service/glue", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "HNndTio5+fNOiLr23i+QZpPp8HU=", "path": "github.com/aws/aws-sdk-go/service/guardduty", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "ae+jhUirSvN0IXPVU7X7xc+EbFE=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "39yMWxFP9XB+8wWWCZX4vkNWmxU=", "path": "github.com/aws/aws-sdk-go/service/inspector", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "L4/CAGbD5ka9byuE1EC6EDGCIxc=", + "checksumSHA1": "G1GZpCmKREPPgzLOBrvXmiyhbnc=", "path": "github.com/aws/aws-sdk-go/service/iot", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "q9HZ/0/lBSRKtjHXMegmcRcazPo=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "nUdxsOW9jg+m+sWZYPu7oX9rZo8=", "path": "github.com/aws/aws-sdk-go/service/kinesisanalytics", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "vaMnUnRVDkpHp/e4f3dFX20JblM=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "K4OamITKC7PKo1eHrSl0z8Visg0=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "nMklVJilxMmhlmnnquFJB97isMk=", "path": "github.com/aws/aws-sdk-go/service/lexmodelbuildingservice", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "tX/3xEkl13DuKNIO0v3qYseEIvI=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "+l6bA5aVzmBXH2Isj1xZkd5RKNY=", "path": "github.com/aws/aws-sdk-go/service/macie", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "WfsMSOC0DxRApVecptw2244Cc6w=", "path": "github.com/aws/aws-sdk-go/service/mediaconvert", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "PE3129yEUwSvn0rg3P86Pxqnnps=", "path": "github.com/aws/aws-sdk-go/service/medialive", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "CggySAQfK9WXsX37mRI8UqXGkJo=", + "checksumSHA1": "4YkW/odfpvJHVz5p2RCW3cWaHOQ=", "path": "github.com/aws/aws-sdk-go/service/mediapackage", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "9NU6dJOvKvcgnl/4eUdwy4YD5ss=", "path": "github.com/aws/aws-sdk-go/service/mediastore", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "qyIVtaN5mzPq4d7BDj9YpYtifKs=", "path": "github.com/aws/aws-sdk-go/service/mediastoredata", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "1jKxCBvS+zKzq6p2i4BqLXYHm48=", "path": "github.com/aws/aws-sdk-go/service/mq", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "E3i2/WM1kDE7WBOSRnDsZkwmZwI=", "path": "github.com/aws/aws-sdk-go/service/neptune", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "x3PsW91a7fh+Q466y3WM3fdtnGg=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "YCd2EU1DPiO0QTRZk6G1fLZAyg0=", "path": "github.com/aws/aws-sdk-go/service/organizations", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "e5v4Cc9/0H2ngQNuvVyj2Mt0vi0=", "path": "github.com/aws/aws-sdk-go/service/pinpoint", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "j1i1tZ94/kDvvzgpv5xqxwNvgyY=", "path": "github.com/aws/aws-sdk-go/service/pricing", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "EvlN1OFs7c7kQEIuvkwE/yTuv8o=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "N/wIyWWN2g8QcyCJQLTDoFxaoLk=", + "checksumSHA1": "1zThqt8de3tv6wOzT/8mKxqJ5kE=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "KlM6azZ5G09MmPg+lzEizW2qaLA=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "DmKatmbYsvm+MoCP01PCdQ6Y6Tk=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "b6/blG8OZ6+RRIX6fuMSCeaqNsk=", + "checksumSHA1": "qB34t8+gQAYbx7kaxDIllgM9MpQ=", "path": "github.com/aws/aws-sdk-go/service/sagemaker", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "FkBALtXiN4PCzFnl/G2gXFFLV3E=", "path": "github.com/aws/aws-sdk-go/service/secretsmanager", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "Y29bmjwKXcPg0d0WvZNFGdhd4+E=", "path": "github.com/aws/aws-sdk-go/service/serverlessapplicationrepository", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "T8dOJ1jjEBdogUE03oRPRJCOY3k=", "path": "github.com/aws/aws-sdk-go/service/servicecatalog", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "UhJ0RdPXzdMOUEBWREB5Zi9lgmY=", "path": "github.com/aws/aws-sdk-go/service/servicediscovery", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "0vtFXRYnhlCCq8/zPv1O1YWIoSg=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "1rJbvLXRsCzWhTihruRq/i0Zawg=", "path": "github.com/aws/aws-sdk-go/service/sfn", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "hliWYTmov/HswyMpYq93zJtdkk0=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "bW9FW0Qe3VURaSoY305kA/wCFrM=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "ECIZck5xhocpUl8GeUAdeSnCgvg=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "307CISQxMTTnatZ//6/p8obzeGs=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "TeuakooizAybzyMQyTXllUyhfBg=", "path": "github.com/aws/aws-sdk-go/service/storagegateway", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "UhIVLDgQc19wjrPj8pP7Fu2UwWc=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "zSqEhiGtEK6ll3f1Rlf2tuDKQA8=", "path": "github.com/aws/aws-sdk-go/service/swf", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "H8Pa7irZ9gpuYGJk3uMK59gxGTs=", + "checksumSHA1": "N/w20GqQBU7sVFbshxOA3AWAvDU=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { - "checksumSHA1": "uRMuwxPD/AlpvFpKppgAYzvlC0A=", + "checksumSHA1": "ocF/2t8BOrkUpc62h6kHH0WtfTg=", "path": "github.com/aws/aws-sdk-go/service/wafregional", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "oe8l2ibuhzz7fWM3f64cWnHwFy8=", "path": "github.com/aws/aws-sdk-go/service/workspaces", - "revision": "4324bc9d8865bdb3e6aa86ec7772ca1272d2750e", - "revisionTime": "2018-08-25T00:53:30Z", - "version": "v1.15.21", - "versionExact": "v1.15.21" + "revision": "04abd557eeaab3cfdded45467eea00fc03db9cb9", + "revisionTime": "2018-08-31T22:30:03Z", + "version": "v1.15.26", + "versionExact": "v1.15.26" }, { "checksumSHA1": "yBBHqv7DvZNsZdF00SO8PbEQAKU=", @@ -2136,4 +2136,4 @@ } ], "rootPath": "github.com/terraform-providers/terraform-provider-aws" -} \ No newline at end of file +} From 14a3a280d3e0b61ae24d4f4866aa74bb4dfdb996 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Fri, 31 Aug 2018 19:06:04 -0400 Subject: [PATCH 036/184] vendor: hashicorp/go-uuid@v1.0.0 Preparation for converting to Go modules. * Updated via: `govendor fetch github.com/hashicorp/go-uuid/...@v1.0.0` --- vendor/github.com/hashicorp/go-uuid/README.md | 4 ++-- vendor/github.com/hashicorp/go-uuid/go.mod | 1 + vendor/github.com/hashicorp/go-uuid/uuid.go | 16 ++++++++++++---- vendor/vendor.json | 9 ++++++--- 4 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-uuid/go.mod diff --git a/vendor/github.com/hashicorp/go-uuid/README.md b/vendor/github.com/hashicorp/go-uuid/README.md index 21fdda4adaf..fbde8b9aef6 100644 --- a/vendor/github.com/hashicorp/go-uuid/README.md +++ b/vendor/github.com/hashicorp/go-uuid/README.md @@ -1,6 +1,6 @@ -# uuid +# uuid [![Build Status](https://travis-ci.org/hashicorp/go-uuid.svg?branch=master)](https://travis-ci.org/hashicorp/go-uuid) -Generates UUID-format strings using purely high quality random bytes. +Generates UUID-format strings using high quality, _purely random_ bytes. It is **not** intended to be RFC compliant, merely to use a well-understood string representation of a 128-bit value. It can also parse UUID-format strings into their component bytes. Documentation ============= diff --git a/vendor/github.com/hashicorp/go-uuid/go.mod b/vendor/github.com/hashicorp/go-uuid/go.mod new file mode 100644 index 00000000000..dd57f9d21ad --- /dev/null +++ b/vendor/github.com/hashicorp/go-uuid/go.mod @@ -0,0 +1 @@ +module github.com/hashicorp/go-uuid diff --git a/vendor/github.com/hashicorp/go-uuid/uuid.go b/vendor/github.com/hashicorp/go-uuid/uuid.go index 322b522c23f..ff9364c4040 100644 --- a/vendor/github.com/hashicorp/go-uuid/uuid.go +++ b/vendor/github.com/hashicorp/go-uuid/uuid.go @@ -6,13 +6,21 @@ import ( "fmt" ) -// GenerateUUID is used to generate a random UUID -func GenerateUUID() (string, error) { - buf := make([]byte, 16) +// GenerateRandomBytes is used to generate random bytes of given size. +func GenerateRandomBytes(size int) ([]byte, error) { + buf := make([]byte, size) if _, err := rand.Read(buf); err != nil { - return "", fmt.Errorf("failed to read random bytes: %v", err) + return nil, fmt.Errorf("failed to read random bytes: %v", err) } + return buf, nil +} +// GenerateUUID is used to generate a random UUID +func GenerateUUID() (string, error) { + buf, err := GenerateRandomBytes(16) + if err != nil { + return "", err + } return FormatUUID(buf) } diff --git a/vendor/vendor.json b/vendor/vendor.json index f47ca6f5661..e46ab8f2142 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1182,9 +1182,12 @@ "revisionTime": "2018-03-26T21:11:50Z" }, { - "checksumSHA1": "85XUnluYJL7F55ptcwdmN8eSOsk=", + "checksumSHA1": "Kjansj6ZDJrWKNS1BJpg+z7OBnI=", "path": "github.com/hashicorp/go-uuid", - "revision": "36289988d83ca270bc07c234c36f364b0dd9c9a7" + "revision": "de160f5c59f693fed329e73e291bb751fe4ea4dc", + "revisionTime": "2018-08-30T03:27:00Z", + "version": "v1.0.0", + "versionExact": "v1.0.0" }, { "checksumSHA1": "r0pj5dMHCghpaQZ3f1BRGoKiSWw=", @@ -2136,4 +2139,4 @@ } ], "rootPath": "github.com/terraform-providers/terraform-provider-aws" -} \ No newline at end of file +} From 185bccbba1c4d491a9aef18ba580a22e402a6513 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Fri, 31 Aug 2018 19:11:22 -0400 Subject: [PATCH 037/184] vendor: hashicorp/go-cleanhttp@v0.5.0 Preparation for migrating to Go modules. Notable change: `net.Dailer` has `DualStack` enabled. Documentation: https://golang.org/pkg/net/#Dialer ``` // DualStack enables RFC 6555-compliant "Happy Eyeballs" // dialing when the network is "tcp" and the host in the // address parameter resolves to both IPv4 and IPv6 addresses. // This allows a client to tolerate networks where one address // family is silently broken. DualStack bool ``` * Updated via `govendor fetch github.com/hashicorp/go-cleanhttp/...@v0.5.0` --- .../hashicorp/go-cleanhttp/cleanhttp.go | 1 + .../github.com/hashicorp/go-cleanhttp/go.mod | 1 + .../hashicorp/go-cleanhttp/handlers.go | 43 +++++++++++++++++++ vendor/vendor.json | 10 +++-- 4 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-cleanhttp/go.mod create mode 100644 vendor/github.com/hashicorp/go-cleanhttp/handlers.go diff --git a/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go b/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go index 7d8a57c2807..8d306bf5134 100644 --- a/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +++ b/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go @@ -26,6 +26,7 @@ func DefaultPooledTransport() *http.Transport { DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, + DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, diff --git a/vendor/github.com/hashicorp/go-cleanhttp/go.mod b/vendor/github.com/hashicorp/go-cleanhttp/go.mod new file mode 100644 index 00000000000..310f07569fc --- /dev/null +++ b/vendor/github.com/hashicorp/go-cleanhttp/go.mod @@ -0,0 +1 @@ +module github.com/hashicorp/go-cleanhttp diff --git a/vendor/github.com/hashicorp/go-cleanhttp/handlers.go b/vendor/github.com/hashicorp/go-cleanhttp/handlers.go new file mode 100644 index 00000000000..7eda3777f3c --- /dev/null +++ b/vendor/github.com/hashicorp/go-cleanhttp/handlers.go @@ -0,0 +1,43 @@ +package cleanhttp + +import ( + "net/http" + "strings" + "unicode" +) + +// HandlerInput provides input options to cleanhttp's handlers +type HandlerInput struct { + ErrStatus int +} + +// PrintablePathCheckHandler is a middleware that ensures the request path +// contains only printable runes. +func PrintablePathCheckHandler(next http.Handler, input *HandlerInput) http.Handler { + // Nil-check on input to make it optional + if input == nil { + input = &HandlerInput{ + ErrStatus: http.StatusBadRequest, + } + } + + // Default to http.StatusBadRequest on error + if input.ErrStatus == 0 { + input.ErrStatus = http.StatusBadRequest + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Check URL path for non-printable characters + idx := strings.IndexFunc(r.URL.Path, func(c rune) bool { + return !unicode.IsPrint(c) + }) + + if idx != -1 { + w.WriteHeader(input.ErrStatus) + return + } + + next.ServeHTTP(w, r) + return + }) +} diff --git a/vendor/vendor.json b/vendor/vendor.json index f47ca6f5661..2eb40a1e60e 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1140,10 +1140,12 @@ "revision": "7554cd9344cec97297fa6649b055a8c98c2a1e55" }, { - "checksumSHA1": "b8F628srIitj5p7Y130xc9k0QWs=", + "checksumSHA1": "Ihile6rE76J6SivxECovHgMROxw=", "path": "github.com/hashicorp/go-cleanhttp", - "revision": "3573b8b52aa7b37b9358d966a898feb387f62437", - "revisionTime": "2017-02-11T01:34:15Z" + "revision": "e8ab9daed8d1ddd2d3c4efba338fe2eeae2e4f18", + "revisionTime": "2018-08-30T03:37:06Z", + "version": "v0.5.0", + "versionExact": "v0.5.0" }, { "checksumSHA1": "fvjFEz5PBN1m9ALWf9UuLgTFWLg=", @@ -2136,4 +2138,4 @@ } ], "rootPath": "github.com/terraform-providers/terraform-provider-aws" -} \ No newline at end of file +} From a1444f2b6402623dcbe2737bcc5785e7900ad008 Mon Sep 17 00:00:00 2001 From: Miguel David Date: Sun, 2 Sep 2018 20:13:50 +0100 Subject: [PATCH 038/184] Add example of credit specification block syntax --- website/docs/r/instance.html.markdown | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/website/docs/r/instance.html.markdown b/website/docs/r/instance.html.markdown index 4410345445b..80b17882427 100644 --- a/website/docs/r/instance.html.markdown +++ b/website/docs/r/instance.html.markdown @@ -226,11 +226,14 @@ resource "aws_network_interface" "foo" { } resource "aws_instance" "foo" { - ami = "ami-22b9a343" # us-west-2 - instance_type = "t2.micro" - network_interface { - network_interface_id = "${aws_network_interface.foo.id}" - device_index = 0 + ami = "ami-22b9a343" # us-west-2 + instance_type = "t2.micro" + network_interface { + network_interface_id = "${aws_network_interface.foo.id}" + device_index = 0 + } + credit_specification { + cpu_credits = "unlimited" } } ``` From a19b569428c0262f0fedeade8b2f1ea60d7d648e Mon Sep 17 00:00:00 2001 From: Victor Turbinsky Date: Sun, 2 Sep 2018 22:42:07 +0100 Subject: [PATCH 039/184] Fix: Added ForceNew for aws_redshift_cluster on availability_zone change --- aws/resource_aws_redshift_cluster.go | 1 + aws/resource_aws_redshift_cluster_test.go | 57 +++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/aws/resource_aws_redshift_cluster.go b/aws/resource_aws_redshift_cluster.go index 9f6c99ee3cf..54123514d8b 100644 --- a/aws/resource_aws_redshift_cluster.go +++ b/aws/resource_aws_redshift_cluster.go @@ -90,6 +90,7 @@ func resourceAwsRedshiftCluster() *schema.Resource { "availability_zone": { Type: schema.TypeString, Optional: true, + ForceNew: true, Computed: true, }, diff --git a/aws/resource_aws_redshift_cluster_test.go b/aws/resource_aws_redshift_cluster_test.go index 3865e8e5f4a..9fc2b1e72f9 100644 --- a/aws/resource_aws_redshift_cluster_test.go +++ b/aws/resource_aws_redshift_cluster_test.go @@ -504,6 +504,39 @@ func TestAccAWSRedshiftCluster_forceNewUsername(t *testing.T) { }) } +func TestAccAWSRedshiftCluster_changeAvailabilityZone(t *testing.T) { + var first, second redshift.Cluster + + ri := acctest.RandInt() + preConfig := testAccAWSRedshiftClusterConfig_basic(ri) + postConfig := testAccAWSRedshiftClusterConfig_updatedAvailabilityZone(ri) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSRedshiftClusterDestroy, + Steps: []resource.TestStep{ + { + Config: preConfig, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSRedshiftClusterExists("aws_redshift_cluster.default", &first), + testAccCheckAWSRedshiftClusterAvailabilityZone(&first, "us-west-2a"), + resource.TestCheckResourceAttr("aws_redshift_cluster.default", "availability_zone", "us-west-2a"), + ), + }, + + { + Config: postConfig, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSRedshiftClusterExists("aws_redshift_cluster.default", &second), + testAccCheckAWSRedshiftClusterAvailabilityZone(&second, "us-west-2b"), + resource.TestCheckResourceAttr("aws_redshift_cluster.default", "availability_zone", "us-west-2b"), + ), + }, + }, + }) +} + func testAccCheckAWSRedshiftClusterDestroy(s *terraform.State) error { for _, rs := range s.RootModule().Resources { if rs.Type != "aws_redshift_cluster" { @@ -629,6 +662,15 @@ func testAccCheckAWSRedshiftClusterMasterUsername(c *redshift.Cluster, value str } } +func testAccCheckAWSRedshiftClusterAvailabilityZone(c *redshift.Cluster, value string) resource.TestCheckFunc { + return func(s *terraform.State) error { + if *c.AvailabilityZone != value { + return fmt.Errorf("Expected cluster's AvailabilityZone: %q, given: %q", value, *c.AvailabilityZone) + } + return nil + } +} + func TestResourceAWSRedshiftClusterIdentifierValidation(t *testing.T) { cases := []struct { Value string @@ -1304,3 +1346,18 @@ resource "aws_redshift_cluster" "default" { skip_final_snapshot = true }`, rInt) } + +func testAccAWSRedshiftClusterConfig_updatedAvailabilityZone(rInt int) string { + return fmt.Sprintf(` + resource "aws_redshift_cluster" "default" { + cluster_identifier = "tf-redshift-cluster-%d" + availability_zone = "us-west-2b" + database_name = "mydb" + master_username = "foo_test" + master_password = "Mustbe8characters" + node_type = "dc1.large" + automated_snapshot_retention_period = 0 + allow_version_upgrade = false + skip_final_snapshot = true + }`, rInt) +} From 73c6d10b46e20179efe67003792bba1dddf52537 Mon Sep 17 00:00:00 2001 From: saravanan30erd Date: Mon, 3 Sep 2018 12:47:02 +0400 Subject: [PATCH 040/184] fix the gofmt issues --- ...a_source_aws_cloudformation_export_test.go | 2 +- aws/opsworks_layers.go | 24 +++++++-------- ...source_aws_acmpca_certificate_authority.go | 6 ++-- aws/resource_aws_api_gateway_integration.go | 30 +++++++++---------- ...e_aws_cloudfront_origin_access_identity.go | 4 +-- ...ce_aws_codedeploy_deployment_group_test.go | 8 ++--- aws/resource_aws_db_instance.go | 2 +- aws/resource_aws_db_security_group.go | 2 +- aws/resource_aws_dms_replication_instance.go | 2 +- ...sticache_replication_group_migrate_test.go | 2 +- ...resource_aws_emr_security_configuration.go | 2 +- aws/resource_aws_gamelift_fleet.go | 10 +++---- aws/resource_aws_instance.go | 12 ++++---- aws/resource_aws_instance_migrate_test.go | 8 ++--- ...ce_aws_kinesis_firehose_delivery_stream.go | 10 +++---- aws/resource_aws_neptune_cluster_instance.go | 2 +- ...rce_aws_neptune_cluster_parameter_group.go | 2 +- aws/resource_aws_rds_cluster_instance.go | 2 +- ...esource_aws_rds_cluster_parameter_group.go | 2 +- aws/resource_aws_redshift_cluster.go | 2 +- aws/resource_aws_route53_record.go | 4 +-- aws/resource_aws_s3_bucket.go | 4 +-- aws/resource_aws_s3_bucket_inventory.go | 4 +-- aws/resource_aws_s3_bucket_notification.go | 4 +-- ...esource_aws_security_group_migrate_test.go | 2 +- ..._service_discovery_service_migrate_test.go | 4 +-- aws/resource_aws_sns_topic.go | 8 ++--- aws/resource_aws_spot_fleet_request.go | 2 +- aws/resource_aws_spot_instance_request.go | 4 +-- aws/resource_aws_ssm_maintenance_window.go | 8 ++--- aws/resource_aws_ssm_patch_baseline.go | 2 +- aws/resource_aws_swf_domain.go | 2 +- aws/resource_aws_vpc.go | 2 +- aws/validators_test.go | 16 +++++----- 34 files changed, 100 insertions(+), 100 deletions(-) diff --git a/aws/data_source_aws_cloudformation_export_test.go b/aws/data_source_aws_cloudformation_export_test.go index 1ca42d7bc43..e76f91e20b0 100644 --- a/aws/data_source_aws_cloudformation_export_test.go +++ b/aws/data_source_aws_cloudformation_export_test.go @@ -17,7 +17,7 @@ func TestAccAWSCloudformationExportDataSource_basic(t *testing.T) { Providers: testAccProviders, Steps: []resource.TestStep{ { - Config: testAccCheckAwsCloudformationExportConfig(rName), + Config: testAccCheckAwsCloudformationExportConfig(rName), PreventPostDestroyRefresh: true, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.aws_cloudformation_export.waiter", "value", "waiter"), diff --git a/aws/opsworks_layers.go b/aws/opsworks_layers.go index d33eab61ca2..83e0b2d0284 100644 --- a/aws/opsworks_layers.go +++ b/aws/opsworks_layers.go @@ -345,13 +345,13 @@ func (lt *opsworksLayerType) Create(d *schema.ResourceData, client *opsworks.Ops EnableAutoHealing: aws.Bool(d.Get("auto_healing").(bool)), InstallUpdatesOnBoot: aws.Bool(d.Get("install_updates_on_boot").(bool)), LifecycleEventConfiguration: lt.LifecycleEventConfiguration(d), - Name: aws.String(d.Get("name").(string)), - Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), - Type: aws.String(lt.TypeName), - StackId: aws.String(d.Get("stack_id").(string)), - UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), - Attributes: lt.AttributeMap(d), - VolumeConfigurations: lt.VolumeConfigurations(d), + Name: aws.String(d.Get("name").(string)), + Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), + Type: aws.String(lt.TypeName), + StackId: aws.String(d.Get("stack_id").(string)), + UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), + Attributes: lt.AttributeMap(d), + VolumeConfigurations: lt.VolumeConfigurations(d), } if lt.CustomShortName { @@ -399,11 +399,11 @@ func (lt *opsworksLayerType) Update(d *schema.ResourceData, client *opsworks.Ops EnableAutoHealing: aws.Bool(d.Get("auto_healing").(bool)), InstallUpdatesOnBoot: aws.Bool(d.Get("install_updates_on_boot").(bool)), LifecycleEventConfiguration: lt.LifecycleEventConfiguration(d), - Name: aws.String(d.Get("name").(string)), - Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), - UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), - Attributes: lt.AttributeMap(d), - VolumeConfigurations: lt.VolumeConfigurations(d), + Name: aws.String(d.Get("name").(string)), + Packages: expandStringSet(d.Get("system_packages").(*schema.Set)), + UseEbsOptimizedInstances: aws.Bool(d.Get("use_ebs_optimized_instances").(bool)), + Attributes: lt.AttributeMap(d), + VolumeConfigurations: lt.VolumeConfigurations(d), } if lt.CustomShortName { diff --git a/aws/resource_aws_acmpca_certificate_authority.go b/aws/resource_aws_acmpca_certificate_authority.go index 81bc3479f41..e8158743c68 100644 --- a/aws/resource_aws_acmpca_certificate_authority.go +++ b/aws/resource_aws_acmpca_certificate_authority.go @@ -284,7 +284,7 @@ func resourceAwsAcmpcaCertificateAuthorityCreate(d *schema.ResourceData, meta in if v, ok := d.GetOk("tags"); ok { input := &acmpca.TagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: tagsFromMapACMPCA(v.(map[string]interface{})), + Tags: tagsFromMapACMPCA(v.(map[string]interface{})), } log.Printf("[DEBUG] Tagging ACMPCA Certificate Authority: %s", input) @@ -458,7 +458,7 @@ func resourceAwsAcmpcaCertificateAuthorityUpdate(d *schema.ResourceData, meta in log.Printf("[DEBUG] Removing ACMPCA Certificate Authority %q tags: %#v", d.Id(), remove) _, err := conn.UntagCertificateAuthority(&acmpca.UntagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: remove, + Tags: remove, }) if err != nil { return fmt.Errorf("error updating ACMPCA Certificate Authority %q tags: %s", d.Id(), err) @@ -468,7 +468,7 @@ func resourceAwsAcmpcaCertificateAuthorityUpdate(d *schema.ResourceData, meta in log.Printf("[DEBUG] Creating ACMPCA Certificate Authority %q tags: %#v", d.Id(), create) _, err := conn.TagCertificateAuthority(&acmpca.TagCertificateAuthorityInput{ CertificateAuthorityArn: aws.String(d.Id()), - Tags: create, + Tags: create, }) if err != nil { return fmt.Errorf("error updating ACMPCA Certificate Authority %q tags: %s", d.Id(), err) diff --git a/aws/resource_aws_api_gateway_integration.go b/aws/resource_aws_api_gateway_integration.go index 755bcb54c09..259d5d69136 100644 --- a/aws/resource_aws_api_gateway_integration.go +++ b/aws/resource_aws_api_gateway_integration.go @@ -243,22 +243,22 @@ func resourceAwsApiGatewayIntegrationCreate(d *schema.ResourceData, meta interfa } _, err := conn.PutIntegration(&apigateway.PutIntegrationInput{ - HttpMethod: aws.String(d.Get("http_method").(string)), - ResourceId: aws.String(d.Get("resource_id").(string)), - RestApiId: aws.String(d.Get("rest_api_id").(string)), - Type: aws.String(d.Get("type").(string)), + HttpMethod: aws.String(d.Get("http_method").(string)), + ResourceId: aws.String(d.Get("resource_id").(string)), + RestApiId: aws.String(d.Get("rest_api_id").(string)), + Type: aws.String(d.Get("type").(string)), IntegrationHttpMethod: integrationHttpMethod, - Uri: uri, - RequestParameters: aws.StringMap(parameters), - RequestTemplates: aws.StringMap(templates), - Credentials: credentials, - CacheNamespace: cacheNamespace, - CacheKeyParameters: cacheKeyParameters, - PassthroughBehavior: passthroughBehavior, - ContentHandling: contentHandling, - ConnectionType: connectionType, - ConnectionId: connectionId, - TimeoutInMillis: timeoutInMillis, + Uri: uri, + RequestParameters: aws.StringMap(parameters), + RequestTemplates: aws.StringMap(templates), + Credentials: credentials, + CacheNamespace: cacheNamespace, + CacheKeyParameters: cacheKeyParameters, + PassthroughBehavior: passthroughBehavior, + ContentHandling: contentHandling, + ConnectionType: connectionType, + ConnectionId: connectionId, + TimeoutInMillis: timeoutInMillis, }) if err != nil { return fmt.Errorf("Error creating API Gateway Integration: %s", err) diff --git a/aws/resource_aws_cloudfront_origin_access_identity.go b/aws/resource_aws_cloudfront_origin_access_identity.go index 00f6b65877b..b82296763a9 100644 --- a/aws/resource_aws_cloudfront_origin_access_identity.go +++ b/aws/resource_aws_cloudfront_origin_access_identity.go @@ -95,9 +95,9 @@ func resourceAwsCloudFrontOriginAccessIdentityRead(d *schema.ResourceData, meta func resourceAwsCloudFrontOriginAccessIdentityUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).cloudfrontconn params := &cloudfront.UpdateCloudFrontOriginAccessIdentityInput{ - Id: aws.String(d.Id()), + Id: aws.String(d.Id()), CloudFrontOriginAccessIdentityConfig: expandOriginAccessIdentityConfig(d), - IfMatch: aws.String(d.Get("etag").(string)), + IfMatch: aws.String(d.Get("etag").(string)), } _, err := conn.UpdateCloudFrontOriginAccessIdentity(params) if err != nil { diff --git a/aws/resource_aws_codedeploy_deployment_group_test.go b/aws/resource_aws_codedeploy_deployment_group_test.go index 1ab89775d09..9f107231c5e 100644 --- a/aws/resource_aws_codedeploy_deployment_group_test.go +++ b/aws/resource_aws_codedeploy_deployment_group_test.go @@ -1568,7 +1568,7 @@ func TestAWSCodeDeployDeploymentGroup_expandBlueGreenDeploymentConfig(t *testing "terminate_blue_instances_on_deployment_success": []interface{}{ map[string]interface{}{ - "action": "TERMINATE", + "action": "TERMINATE", "termination_wait_time_in_minutes": 90, }, }, @@ -1586,7 +1586,7 @@ func TestAWSCodeDeployDeploymentGroup_expandBlueGreenDeploymentConfig(t *testing }, TerminateBlueInstancesOnDeploymentSuccess: &codedeploy.BlueInstanceTerminationOption{ - Action: aws.String("TERMINATE"), + Action: aws.String("TERMINATE"), TerminationWaitTimeInMinutes: aws.Int64(90), }, } @@ -1611,7 +1611,7 @@ func TestAWSCodeDeployDeploymentGroup_flattenBlueGreenDeploymentConfig(t *testin }, TerminateBlueInstancesOnDeploymentSuccess: &codedeploy.BlueInstanceTerminationOption{ - Action: aws.String("KEEP_ALIVE"), + Action: aws.String("KEEP_ALIVE"), TerminationWaitTimeInMinutes: aws.Int64(90), }, } @@ -1632,7 +1632,7 @@ func TestAWSCodeDeployDeploymentGroup_flattenBlueGreenDeploymentConfig(t *testin "terminate_blue_instances_on_deployment_success": []map[string]interface{}{ { - "action": "KEEP_ALIVE", + "action": "KEEP_ALIVE", "termination_wait_time_in_minutes": 90, }, }, diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go index 8e44d8703c3..9100d9518dd 100644 --- a/aws/resource_aws_db_instance.go +++ b/aws/resource_aws_db_instance.go @@ -460,7 +460,7 @@ func resourceAwsDbInstanceCreate(d *schema.ResourceData, meta interface{}) error DBInstanceIdentifier: aws.String(identifier), PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), SourceDBInstanceIdentifier: aws.String(v.(string)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("allocated_storage"); ok { diff --git a/aws/resource_aws_db_security_group.go b/aws/resource_aws_db_security_group.go index f3bd2617c2f..04d4ef1f9f8 100644 --- a/aws/resource_aws_db_security_group.go +++ b/aws/resource_aws_db_security_group.go @@ -91,7 +91,7 @@ func resourceAwsDbSecurityGroupCreate(d *schema.ResourceData, meta interface{}) opts := rds.CreateDBSecurityGroupInput{ DBSecurityGroupName: aws.String(d.Get("name").(string)), DBSecurityGroupDescription: aws.String(d.Get("description").(string)), - Tags: tags, + Tags: tags, } log.Printf("[DEBUG] DB Security Group create configuration: %#v", opts) diff --git a/aws/resource_aws_dms_replication_instance.go b/aws/resource_aws_dms_replication_instance.go index df12efb91d6..282451a7b0e 100644 --- a/aws/resource_aws_dms_replication_instance.go +++ b/aws/resource_aws_dms_replication_instance.go @@ -136,7 +136,7 @@ func resourceAwsDmsReplicationInstanceCreate(d *schema.ResourceData, meta interf PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), ReplicationInstanceClass: aws.String(d.Get("replication_instance_class").(string)), ReplicationInstanceIdentifier: aws.String(d.Get("replication_instance_id").(string)), - Tags: dmsTagsFromMap(d.Get("tags").(map[string]interface{})), + Tags: dmsTagsFromMap(d.Get("tags").(map[string]interface{})), } // WARNING: GetOk returns the zero value for the type if the key is omitted in config. This means for optional diff --git a/aws/resource_aws_elasticache_replication_group_migrate_test.go b/aws/resource_aws_elasticache_replication_group_migrate_test.go index 1379d539a47..c014f7e6d68 100644 --- a/aws/resource_aws_elasticache_replication_group_migrate_test.go +++ b/aws/resource_aws_elasticache_replication_group_migrate_test.go @@ -16,7 +16,7 @@ func TestAwsElasticacheReplicationGroupMigrateState(t *testing.T) { "v0Tov1": { StateVersion: 0, Attributes: map[string]string{ - "cluster_mode.#": "1", + "cluster_mode.#": "1", "cluster_mode.4170186206.num_node_groups": "2", "cluster_mode.4170186206.replicas_per_node_group": "1", }, diff --git a/aws/resource_aws_emr_security_configuration.go b/aws/resource_aws_emr_security_configuration.go index 45beffc6d1a..ff25619a361 100644 --- a/aws/resource_aws_emr_security_configuration.go +++ b/aws/resource_aws_emr_security_configuration.go @@ -65,7 +65,7 @@ func resourceAwsEmrSecurityConfigurationCreate(d *schema.ResourceData, meta inte } resp, err := conn.CreateSecurityConfiguration(&emr.CreateSecurityConfigurationInput{ - Name: aws.String(emrSCName), + Name: aws.String(emrSCName), SecurityConfiguration: aws.String(d.Get("configuration").(string)), }) diff --git a/aws/resource_aws_gamelift_fleet.go b/aws/resource_aws_gamelift_fleet.go index be1a328daab..815b899d716 100644 --- a/aws/resource_aws_gamelift_fleet.go +++ b/aws/resource_aws_gamelift_fleet.go @@ -301,10 +301,10 @@ func resourceAwsGameliftFleetUpdate(d *schema.ResourceData, meta interface{}) er if d.HasChange("description") || d.HasChange("metric_groups") || d.HasChange("name") || d.HasChange("new_game_session_protection_policy") || d.HasChange("resource_creation_limit_policy") { _, err := conn.UpdateFleetAttributes(&gamelift.UpdateFleetAttributesInput{ - Description: aws.String(d.Get("description").(string)), - FleetId: aws.String(d.Id()), - MetricGroups: expandStringList(d.Get("metric_groups").([]interface{})), - Name: aws.String(d.Get("name").(string)), + Description: aws.String(d.Get("description").(string)), + FleetId: aws.String(d.Id()), + MetricGroups: expandStringList(d.Get("metric_groups").([]interface{})), + Name: aws.String(d.Get("name").(string)), NewGameSessionProtectionPolicy: aws.String(d.Get("new_game_session_protection_policy").(string)), ResourceCreationLimitPolicy: expandGameliftResourceCreationLimitPolicy(d.Get("resource_creation_limit_policy").([]interface{})), }) @@ -318,7 +318,7 @@ func resourceAwsGameliftFleetUpdate(d *schema.ResourceData, meta interface{}) er authorizations, revocations := diffGameliftPortSettings(oldPerms.([]interface{}), newPerms.([]interface{})) _, err := conn.UpdateFleetPortSettings(&gamelift.UpdateFleetPortSettingsInput{ - FleetId: aws.String(d.Id()), + FleetId: aws.String(d.Id()), InboundPermissionAuthorizations: authorizations, InboundPermissionRevocations: revocations, }) diff --git a/aws/resource_aws_instance.go b/aws/resource_aws_instance.go index a51ad8f461c..65637d7a05c 100644 --- a/aws/resource_aws_instance.go +++ b/aws/resource_aws_instance.go @@ -505,12 +505,12 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error { // Build the creation struct runOpts := &ec2.RunInstancesInput{ - BlockDeviceMappings: instanceOpts.BlockDeviceMappings, - DisableApiTermination: instanceOpts.DisableAPITermination, - EbsOptimized: instanceOpts.EBSOptimized, - Monitoring: instanceOpts.Monitoring, - IamInstanceProfile: instanceOpts.IAMInstanceProfile, - ImageId: instanceOpts.ImageID, + BlockDeviceMappings: instanceOpts.BlockDeviceMappings, + DisableApiTermination: instanceOpts.DisableAPITermination, + EbsOptimized: instanceOpts.EBSOptimized, + Monitoring: instanceOpts.Monitoring, + IamInstanceProfile: instanceOpts.IAMInstanceProfile, + ImageId: instanceOpts.ImageID, InstanceInitiatedShutdownBehavior: instanceOpts.InstanceInitiatedShutdownBehavior, InstanceType: instanceOpts.InstanceType, Ipv6AddressCount: instanceOpts.Ipv6AddressCount, diff --git a/aws/resource_aws_instance_migrate_test.go b/aws/resource_aws_instance_migrate_test.go index d392943315e..bc591fd092a 100644 --- a/aws/resource_aws_instance_migrate_test.go +++ b/aws/resource_aws_instance_migrate_test.go @@ -17,7 +17,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { StateVersion: 0, Attributes: map[string]string{ // EBS - "block_device.#": "2", + "block_device.#": "2", "block_device.3851383343.delete_on_termination": "true", "block_device.3851383343.device_name": "/dev/sdx", "block_device.3851383343.encrypted": "false", @@ -42,7 +42,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { "block_device.56575650.volume_type": "standard", }, Expected: map[string]string{ - "ebs_block_device.#": "1", + "ebs_block_device.#": "1", "ebs_block_device.3851383343.delete_on_termination": "true", "ebs_block_device.3851383343.device_name": "/dev/sdx", "ebs_block_device.3851383343.encrypted": "false", @@ -64,7 +64,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { StateVersion: 0, Attributes: map[string]string{ // EBS - "block_device.#": "2", + "block_device.#": "2", "block_device.3851383343.delete_on_termination": "true", "block_device.3851383343.device_name": "/dev/sdx", "block_device.3851383343.encrypted": "false", @@ -92,7 +92,7 @@ func TestAWSInstanceMigrateState(t *testing.T) { "root_block_device.3018388612.iops": "1000", }, Expected: map[string]string{ - "ebs_block_device.#": "1", + "ebs_block_device.#": "1", "ebs_block_device.3851383343.delete_on_termination": "true", "ebs_block_device.3851383343.device_name": "/dev/sdx", "ebs_block_device.3851383343.encrypted": "false", diff --git a/aws/resource_aws_kinesis_firehose_delivery_stream.go b/aws/resource_aws_kinesis_firehose_delivery_stream.go index 74dedf576b2..d570bb62b60 100644 --- a/aws/resource_aws_kinesis_firehose_delivery_stream.go +++ b/aws/resource_aws_kinesis_firehose_delivery_stream.go @@ -228,11 +228,11 @@ func flattenFirehoseExtendedS3Configuration(description *firehose.ExtendedS3Dest "cloudwatch_logging_options": flattenCloudwatchLoggingOptions(description.CloudWatchLoggingOptions), "compression_format": aws.StringValue(description.CompressionFormat), "data_format_conversion_configuration": flattenFirehoseDataFormatConversionConfiguration(description.DataFormatConversionConfiguration), - "prefix": aws.StringValue(description.Prefix), - "processing_configuration": flattenProcessingConfiguration(description.ProcessingConfiguration, aws.StringValue(description.RoleARN)), - "role_arn": aws.StringValue(description.RoleARN), - "s3_backup_configuration": flattenFirehoseS3Configuration(description.S3BackupDescription), - "s3_backup_mode": aws.StringValue(description.S3BackupMode), + "prefix": aws.StringValue(description.Prefix), + "processing_configuration": flattenProcessingConfiguration(description.ProcessingConfiguration, aws.StringValue(description.RoleARN)), + "role_arn": aws.StringValue(description.RoleARN), + "s3_backup_configuration": flattenFirehoseS3Configuration(description.S3BackupDescription), + "s3_backup_mode": aws.StringValue(description.S3BackupMode), } if description.BufferingHints != nil { diff --git a/aws/resource_aws_neptune_cluster_instance.go b/aws/resource_aws_neptune_cluster_instance.go index 026feeb7346..6cb8ec42a41 100644 --- a/aws/resource_aws_neptune_cluster_instance.go +++ b/aws/resource_aws_neptune_cluster_instance.go @@ -196,7 +196,7 @@ func resourceAwsNeptuneClusterInstanceCreate(d *schema.ResourceData, meta interf PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), PromotionTier: aws.Int64(int64(d.Get("promotion_tier").(int))), AutoMinorVersionUpgrade: aws.Bool(d.Get("auto_minor_version_upgrade").(bool)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("availability_zone"); ok { diff --git a/aws/resource_aws_neptune_cluster_parameter_group.go b/aws/resource_aws_neptune_cluster_parameter_group.go index a04db20a2d5..7a879889d5c 100644 --- a/aws/resource_aws_neptune_cluster_parameter_group.go +++ b/aws/resource_aws_neptune_cluster_parameter_group.go @@ -154,7 +154,7 @@ func resourceAwsNeptuneClusterParameterGroupRead(d *schema.ResourceData, meta in // Only include user customized parameters as there's hundreds of system/default ones describeParametersOpts := neptune.DescribeDBClusterParametersInput{ DBClusterParameterGroupName: aws.String(d.Id()), - Source: aws.String("user"), + Source: aws.String("user"), } describeParametersResp, err := conn.DescribeDBClusterParameters(&describeParametersOpts) diff --git a/aws/resource_aws_rds_cluster_instance.go b/aws/resource_aws_rds_cluster_instance.go index 4a65db57786..70ad3d3dafe 100644 --- a/aws/resource_aws_rds_cluster_instance.go +++ b/aws/resource_aws_rds_cluster_instance.go @@ -216,7 +216,7 @@ func resourceAwsRDSClusterInstanceCreate(d *schema.ResourceData, meta interface{ PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), PromotionTier: aws.Int64(int64(d.Get("promotion_tier").(int))), AutoMinorVersionUpgrade: aws.Bool(d.Get("auto_minor_version_upgrade").(bool)), - Tags: tags, + Tags: tags, } if attr, ok := d.GetOk("availability_zone"); ok { diff --git a/aws/resource_aws_rds_cluster_parameter_group.go b/aws/resource_aws_rds_cluster_parameter_group.go index c882de7660a..577a5b6f4b3 100644 --- a/aws/resource_aws_rds_cluster_parameter_group.go +++ b/aws/resource_aws_rds_cluster_parameter_group.go @@ -161,7 +161,7 @@ func resourceAwsRDSClusterParameterGroupRead(d *schema.ResourceData, meta interf // Only include user customized parameters as there's hundreds of system/default ones describeParametersOpts := rds.DescribeDBClusterParametersInput{ DBClusterParameterGroupName: aws.String(d.Id()), - Source: aws.String("user"), + Source: aws.String("user"), } describeParametersResp, err := rdsconn.DescribeDBClusterParameters(&describeParametersOpts) diff --git a/aws/resource_aws_redshift_cluster.go b/aws/resource_aws_redshift_cluster.go index 6cde16cef90..9f6c99ee3cf 100644 --- a/aws/resource_aws_redshift_cluster.go +++ b/aws/resource_aws_redshift_cluster.go @@ -415,7 +415,7 @@ func resourceAwsRedshiftClusterCreate(d *schema.ResourceData, meta interface{}) AllowVersionUpgrade: aws.Bool(d.Get("allow_version_upgrade").(bool)), PubliclyAccessible: aws.Bool(d.Get("publicly_accessible").(bool)), AutomatedSnapshotRetentionPeriod: aws.Int64(int64(d.Get("automated_snapshot_retention_period").(int))), - Tags: tags, + Tags: tags, } if v := d.Get("number_of_nodes").(int); v > 1 { diff --git a/aws/resource_aws_route53_record.go b/aws/resource_aws_route53_record.go index f0f6651065e..92c10adb301 100644 --- a/aws/resource_aws_route53_record.go +++ b/aws/resource_aws_route53_record.go @@ -541,8 +541,8 @@ func resourceAwsRoute53RecordRead(d *schema.ResourceData, meta interface{}) erro name := normalizeAwsAliasName(*alias.DNSName) d.Set("alias", []interface{}{ map[string]interface{}{ - "zone_id": *alias.HostedZoneId, - "name": name, + "zone_id": *alias.HostedZoneId, + "name": name, "evaluate_target_health": *alias.EvaluateTargetHealth, }, }) diff --git a/aws/resource_aws_s3_bucket.go b/aws/resource_aws_s3_bucket.go index c935ddb2258..e304cd614ed 100644 --- a/aws/resource_aws_s3_bucket.go +++ b/aws/resource_aws_s3_bucket.go @@ -1700,7 +1700,7 @@ func resourceAwsS3BucketServerSideEncryptionConfigurationUpdate(s3conn *s3.S3, d rc.Rules = rules i := &s3.PutBucketEncryptionInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), ServerSideEncryptionConfiguration: rc, } log.Printf("[DEBUG] S3 put bucket replication configuration: %#v", i) @@ -1807,7 +1807,7 @@ func resourceAwsS3BucketReplicationConfigurationUpdate(s3conn *s3.S3, d *schema. rc.Rules = rules i := &s3.PutBucketReplicationInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), ReplicationConfiguration: rc, } log.Printf("[DEBUG] S3 put bucket replication configuration: %#v", i) diff --git a/aws/resource_aws_s3_bucket_inventory.go b/aws/resource_aws_s3_bucket_inventory.go index 43a0498fb0c..71b8f7eb0d8 100644 --- a/aws/resource_aws_s3_bucket_inventory.go +++ b/aws/resource_aws_s3_bucket_inventory.go @@ -221,8 +221,8 @@ func resourceAwsS3BucketInventoryPut(d *schema.ResourceData, meta interface{}) e } input := &s3.PutBucketInventoryConfigurationInput{ - Bucket: aws.String(bucket), - Id: aws.String(name), + Bucket: aws.String(bucket), + Id: aws.String(name), InventoryConfiguration: inventoryConfiguration, } diff --git a/aws/resource_aws_s3_bucket_notification.go b/aws/resource_aws_s3_bucket_notification.go index ba03a393754..4e313b6e833 100644 --- a/aws/resource_aws_s3_bucket_notification.go +++ b/aws/resource_aws_s3_bucket_notification.go @@ -304,7 +304,7 @@ func resourceAwsS3BucketNotificationPut(d *schema.ResourceData, meta interface{} notificationConfiguration.TopicConfigurations = topicConfigs } i := &s3.PutBucketNotificationConfigurationInput{ - Bucket: aws.String(bucket), + Bucket: aws.String(bucket), NotificationConfiguration: notificationConfiguration, } @@ -336,7 +336,7 @@ func resourceAwsS3BucketNotificationDelete(d *schema.ResourceData, meta interfac s3conn := meta.(*AWSClient).s3conn i := &s3.PutBucketNotificationConfigurationInput{ - Bucket: aws.String(d.Id()), + Bucket: aws.String(d.Id()), NotificationConfiguration: &s3.NotificationConfiguration{}, } diff --git a/aws/resource_aws_security_group_migrate_test.go b/aws/resource_aws_security_group_migrate_test.go index 3b14edb0e5e..e990ef3e1f1 100644 --- a/aws/resource_aws_security_group_migrate_test.go +++ b/aws/resource_aws_security_group_migrate_test.go @@ -19,7 +19,7 @@ func TestAWSSecurityGroupMigrateState(t *testing.T) { "name": "test", }, Expected: map[string]string{ - "name": "test", + "name": "test", "revoke_rules_on_delete": "false", }, }, diff --git a/aws/resource_aws_service_discovery_service_migrate_test.go b/aws/resource_aws_service_discovery_service_migrate_test.go index 8a36485b451..ddd24a8f46b 100644 --- a/aws/resource_aws_service_discovery_service_migrate_test.go +++ b/aws/resource_aws_service_discovery_service_migrate_test.go @@ -24,7 +24,7 @@ func TestAwsServiceDiscoveryServiceMigrateState(t *testing.T) { "dns_config.0.dns_records.#": "1", "dns_config.0.dns_records.0.ttl": "10", "dns_config.0.dns_records.0.type": "A", - "arn": "arn", + "arn": "arn", }, Expected: map[string]string{ "name": "test-name", @@ -34,7 +34,7 @@ func TestAwsServiceDiscoveryServiceMigrateState(t *testing.T) { "dns_config.0.dns_records.#": "1", "dns_config.0.dns_records.0.ttl": "10", "dns_config.0.dns_records.0.type": "A", - "arn": "arn", + "arn": "arn", }, }, } diff --git a/aws/resource_aws_sns_topic.go b/aws/resource_aws_sns_topic.go index 519aa4698f2..be5d2bfcc8e 100644 --- a/aws/resource_aws_sns_topic.go +++ b/aws/resource_aws_sns_topic.go @@ -27,10 +27,10 @@ var SNSAttributeMap = map[string]string{ "lambda_failure_feedback_role_arn": "LambdaFailureFeedbackRoleArn", "lambda_success_feedback_role_arn": "LambdaSuccessFeedbackRoleArn", "lambda_success_feedback_sample_rate": "LambdaSuccessFeedbackSampleRate", - "policy": "Policy", - "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn", - "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", - "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", + "policy": "Policy", + "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn", + "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", + "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", } func resourceAwsSnsTopic() *schema.Resource { diff --git a/aws/resource_aws_spot_fleet_request.go b/aws/resource_aws_spot_fleet_request.go index d794d09c508..15fcb4c01ed 100644 --- a/aws/resource_aws_spot_fleet_request.go +++ b/aws/resource_aws_spot_fleet_request.go @@ -610,7 +610,7 @@ func resourceAwsSpotFleetRequestCreate(d *schema.ResourceData, meta interface{}) TerminateInstancesWithExpiration: aws.Bool(d.Get("terminate_instances_with_expiration").(bool)), ReplaceUnhealthyInstances: aws.Bool(d.Get("replace_unhealthy_instances").(bool)), InstanceInterruptionBehavior: aws.String(d.Get("instance_interruption_behaviour").(string)), - Type: aws.String(d.Get("fleet_type").(string)), + Type: aws.String(d.Get("fleet_type").(string)), } if v, ok := d.GetOk("excess_capacity_termination_policy"); ok { diff --git a/aws/resource_aws_spot_instance_request.go b/aws/resource_aws_spot_instance_request.go index 5a0dbeabc84..5460b0790cc 100644 --- a/aws/resource_aws_spot_instance_request.go +++ b/aws/resource_aws_spot_instance_request.go @@ -118,8 +118,8 @@ func resourceAwsSpotInstanceRequestCreate(d *schema.ResourceData, meta interface } spotOpts := &ec2.RequestSpotInstancesInput{ - SpotPrice: aws.String(d.Get("spot_price").(string)), - Type: aws.String(d.Get("spot_type").(string)), + SpotPrice: aws.String(d.Get("spot_price").(string)), + Type: aws.String(d.Get("spot_type").(string)), InstanceInterruptionBehavior: aws.String(d.Get("instance_interruption_behaviour").(string)), // Though the AWS API supports creating spot instance requests for multiple diff --git a/aws/resource_aws_ssm_maintenance_window.go b/aws/resource_aws_ssm_maintenance_window.go index a7c939cc747..f9d55e8d039 100644 --- a/aws/resource_aws_ssm_maintenance_window.go +++ b/aws/resource_aws_ssm_maintenance_window.go @@ -55,10 +55,10 @@ func resourceAwsSsmMaintenanceWindowCreate(d *schema.ResourceData, meta interfac ssmconn := meta.(*AWSClient).ssmconn params := &ssm.CreateMaintenanceWindowInput{ - Name: aws.String(d.Get("name").(string)), - Schedule: aws.String(d.Get("schedule").(string)), - Duration: aws.Int64(int64(d.Get("duration").(int))), - Cutoff: aws.Int64(int64(d.Get("cutoff").(int))), + Name: aws.String(d.Get("name").(string)), + Schedule: aws.String(d.Get("schedule").(string)), + Duration: aws.Int64(int64(d.Get("duration").(int))), + Cutoff: aws.Int64(int64(d.Get("cutoff").(int))), AllowUnassociatedTargets: aws.Bool(d.Get("allow_unassociated_targets").(bool)), } diff --git a/aws/resource_aws_ssm_patch_baseline.go b/aws/resource_aws_ssm_patch_baseline.go index c271c84ae40..7183190f2a9 100644 --- a/aws/resource_aws_ssm_patch_baseline.go +++ b/aws/resource_aws_ssm_patch_baseline.go @@ -147,7 +147,7 @@ func resourceAwsSsmPatchBaselineCreate(d *schema.ResourceData, meta interface{}) ssmconn := meta.(*AWSClient).ssmconn params := &ssm.CreatePatchBaselineInput{ - Name: aws.String(d.Get("name").(string)), + Name: aws.String(d.Get("name").(string)), ApprovedPatchesComplianceLevel: aws.String(d.Get("approved_patches_compliance_level").(string)), OperatingSystem: aws.String(d.Get("operating_system").(string)), } diff --git a/aws/resource_aws_swf_domain.go b/aws/resource_aws_swf_domain.go index 5e254496611..8668ec108fd 100644 --- a/aws/resource_aws_swf_domain.go +++ b/aws/resource_aws_swf_domain.go @@ -70,7 +70,7 @@ func resourceAwsSwfDomainCreate(d *schema.ResourceData, meta interface{}) error } input := &swf.RegisterDomainInput{ - Name: aws.String(name), + Name: aws.String(name), WorkflowExecutionRetentionPeriodInDays: aws.String(d.Get("workflow_execution_retention_period_in_days").(string)), } diff --git a/aws/resource_aws_vpc.go b/aws/resource_aws_vpc.go index 73a9defe488..f6f0b4dff7c 100644 --- a/aws/resource_aws_vpc.go +++ b/aws/resource_aws_vpc.go @@ -411,7 +411,7 @@ func resourceAwsVpcUpdate(d *schema.ResourceData, meta interface{}) error { if toAssign { modifyOpts := &ec2.AssociateVpcCidrBlockInput{ - VpcId: &vpcid, + VpcId: &vpcid, AmazonProvidedIpv6CidrBlock: aws.Bool(toAssign), } log.Printf("[INFO] Enabling assign_generated_ipv6_cidr_block vpc attribute for %s: %#v", diff --git a/aws/validators_test.go b/aws/validators_test.go index 3f11fbc8807..6747dc6b71e 100644 --- a/aws/validators_test.go +++ b/aws/validators_test.go @@ -2340,23 +2340,23 @@ func TestValidateCognitoRoleMappingsAmbiguousRoleResolutionAgainstType(t *testin }{ { AmbiguousRoleResolution: nil, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 1, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 1, }, { AmbiguousRoleResolution: "foo", - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, // 0 as it should be defined, the value isn't validated here + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, // 0 as it should be defined, the value isn't validated here }, { AmbiguousRoleResolution: cognitoidentity.AmbiguousRoleResolutionTypeAuthenticatedRole, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, }, { AmbiguousRoleResolution: cognitoidentity.AmbiguousRoleResolutionTypeDeny, - Type: cognitoidentity.RoleMappingTypeToken, - ErrCount: 0, + Type: cognitoidentity.RoleMappingTypeToken, + ErrCount: 0, }, } From 661280db60a62c55d71f351c3680c40031318c55 Mon Sep 17 00:00:00 2001 From: Guimove Date: Tue, 4 Sep 2018 15:41:04 +0200 Subject: [PATCH 041/184] Add arns as an output to data aws_autoscaling_groups and doc --- aws/data_source_aws_autoscaling_groups.go | 38 ++++++++++++++++--- ...data_source_aws_autoscaling_groups_test.go | 1 + .../docs/d/autoscaling_groups.html.markdown | 1 + 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/aws/data_source_aws_autoscaling_groups.go b/aws/data_source_aws_autoscaling_groups.go index 7bc4dc9c350..92468774746 100644 --- a/aws/data_source_aws_autoscaling_groups.go +++ b/aws/data_source_aws_autoscaling_groups.go @@ -21,6 +21,11 @@ func dataSourceAwsAutoscalingGroups() *schema.Resource { Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, }, + "arns": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, "filter": { Type: schema.TypeSet, Optional: true, @@ -49,7 +54,8 @@ func dataSourceAwsAutoscalingGroupsRead(d *schema.ResourceData, meta interface{} log.Printf("[DEBUG] Reading Autoscaling Groups.") d.SetId(time.Now().UTC().String()) - var raw []string + var rawName []string + var rawArn []string var err error tf := d.Get("filter").(*schema.Set) @@ -59,14 +65,31 @@ func dataSourceAwsAutoscalingGroupsRead(d *schema.ResourceData, meta interface{} } err = conn.DescribeTagsPages(input, func(resp *autoscaling.DescribeTagsOutput, lastPage bool) bool { for _, v := range resp.Tags { - raw = append(raw, aws.StringValue(v.ResourceId)) + rawName = append(rawName, aws.StringValue(v.ResourceId)) } return !lastPage }) + + for _, v := range rawName { + input := &autoscaling.DescribeAutoScalingGroupsInput{ + AutoScalingGroupNames: []*string{ + aws.String(v), + }, + } + + err = conn.DescribeAutoScalingGroupsPages(input, func(resp *autoscaling.DescribeAutoScalingGroupsOutput, lastPage bool) bool { + for _, group := range resp.AutoScalingGroups { + rawArn = append(rawArn, aws.StringValue(group.AutoScalingGroupARN)) + } + return !lastPage + }) + } + } else { err = conn.DescribeAutoScalingGroupsPages(&autoscaling.DescribeAutoScalingGroupsInput{}, func(resp *autoscaling.DescribeAutoScalingGroupsOutput, lastPage bool) bool { for _, group := range resp.AutoScalingGroups { - raw = append(raw, aws.StringValue(group.AutoScalingGroupName)) + rawName = append(rawName, aws.StringValue(group.AutoScalingGroupName)) + rawArn = append(rawArn, aws.StringValue(group.AutoScalingGroupARN)) } return !lastPage }) @@ -75,12 +98,17 @@ func dataSourceAwsAutoscalingGroupsRead(d *schema.ResourceData, meta interface{} return fmt.Errorf("Error fetching Autoscaling Groups: %s", err) } - sort.Strings(raw) + sort.Strings(rawName) + sort.Strings(rawArn) - if err := d.Set("names", raw); err != nil { + if err := d.Set("names", rawName); err != nil { return fmt.Errorf("[WARN] Error setting Autoscaling Group Names: %s", err) } + if err := d.Set("arns", rawArn); err != nil { + return fmt.Errorf("[WARN] Error setting Autoscaling Group Arns: %s", err) + } + return nil } diff --git a/aws/data_source_aws_autoscaling_groups_test.go b/aws/data_source_aws_autoscaling_groups_test.go index 67a478c59bf..a6f8c0306ca 100644 --- a/aws/data_source_aws_autoscaling_groups_test.go +++ b/aws/data_source_aws_autoscaling_groups_test.go @@ -25,6 +25,7 @@ func TestAccAWSAutoscalingGroups_basic(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckAwsAutoscalingGroups("data.aws_autoscaling_groups.group_list"), resource.TestCheckResourceAttr("data.aws_autoscaling_groups.group_list", "names.#", "3"), + resource.TestCheckResourceAttr("data.aws_autoscaling_groups.group_list", "arns.#", "3"), ), }, }, diff --git a/website/docs/d/autoscaling_groups.html.markdown b/website/docs/d/autoscaling_groups.html.markdown index 4112a6bd826..f5b4c49c6eb 100644 --- a/website/docs/d/autoscaling_groups.html.markdown +++ b/website/docs/d/autoscaling_groups.html.markdown @@ -51,3 +51,4 @@ resource "aws_autoscaling_notification" "slack_notifications" { In addition to all arguments above, the following attributes are exported: * `names` - A list of the Autoscaling Groups in the current region. +* `arns` - A list of the Autoscaling Groups Arns in the current region. From f6a9f27cdc90ba361e902137fa2a843566c041ba Mon Sep 17 00:00:00 2001 From: Patrick Rainier Juen Date: Tue, 4 Sep 2018 23:04:08 +0800 Subject: [PATCH 042/184] Specify when to use names or IDs in security groups --- website/docs/r/instance.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/instance.html.markdown b/website/docs/r/instance.html.markdown index 9e67eabbebd..21f1be81c59 100644 --- a/website/docs/r/instance.html.markdown +++ b/website/docs/r/instance.html.markdown @@ -77,7 +77,7 @@ instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/Use * `get_password_data` - (Optional) If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. * `monitoring` - (Optional) If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) -* `security_groups` - (Optional, EC2-Classic and default VPC only) A list of security group names or IDs to associate with. +* `security_groups` - (Optional, EC2-Classic and default VPC only) A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. -> **NOTE:** If you are creating Instances in a VPC, use `vpc_security_group_ids` instead. From 7d91d000be6adec7dae72f52e5a31f648c806441 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Tue, 4 Sep 2018 13:35:12 -0400 Subject: [PATCH 043/184] website: Remove Upcoming Events sidebar section Its no longer upcoming. :) Remove the existing event page from the provider as well since it now redirects to its new home: https://www.terraform.io/docs/extend/community/events/2018/summer-gardening.html --- website/aws.erb | 11 ---- .../docs/events/gardening-summer-2018.html.md | 51 ------------------- 2 files changed, 62 deletions(-) delete mode 100644 website/docs/events/gardening-summer-2018.html.md diff --git a/website/aws.erb b/website/aws.erb index c5710e4ddc8..30f400d20b9 100644 --- a/website/aws.erb +++ b/website/aws.erb @@ -10,17 +10,6 @@ AWS Provider - > - Upcoming Community Events - - - > Guides