Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Resource: aws_transfer_tag #27131

Merged
merged 21 commits into from
Oct 7, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
692ebdb
Add transfer tag resoure impl
Oct 6, 2022
1140652
Allow aws prefix tags for transfer tags
Oct 6, 2022
a99a5c2
Add a transfer tag resource doc
Oct 6, 2022
aedf770
Add a transfer tag resource test
Oct 6, 2022
21e8683
Add CHANGELOG entry.
ewbankkit Oct 7, 2022
213facf
Fix importlint 'Imports of different types are not allowed in the sam…
ewbankkit Oct 7, 2022
183d468
'TestAccTransferTag_aws' -> 'TestAccTransferTag_system'.
ewbankkit Oct 7, 2022
27e009b
Cosmetics.
ewbankkit Oct 7, 2022
85d11a2
Correct tagging code generation.
ewbankkit Oct 7, 2022
6044849
Merge branch 'main' into HEAD
ewbankkit Oct 7, 2022
7e1e067
Regenerate Transfer service tagging code.
ewbankkit Oct 7, 2022
4060035
generate/tags: Make output file name configurable.
ewbankkit Oct 7, 2022
5a416d0
generate/tags: Make UpdateTags function name configurable.
ewbankkit Oct 7, 2022
420c348
generate/tags: Make ListTags function name configurable.
ewbankkit Oct 7, 2022
547a1b5
generate/tags: Make GetTag function name configurable.
ewbankkit Oct 7, 2022
4818b4f
Transfer: Generate 'UpdateTagsNoIgnoreSystem'.
ewbankkit Oct 7, 2022
e95fff8
generate/tagresource: Make CreateTags, GetTag and UpdateTags function…
ewbankkit Oct 7, 2022
adb04df
r/aws_transfer_tag: Use 'UpdateTagsNoIgnoreSystem'.
ewbankkit Oct 7, 2022
1863fe7
ec2/generate/createtags: Make CreateTags function name configurable.
ewbankkit Oct 7, 2022
16f419a
ec2/generate/createtags: Use 'ec2iface' package.
ewbankkit Oct 7, 2022
8e62051
r/aws_transfer_tag: Call out usage to manager custom hostname system …
ewbankkit Oct 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -2123,6 +2123,7 @@ func New(_ context.Context) (*schema.Provider, error) {
"aws_transfer_ssh_key": transfer.ResourceSSHKey(),
"aws_transfer_user": transfer.ResourceUser(),
"aws_transfer_workflow": transfer.ResourceWorkflow(),
"aws_transfer_tag": transfer.ResourceTag(),

"aws_waf_byte_match_set": waf.ResourceByteMatchSet(),
"aws_waf_geo_match_set": waf.ResourceGeoMatchSet(),
Expand Down
116 changes: 116 additions & 0 deletions internal/service/transfer/tag_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

71 changes: 71 additions & 0 deletions internal/service/transfer/tag_gen_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

145 changes: 145 additions & 0 deletions internal/service/transfer/tag_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
package transfer_test

import (
"fmt"
"github.com/aws/aws-sdk-go/service/transfer"
tftransfer "github.com/hashicorp/terraform-provider-aws/internal/service/transfer"
"testing"

sdkacctest "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-provider-aws/internal/acctest"
)

func TestAccTransferTag_basic(t *testing.T) {
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_transfer_tag.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ErrorCheck: acctest.ErrorCheck(t, transfer.EndpointsID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckTagDestroy,
Steps: []resource.TestStep{
{
Config: testAccTagConfig_basic(rName, "key1", "value1"),
Check: resource.ComposeTestCheckFunc(
testAccCheckTagExists(resourceName),
resource.TestCheckResourceAttr(resourceName, "key", "key1"),
resource.TestCheckResourceAttr(resourceName, "value", "value1"),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}

func TestAccTransferTag_disappears(t *testing.T) {
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_transfer_tag.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ErrorCheck: acctest.ErrorCheck(t, transfer.EndpointsID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckTagDestroy,
Steps: []resource.TestStep{
{
Config: testAccTagConfig_basic(rName, "key1", "value1"),
Check: resource.ComposeTestCheckFunc(
testAccCheckTagExists(resourceName),
acctest.CheckResourceDisappears(acctest.Provider, tftransfer.ResourceTag(), resourceName),
),
ExpectNonEmptyPlan: true,
},
},
})
}

func TestAccTransferTag_value(t *testing.T) {
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_transfer_tag.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ErrorCheck: acctest.ErrorCheck(t, transfer.EndpointsID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckTagDestroy,
Steps: []resource.TestStep{
{
Config: testAccTagConfig_basic(rName, "key1", "value1"),
Check: resource.ComposeTestCheckFunc(
testAccCheckTagExists(resourceName),
resource.TestCheckResourceAttr(resourceName, "key", "key1"),
resource.TestCheckResourceAttr(resourceName, "value", "value1"),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccTagConfig_basic(rName, "key1", "value1updated"),
Check: resource.ComposeTestCheckFunc(
testAccCheckTagExists(resourceName),
resource.TestCheckResourceAttr(resourceName, "key", "key1"),
resource.TestCheckResourceAttr(resourceName, "value", "value1updated"),
),
},
},
})
}

func TestAccTransferTag_aws(t *testing.T) {
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_transfer_tag.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ErrorCheck: acctest.ErrorCheck(t, transfer.EndpointsID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckTagDestroy,
Steps: []resource.TestStep{
{
Config: testAccTagConfig_basic(rName, "aws:transfer:customHostname", "abc.example.com"),
Check: resource.ComposeTestCheckFunc(
testAccCheckTagExists(resourceName),
resource.TestCheckResourceAttr(resourceName, "key", "aws:transfer:customHostname"),
resource.TestCheckResourceAttr(resourceName, "value", "abc.example.com"),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}

func testAccTagConfig_basic(rName string, key string, value string) string {
return fmt.Sprintf(`
resource "aws_transfer_server" "test" {
identity_provider_type = "SERVICE_MANAGED"

tags = {
Name = %[1]q
}

lifecycle {
ignore_changes = [tags]
}
}

resource "aws_transfer_tag" "test" {
resource_arn = aws_transfer_server.test.arn
key = %[2]q
value = %[3]q
}
`, rName, key, value)
}
27 changes: 25 additions & 2 deletions internal/service/transfer/tags_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading