Skip to content

Commit

Permalink
Merge branch 'main' into HEAD
Browse files Browse the repository at this point in the history
# Conflicts:
#	internal/service/ec2/exports_test.go
#	internal/service/ec2/service_package_gen.go
#	internal/service/ec2/transitgateway_default_route_table_association_test.go
  • Loading branch information
ewbankkit committed Sep 27, 2024
2 parents 9adf423 + 465d069 commit 553717e
Show file tree
Hide file tree
Showing 77 changed files with 2,313 additions and 1,097 deletions.
3 changes: 3 additions & 0 deletions .changelog/39511.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-resource
aws_securityhub_standards_control_association
```
3 changes: 3 additions & 0 deletions .changelog/39519.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_ec2_transit_gateway_vpc_attachment: Remove default value for `security_group_referencing_support` argument and mark as Computed. This suppresses the diffs shown for resources created with v5.68.0 (or earlier)
```
11 changes: 11 additions & 0 deletions .ci/.semgrep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -659,3 +659,14 @@ rules:
$DIAGS = sdkdiag.AppendErrorf($DIAGS, ...)
}
severity: ERROR

- id: avoid-errs-Must
languages: [go]
message: Avoid use of `errs.Must()` in service packages, handle errors explicitly instead.
paths:
include:
- internal/service
patterns:
- pattern-either:
- pattern: errs.Must(...)
severity: WARNING
4 changes: 4 additions & 0 deletions .github/workflows/provider.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,10 @@ jobs:
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
with:
go-version-file: go.mod
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd
with:
terraform_version: ${{ env.TERRAFORM_VERSION }}
terraform_wrapper: false
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
continue-on-error: true
timeout-minutes: 2
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/resource-counts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ jobs:
installation_retrieval_payload: ${{ secrets.INSTALLATION_ID }}
private_key: ${{secrets.APP_PEM }}
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd
with:
terraform_version: ${{ env.TERRAFORM_VERSION }}
terraform_wrapper: false
- run: |
touch main.tf
cat << EOF > main.tf
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
## 5.70.0 (Unreleased)

FEATURES:

* **New Resource:** `aws_securityhub_standards_control_association` ([#39511](https://github.com/hashicorp/terraform-provider-aws/issues/39511))

BUG FIXES:

* resource/aws_ec2_transit_gateway_vpc_attachment: Remove default value for `security_group_referencing_support` argument and mark as Computed. This suppresses the diffs shown for resources created with v5.68.0 (or earlier) ([#39519](https://github.com/hashicorp/terraform-provider-aws/issues/39519))

## 5.69.0 (September 26, 2024)

NOTES:
Expand Down
14 changes: 14 additions & 0 deletions META.d/_summary.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

---
schema: 1.1

partition: tf-ecosystem

summary:
owner: team-terraform-aws
description: |
The Terraform AWS provider is a plugin that enables Terraform to manage AWS resources.
visibility: external
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1
github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1
github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1
github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2
github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.0
github.com/aws/aws-sdk-go-v2/service/chime v1.33.2
github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2
github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2
Expand Down Expand Up @@ -130,7 +130,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2
github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2
github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.3
github.com/aws/aws-sdk-go-v2/service/iam v1.36.2
github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2
github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2
Expand All @@ -151,7 +151,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2
github.com/aws/aws-sdk-go-v2/service/kms v1.36.2
github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2
github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2
github.com/aws/aws-sdk-go-v2/service/lambda v1.62.0
github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2
github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2
github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2
Expand Down Expand Up @@ -179,12 +179,12 @@ require (
github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2
github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2
github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2
github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2
github.com/aws/aws-sdk-go-v2/service/organizations v1.33.0
github.com/aws/aws-sdk-go-v2/service/osis v1.13.2
github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2
github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2
github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.3
github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2
github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1
github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2
Expand Down Expand Up @@ -215,7 +215,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2
github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2
github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.161.0
github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2
github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2
Expand Down
24 changes: 12 additions & 12 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1 h1:JaVwiVoqBMT7939WM8R
github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1/go.mod h1:TWgiTaFOEPO4WmONX+kASPCHobxtLGPjQyT80mPOvSE=
github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1 h1:2ccATKKXh7llmUNifz2hcLh3Dcv8rRnCJh/72HCVsSU=
github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1/go.mod h1:VPYBTW5go5v/QIeXzhkv51xoj5pRpIIlWe8NCdHFfbA=
github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2 h1:qOY3VrapFxZtmIwvFNUCh/qStdhfCYlkD0VA+FBPBTc=
github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0=
github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.0 h1:kwekk3YK5W+q1AAmzu01t3hfbDQJCcLNzHzmsN83u18=
github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.0/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0=
github.com/aws/aws-sdk-go-v2/service/chime v1.33.2 h1:n+gJuylm+jrTpGgjDvTzgsBw0eBuRRidjjkGg//W7Ls=
github.com/aws/aws-sdk-go-v2/service/chime v1.33.2/go.mod h1:xyUd00h8t5+bu5qN+XDjeA2U5O2sWSH69lphLQWNCec=
github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2 h1:/1EDqoxB9eGFjir37+1w0H5Y0tCSUZwY9dtPEYK+/Yc=
Expand Down Expand Up @@ -272,8 +272,8 @@ github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2 h1:VGsu3h9F4fHrtcJ4cp
github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2/go.mod h1:sKC0TSEPMD0JJq8lg49fCdlZIk7z0VZ+hHGDZOUPmpM=
github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2 h1:F7iPMAIiEX5xqUEhbeflkREaforxmuIkobZi9apGFKc=
github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2/go.mod h1:yL5DOvh8huFx2ZwB9kj20TnZ5DQJjnoCYUkFitas/2k=
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2 h1:yL7d23FePZ/Q3gjFa0x0P07YAIBQ/O9nwli/WV+2w4I=
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU=
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.3 h1:8Bt9xTKPLOGVizXsPH7uPEnJs+miPWguYwlVdg87I3E=
github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.3/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU=
github.com/aws/aws-sdk-go-v2/service/iam v1.36.2 h1:2/kSYD8hfRU/q1HbgSzZ4PGiDmzDwtPSYgJq4yxF6bs=
github.com/aws/aws-sdk-go-v2/service/iam v1.36.2/go.mod h1:HSvujsK8xeEHMIB18oMXjSfqaN9cVqpo/MtHJIksQRk=
github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2 h1:U+HNs6NYHwbsqaMPBYpZAQQMBB5RCPIChjm60fKQVyQ=
Expand Down Expand Up @@ -324,8 +324,8 @@ github.com/aws/aws-sdk-go-v2/service/kms v1.36.2 h1:yERi4A+3+9emx/NKSQ5bf0QP7DHC
github.com/aws/aws-sdk-go-v2/service/kms v1.36.2/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw=
github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2 h1:idwxi3c6nSjYsD65NGBY1oYx1bezjowlSfx3ixFX64Y=
github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2/go.mod h1:0A67Mdmp1aQZp74Ef/AoUW11YyNiIxgf8kjjL9JZMxI=
github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2 h1:hJbK0NTh25Z0yOHLKDEdOujHVARc/ukwjntA0t4D08g=
github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4=
github.com/aws/aws-sdk-go-v2/service/lambda v1.62.0 h1:k0f2zx3Rt8Hw0iIXMyZN6Y/JCboKKiL6oSHPbVB0rIw=
github.com/aws/aws-sdk-go-v2/service/lambda v1.62.0/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4=
github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2 h1:RGnAqxAqh2IfZiqcrY/25VmUP2mPpmRjrKvfSmaJTFo=
github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2/go.mod h1:6I30IIJw5mOeuza9tDHzUEya7ODqKobjjipcLYViouE=
github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2 h1:XgjR5ig4MbjE/l7nQ3s9LS+Pt+c9k760zpx7i3VIYFQ=
Expand Down Expand Up @@ -380,8 +380,8 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2 h1:6q/FDvTM6ZC
github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2/go.mod h1:M/OcO7L+Tt27Wu1fRXg6X4+G6A07hO46at2ccDz2X14=
github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2 h1:1zRamHQ7hfPIfmZtdfN4l4kfp+GrfpJAx0n6nJNaU1g=
github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2/go.mod h1:HJF0MWNUeYaVK+SzLzc8E5BqG6fyTt54U4uGJxcu82E=
github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2 h1:LlDQgX7E8WcCXvj3XhsGWN1k8Tk/ue50inRwl6hb+pA=
github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE=
github.com/aws/aws-sdk-go-v2/service/organizations v1.33.0 h1:HlfT+pacquWfL4XA7xtkUA/cG4/a4Lr4KV6BH274bP0=
github.com/aws/aws-sdk-go-v2/service/organizations v1.33.0/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE=
github.com/aws/aws-sdk-go-v2/service/osis v1.13.2 h1:htLiJ788TpbN8XQCDv1Thoe3C1brYBmJtr9+CL1vvak=
github.com/aws/aws-sdk-go-v2/service/osis v1.13.2/go.mod h1:lpZ4HxPlhauL7SxovvOlpxj+cIlbaEexFKm6GP16YTo=
github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2 h1:SJsQ0CBDPwB58MzlmI5Qy2OuXEGPWumP4y913BbpKq4=
Expand All @@ -390,8 +390,8 @@ github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2 h1:koQXYsERw2cB
github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2/go.mod h1:DbO3yFGCDeGNnLFlDMgPFvvwVG7ekRneHT5m+0HxI4Q=
github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2 h1:fQ6DXgpPXJp7HR5K9R9MxTomrthb/49DdUMpmZhtIUc=
github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2/go.mod h1:ZMKcOV2h86s8j4fLQGV6WscIW95EtpfIAhCWMFaqnTw=
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2 h1:LyZBbTjD2WVXiPcSsIR/pxqKbpWIkb+YnczvgMyk+/k=
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o=
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.3 h1:gP9GOlqNsOYGsx27IG6e+PQAvO0OEEM2eYaBQ7VyT9c=
github.com/aws/aws-sdk-go-v2/service/pcs v1.1.3/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o=
github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2 h1:AFCcfy2Mk6hK1UODe2aVIxD1JGt8pbcow+vZgfUlmaY=
github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2/go.mod h1:CTzMrAJyOLQjgth3ouRlrxEU8sMx4eUcr8zxRWHvGkI=
github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1 h1:hrFftUIT4BUnVMXEsBKR5ivFFNnaSbw17WBJdGv5i9c=
Expand Down Expand Up @@ -452,8 +452,8 @@ github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2 h1:tanWyz4jhBm+vPoimi6Xpc
github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2/go.mod h1:OnvclTFylYBzFuko7L/GofARC4xh85D359PjECSqKZM=
github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2 h1:OFL1HOnkQGnP8BidIRI+4W/Oe59BypqzoKOprs6+8gM=
github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2/go.mod h1:CRuJDz7FTzEH9rdt/7p6Eu/6sRNV9KgdgdNmYgeXLFo=
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1 h1:AH1OcmkqJP7J5cE9XJ/Ik988JKoSuCisiH7omM3LH7w=
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA=
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.161.0 h1:NI7arsZkIOAEVqyfE/FpY9Em7vv5gqZgf6/BOyy22Qw=
github.com/aws/aws-sdk-go-v2/service/sagemaker v1.161.0/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA=
github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2 h1:Cu6CJ3Sm0IhVZ87OkKgLkUwcwIWaNT8CSzDr7kCFi/g=
github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2/go.mod h1:FZ4JyKgu7dldYPXGLkq6lPrFN3ySvRA+M22Awt0Gce0=
github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2 h1:J55Tuvzv6Bevd0yMvNXLMSmljIibEuEL4YKf0N2C2Pg=
Expand Down
51 changes: 51 additions & 0 deletions internal/acctest/plancheck/base.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package plancheck

import (
"fmt"

tfjson "github.com/hashicorp/terraform-json"
"github.com/hashicorp/terraform-plugin-testing/plancheck"
)

type Base struct {
resourceAddress string
}

func NewBase(resourceAddress string) Base {
return Base{
resourceAddress: resourceAddress,
}
}

func (b Base) ResourceFromState(req plancheck.CheckPlanRequest, resp *plancheck.CheckPlanResponse) (*tfjson.ResourceChange, bool) {
var resource *tfjson.ResourceChange

if req.Plan == nil {
resp.Error = fmt.Errorf("plan is nil")

return nil, false
}

for _, r := range req.Plan.ResourceChanges {
if b.resourceAddress == r.Address {
resource = r

break
}
}

if resource == nil {
resp.Error = fmt.Errorf("%s - Resource not found in plan", b.resourceAddress)

return nil, false
}

return resource, true
}

func (b Base) ResourceAddress() string {
return b.resourceAddress
}
61 changes: 61 additions & 0 deletions internal/acctest/plancheck/expect_known_value_change.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package plancheck

import (
"context"
"fmt"

"github.com/hashicorp/terraform-plugin-testing/knownvalue"
"github.com/hashicorp/terraform-plugin-testing/plancheck"
"github.com/hashicorp/terraform-plugin-testing/tfjsonpath"
)

type expectKnownValueChangeCheck struct {
base Base
attributePath tfjsonpath.Path
oldValue, newValue knownvalue.Check
}

func (e expectKnownValueChangeCheck) CheckPlan(ctx context.Context, request plancheck.CheckPlanRequest, response *plancheck.CheckPlanResponse) {
resource, ok := e.base.ResourceFromState(request, response)
if !ok {
return
}

old, err := tfjsonpath.Traverse(resource.Change.Before, e.attributePath)
if err != nil {
response.Error = err

return
}

if err := e.oldValue.CheckValue(old); err != nil {
response.Error = fmt.Errorf("checking old value for attribute at path: %s.%s, err: %s", resource.Address, e.attributePath.String(), err)

return
}

new, err := tfjsonpath.Traverse(resource.Change.After, e.attributePath)
if err != nil {
response.Error = err

return
}

if err := e.newValue.CheckValue(new); err != nil {
response.Error = fmt.Errorf("checking new value for attribute at path: %s.%s, err: %s", resource.Address, e.attributePath.String(), err)

return
}
}

func ExpectKnownValueChange(resourceAddress string, attributePath tfjsonpath.Path, oldValue, newValue knownvalue.Check) plancheck.PlanCheck {
return expectKnownValueChangeCheck{
base: NewBase(resourceAddress),
attributePath: attributePath,
oldValue: oldValue,
newValue: newValue,
}
}
37 changes: 37 additions & 0 deletions internal/acctest/statecheck/expect_no_value.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package statecheck

import (
"context"
"fmt"

"github.com/hashicorp/terraform-plugin-testing/statecheck"
"github.com/hashicorp/terraform-plugin-testing/tfjsonpath"
)

type expectNoValueCheck struct {
base Base
attributePath tfjsonpath.Path
}

func (e expectNoValueCheck) CheckState(ctx context.Context, request statecheck.CheckStateRequest, response *statecheck.CheckStateResponse) {
resource, ok := e.base.ResourceFromState(request, response)
if !ok {
return
}

if _, err := tfjsonpath.Traverse(resource.AttributeValues, e.attributePath); err == nil {
response.Error = fmt.Errorf("value for attribute at path: %s.%s exists", resource.Address, e.attributePath.String())

return
}
}

func ExpectNoValue(resourceAddress string, attributePath tfjsonpath.Path) statecheck.StateCheck {
return expectNoValueCheck{
base: NewBase(resourceAddress),
attributePath: attributePath,
}
}
7 changes: 5 additions & 2 deletions internal/service/account/region.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-provider-aws/internal/conns"
"github.com/hashicorp/terraform-provider-aws/internal/enum"
"github.com/hashicorp/terraform-provider-aws/internal/errs"
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
"github.com/hashicorp/terraform-provider-aws/internal/flex"
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
Expand Down Expand Up @@ -74,11 +73,15 @@ func resourceRegionUpdate(ctx context.Context, d *schema.ResourceData, meta inte
conn := meta.(*conns.AWSClient).AccountClient(ctx)

var id string
var err error
region := d.Get("region_name").(string)
accountID := ""
if v, ok := d.GetOk(names.AttrAccountID); ok {
accountID = v.(string)
id = errs.Must(flex.FlattenResourceId([]string{accountID, region}, regionResourceIDPartCount, false))
id, err = flex.FlattenResourceId([]string{accountID, region}, regionResourceIDPartCount, false)
if err != nil {
return sdkdiag.AppendFromErr(diags, err)
}
} else {
id = region
}
Expand Down
10 changes: 6 additions & 4 deletions internal/service/acmpca/permission.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,11 @@ func resourcePermissionCreate(ctx context.Context, d *schema.ResourceData, meta
caARN := d.Get("certificate_authority_arn").(string)
principal := d.Get(names.AttrPrincipal).(string)
sourceAccount := d.Get("source_account").(string)
id := errs.Must(flex.FlattenResourceId([]string{caARN, principal, sourceAccount}, permissionResourceIDPartCount, true))
id, err := flex.FlattenResourceId([]string{caARN, principal, sourceAccount}, permissionResourceIDPartCount, true)
if err != nil {
return sdkdiag.AppendFromErr(diags, err)
}

input := &acmpca.CreatePermissionInput{
Actions: expandPermissionActions(d.Get(names.AttrActions).(*schema.Set)),
CertificateAuthorityArn: aws.String(caARN),
Expand All @@ -92,9 +96,7 @@ func resourcePermissionCreate(ctx context.Context, d *schema.ResourceData, meta
input.SourceAccount = aws.String(sourceAccount)
}

_, err := conn.CreatePermission(ctx, input)

if err != nil {
if _, err := conn.CreatePermission(ctx, input); err != nil {
return sdkdiag.AppendErrorf(diags, "creating ACM PCA Permission (%s): %s", id, err)
}

Expand Down
Loading

0 comments on commit 553717e

Please sign in to comment.