diff --git a/.ci/semgrep/acctest/checks/arn.yml b/.ci/semgrep/acctest/checks/arn.yml index 948d1bb5071..2ae7c18e36c 100644 --- a/.ci/semgrep/acctest/checks/arn.yml +++ b/.ci/semgrep/acctest/checks/arn.yml @@ -7,7 +7,6 @@ rules: - "internal/service/controltower" - "internal/service/networkmanager" - "internal/service/networkmonitor" - - "internal/service/oam" - "internal/service/organizations" - "internal/service/pinpoint" - "internal/service/redshift" diff --git a/internal/service/oam/link_data_source_test.go b/internal/service/oam/link_data_source_test.go index 4346de38d91..ad5c4c8b0ea 100644 --- a/internal/service/oam/link_data_source_test.go +++ b/internal/service/oam/link_data_source_test.go @@ -7,7 +7,6 @@ import ( "fmt" "testing" - "github.com/YakDriver/regexache" sdkacctest "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-provider-aws/internal/acctest" @@ -22,6 +21,7 @@ func testAccObservabilityAccessManagerLinkDataSource_basic(t *testing.T) { ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) dataSourceName := "data.aws_oam_link.test" + resourceName := "aws_oam_link.test" resource.Test(t, resource.TestCase{ PreCheck: func() { @@ -36,13 +36,13 @@ func testAccObservabilityAccessManagerLinkDataSource_basic(t *testing.T) { { Config: testAccLinkDataSourceConfig_basic(rName), Check: resource.ComposeTestCheckFunc( - acctest.MatchResourceAttrRegionalARN(ctx, dataSourceName, names.AttrARN, "oam", regexache.MustCompile(`link/.+$`)), - resource.TestCheckResourceAttrSet(dataSourceName, "label"), - resource.TestCheckResourceAttr(dataSourceName, "label_template", "$AccountName"), - resource.TestCheckResourceAttrSet(dataSourceName, "link_id"), + resource.TestCheckResourceAttrPair(dataSourceName, names.AttrARN, resourceName, names.AttrARN), + resource.TestCheckResourceAttrPair(dataSourceName, "label", resourceName, "label"), + resource.TestCheckResourceAttrPair(dataSourceName, "label_template", resourceName, "label_template"), + resource.TestCheckResourceAttrPair(dataSourceName, "link_id", resourceName, "link_id"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.0", "AWS::CloudWatch::Metric"), - resource.TestCheckResourceAttrSet(dataSourceName, "sink_arn"), + resource.TestCheckResourceAttrPair(dataSourceName, "sink_arn", resourceName, "sink_arn"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsPercent, "1"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsKey1, acctest.CtValue1), ), @@ -59,6 +59,7 @@ func testAccObservabilityAccessManagerLinkDataSource_logGroupConfiguration(t *te ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) dataSourceName := "data.aws_oam_link.test" + resourceName := "aws_oam_link.test" filter := "LogGroupName LIKE 'aws/lambda/%' OR LogGroupName LIKE 'AWSLogs%'" resource.Test(t, resource.TestCase{ @@ -74,17 +75,17 @@ func testAccObservabilityAccessManagerLinkDataSource_logGroupConfiguration(t *te { Config: testAccLinkDataSourceConfig_logGroupConfiguration(rName, filter), Check: resource.ComposeTestCheckFunc( - acctest.MatchResourceAttrRegionalARN(ctx, dataSourceName, names.AttrARN, "oam", regexache.MustCompile(`link/.+$`)), - resource.TestCheckResourceAttrSet(dataSourceName, "label"), + resource.TestCheckResourceAttrPair(dataSourceName, names.AttrARN, resourceName, names.AttrARN), + resource.TestCheckResourceAttrPair(dataSourceName, "label", resourceName, "label"), resource.TestCheckResourceAttr(dataSourceName, "label_template", "$AccountName"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.log_group_configuration.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.log_group_configuration.0.filter", filter), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.metric_configuration.#", "0"), - resource.TestCheckResourceAttrSet(dataSourceName, "link_id"), + resource.TestCheckResourceAttrPair(dataSourceName, "link_id", resourceName, "link_id"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.0", "AWS::Logs::LogGroup"), - resource.TestCheckResourceAttrSet(dataSourceName, "sink_arn"), + resource.TestCheckResourceAttrPair(dataSourceName, "sink_arn", resourceName, "sink_arn"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsPercent, "1"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsKey1, acctest.CtValue1), ), @@ -101,6 +102,7 @@ func testAccObservabilityAccessManagerLinkDataSource_metricConfiguration(t *test ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) dataSourceName := "data.aws_oam_link.test" + resourceName := "aws_oam_link.test" filter := "Namespace IN ('AWS/EC2', 'AWS/ELB', 'AWS/S3')" resource.Test(t, resource.TestCase{ @@ -116,17 +118,17 @@ func testAccObservabilityAccessManagerLinkDataSource_metricConfiguration(t *test { Config: testAccLinkDataSourceConfig_metricConfiguration(rName, filter), Check: resource.ComposeTestCheckFunc( - acctest.MatchResourceAttrRegionalARN(ctx, dataSourceName, names.AttrARN, "oam", regexache.MustCompile(`link/.+$`)), - resource.TestCheckResourceAttrSet(dataSourceName, "label"), + resource.TestCheckResourceAttrPair(dataSourceName, names.AttrARN, resourceName, names.AttrARN), + resource.TestCheckResourceAttrPair(dataSourceName, "label", resourceName, "label"), resource.TestCheckResourceAttr(dataSourceName, "label_template", "$AccountName"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.log_group_configuration.#", "0"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.metric_configuration.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "link_configuration.0.metric_configuration.0.filter", filter), - resource.TestCheckResourceAttrSet(dataSourceName, "link_id"), + resource.TestCheckResourceAttrPair(dataSourceName, "link_id", resourceName, "link_id"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.#", "1"), resource.TestCheckResourceAttr(dataSourceName, "resource_types.0", "AWS::CloudWatch::Metric"), - resource.TestCheckResourceAttrSet(dataSourceName, "sink_arn"), + resource.TestCheckResourceAttrPair(dataSourceName, "sink_arn", resourceName, "sink_arn"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsPercent, "1"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsKey1, acctest.CtValue1), ), @@ -158,7 +160,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -182,15 +184,19 @@ resource "aws_oam_sink_policy" "test" { resource "aws_oam_link" "test" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { key1 = "value1" } + + depends_on = [ + aws_oam_sink_policy.test + ] } data aws_oam_link "test" { - link_identifier = aws_oam_link.test.id + link_identifier = aws_oam_link.test.arn } `, rName)) } @@ -218,7 +224,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -247,15 +253,19 @@ resource "aws_oam_link" "test" { } } resource_types = ["AWS::Logs::LogGroup"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { key1 = "value1" } + + depends_on = [ + aws_oam_sink_policy.test + ] } data aws_oam_link "test" { - link_identifier = aws_oam_link.test.id + link_identifier = aws_oam_link.test.arn } `, rName, filter)) } @@ -283,7 +293,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -312,15 +322,19 @@ resource "aws_oam_link" "test" { } } resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { key1 = "value1" } + + depends_on = [ + aws_oam_sink_policy.test + ] } data aws_oam_link "test" { - link_identifier = aws_oam_link.test.id + link_identifier = aws_oam_link.test.arn } `, rName, filter)) } diff --git a/internal/service/oam/link_test.go b/internal/service/oam/link_test.go index 22dbd304e97..0d0fff0f8d6 100644 --- a/internal/service/oam/link_test.go +++ b/internal/service/oam/link_test.go @@ -48,7 +48,7 @@ func testAccObservabilityAccessManagerLink_basic(t *testing.T) { Config: testAccLinkConfig_basic(rName), Check: resource.ComposeTestCheckFunc( testAccCheckLinkExists(ctx, resourceName, &link), - acctest.MatchResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "oam", regexache.MustCompile(`link/.+$`)), + acctest.CheckResourceAttrRegionalARNFormat(ctx, resourceName, names.AttrARN, "oam", "link/{link_id}"), resource.TestCheckResourceAttrSet(resourceName, "label"), resource.TestCheckResourceAttr(resourceName, "label_template", "$AccountName"), resource.TestCheckResourceAttrSet(resourceName, "link_id"), @@ -396,7 +396,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -420,7 +420,11 @@ resource "aws_oam_sink_policy" "test" { resource "aws_oam_link" "test" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName)) } @@ -448,7 +452,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -472,7 +476,11 @@ resource "aws_oam_sink_policy" "test" { resource "aws_oam_link" "test" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric", "AWS::Logs::LogGroup"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName)) } @@ -500,7 +508,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -524,10 +532,14 @@ resource "aws_oam_sink_policy" "test" { resource "aws_oam_link" "test" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { %[2]q = %[3]q } + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName, tag1Key, tag1Value)) } @@ -555,7 +567,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -579,12 +591,16 @@ resource "aws_oam_sink_policy" "test" { resource "aws_oam_link" "test" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { %[2]q = %[3]q %[4]q = %[5]q } + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName, tag1Key, tag1Value, tag2Key, tag2Value)) } @@ -612,7 +628,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -641,7 +657,11 @@ resource "aws_oam_link" "test" { } } resource_types = ["AWS::Logs::LogGroup"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName, filter)) } @@ -669,7 +689,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -698,7 +718,11 @@ resource "aws_oam_link" "test" { } } resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn + + depends_on = [ + aws_oam_sink_policy.test + ] } `, rName, filter)) } diff --git a/internal/service/oam/links_data_source_test.go b/internal/service/oam/links_data_source_test.go index 8743c65b441..ff3bc6e63b0 100644 --- a/internal/service/oam/links_data_source_test.go +++ b/internal/service/oam/links_data_source_test.go @@ -67,7 +67,7 @@ resource "aws_oam_sink" "test" { resource "aws_oam_sink_policy" "test" { provider = "awsalternate" - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -89,15 +89,17 @@ resource "aws_oam_sink_policy" "test" { } resource "aws_oam_link" "test" { - depends_on = [aws_oam_sink_policy.test] - label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn tags = { key1 = "value1" } + + depends_on = [ + aws_oam_sink_policy.test + ] } data aws_oam_links "test" { diff --git a/internal/service/oam/sink_data_source_test.go b/internal/service/oam/sink_data_source_test.go index 6d0e96a24c4..34fd236ab77 100644 --- a/internal/service/oam/sink_data_source_test.go +++ b/internal/service/oam/sink_data_source_test.go @@ -7,7 +7,6 @@ import ( "fmt" "testing" - "github.com/YakDriver/regexache" "github.com/aws/aws-sdk-go-v2/service/oam" sdkacctest "github.com/hashicorp/terraform-plugin-testing/helper/acctest" "github.com/hashicorp/terraform-plugin-testing/helper/resource" @@ -23,6 +22,7 @@ func testAccObservabilityAccessManagerSinkDataSource_basic(t *testing.T) { var sink oam.GetSinkOutput rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) dataSourceName := "data.aws_oam_sink.test" + resourceName := "aws_oam_sink.test" resource.Test(t, resource.TestCase{ PreCheck: func() { @@ -38,13 +38,12 @@ func testAccObservabilityAccessManagerSinkDataSource_basic(t *testing.T) { Config: testAccSinkDataSourceConfig_basic(rName), Check: resource.ComposeTestCheckFunc( testAccCheckSinkExists(ctx, dataSourceName, &sink), - resource.TestCheckResourceAttrSet(dataSourceName, names.AttrARN), - resource.TestCheckResourceAttr(dataSourceName, names.AttrName, rName), - resource.TestCheckResourceAttrSet(dataSourceName, "sink_id"), - resource.TestCheckResourceAttrSet(dataSourceName, "sink_identifier"), + resource.TestCheckResourceAttrPair(dataSourceName, names.AttrARN, resourceName, names.AttrARN), + resource.TestCheckResourceAttrPair(dataSourceName, names.AttrName, resourceName, names.AttrName), + resource.TestCheckResourceAttrPair(dataSourceName, "sink_id", resourceName, "sink_id"), + resource.TestCheckResourceAttrPair(dataSourceName, "sink_identifier", resourceName, names.AttrARN), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsPercent, "1"), resource.TestCheckResourceAttr(dataSourceName, acctest.CtTagsKey1, acctest.CtValue1), - acctest.MatchResourceAttrRegionalARN(ctx, dataSourceName, names.AttrARN, "oam", regexache.MustCompile(`sink/.+$`)), ), }, }, diff --git a/internal/service/oam/sink_policy_test.go b/internal/service/oam/sink_policy_test.go index 912f6ec26cd..62afd744d8f 100644 --- a/internal/service/oam/sink_policy_test.go +++ b/internal/service/oam/sink_policy_test.go @@ -47,7 +47,7 @@ func testAccObservabilityAccessManagerSinkPolicy_basic(t *testing.T) { Config: testAccSinkPolicyConfigBasic(rName), Check: resource.ComposeTestCheckFunc( testAccCheckSinkPolicyExists(ctx, resourceName, &sinkPolicy), - acctest.MatchResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "oam", regexache.MustCompile(`sink/.+$`)), + resource.TestCheckResourceAttrPair(resourceName, names.AttrARN, "aws_oam_sink.test", names.AttrARN), resource.TestCheckResourceAttrWith(resourceName, names.AttrPolicy, func(value string) error { _, err := awspolicy.PoliciesAreEquivalent(value, fmt.Sprintf(` { @@ -233,7 +233,7 @@ resource "aws_oam_sink" "test" { } resource "aws_oam_sink_policy" "test" { - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -266,7 +266,7 @@ resource "aws_oam_sink" "test" { } resource "aws_oam_sink_policy" "test" { - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.test.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ diff --git a/internal/service/oam/sink_test.go b/internal/service/oam/sink_test.go index bda5ee25e68..addb5aecdd4 100644 --- a/internal/service/oam/sink_test.go +++ b/internal/service/oam/sink_test.go @@ -9,7 +9,6 @@ import ( "fmt" "testing" - "github.com/YakDriver/regexache" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/oam" "github.com/aws/aws-sdk-go-v2/service/oam/types" @@ -47,7 +46,8 @@ func testAccObservabilityAccessManagerSink_basic(t *testing.T) { Config: testAccSinkConfigBasic(rName), Check: resource.ComposeTestCheckFunc( testAccCheckSinkExists(ctx, resourceName, &sink), - acctest.MatchResourceAttrRegionalARN(ctx, resourceName, names.AttrARN, "oam", regexache.MustCompile(`sink/.+$`)), + acctest.CheckResourceAttrRegionalARNFormat(ctx, resourceName, names.AttrARN, "oam", "sink/{sink_id}"), + resource.TestCheckResourceAttrPair(resourceName, names.AttrID, resourceName, names.AttrARN), resource.TestCheckResourceAttr(resourceName, names.AttrName, rName), resource.TestCheckResourceAttrSet(resourceName, "sink_id"), resource.TestCheckResourceAttr(resourceName, acctest.CtTagsPercent, "0"), diff --git a/website/docs/d/oam_link.html.markdown b/website/docs/d/oam_link.html.markdown index 2c197ba6162..c7f3bc327e8 100644 --- a/website/docs/d/oam_link.html.markdown +++ b/website/docs/d/oam_link.html.markdown @@ -31,7 +31,7 @@ The following arguments are required: This data source exports the following attributes in addition to the arguments above: * `arn` - ARN of the link. -* `id` - ARN of the link. +* `id` - ARN of the link. Use `arn` instead. * `label` - Label that is assigned to this link. * `label_template` - Human-readable name used to identify this source account when you are viewing data from it in the monitoring account. * `link_configuration` - Configuration for creating filters that specify that only some metric namespaces or log groups are to be shared from the source account to the monitoring account. See [`link_configuration` Block](#link_configuration-block) for details. diff --git a/website/docs/d/oam_sink.html.markdown b/website/docs/d/oam_sink.html.markdown index c42cdc5c276..d6e0c87a5d0 100644 --- a/website/docs/d/oam_sink.html.markdown +++ b/website/docs/d/oam_sink.html.markdown @@ -31,7 +31,7 @@ The following arguments are required: This data source exports the following attributes in addition to the arguments above: * `arn` - ARN of the sink. -* `id` - ARN of the sink. +* `id` - ARN of the sink. Use `arn` instead. * `name` - Name of the sink. * `sink_id` - Random ID string that AWS generated as part of the sink ARN. * `tags` - Tags assigned to the sink. diff --git a/website/docs/r/oam_link.html.markdown b/website/docs/r/oam_link.html.markdown index 298aef9caf1..8924da8c387 100644 --- a/website/docs/r/oam_link.html.markdown +++ b/website/docs/r/oam_link.html.markdown @@ -10,6 +10,8 @@ description: |- Terraform resource for managing an AWS CloudWatch Observability Access Manager Link. +~> **NOTE:** Creating an `aws_oam_link` may sometimes fail if the `aws_oam_sink_policy` for the attached `aws_oam_sink` is not created before the `aws_oam_link`. To prevent this, declare an explicit dependency using a [`depends_on`](https://developer.hashicorp.com/terraform/language/meta-arguments/depends_on) meta-argument. + ## Example Usage ### Basic Usage @@ -18,10 +20,23 @@ Terraform resource for managing an AWS CloudWatch Observability Access Manager L resource "aws_oam_link" "example" { label_template = "$AccountName" resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.example.arn tags = { Env = "prod" } + + depends_on = [ + aws_oam_sink_policy.example + ] +} + +resource "aws_oam_sink" "example" { + # ... +} + +resource "aws_oam_sink_policy" "example" { + sink_identifier = aws_oam_sink.example.arn + # ... } ``` @@ -36,7 +51,11 @@ resource "aws_oam_link" "example" { } } resource_types = ["AWS::Logs::LogGroup"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.example.arn + + depends_on = [ + aws_oam_sink_policy.example + ] } ``` @@ -51,7 +70,11 @@ resource "aws_oam_link" "example" { } } resource_types = ["AWS::CloudWatch::Metric"] - sink_identifier = aws_oam_sink.test.id + sink_identifier = aws_oam_sink.example.arn + + depends_on = [ + aws_oam_sink_policy.example + ] } ``` @@ -92,7 +115,7 @@ The `metric_configuration` configuration block supports the following arguments: This resource exports the following attributes in addition to the arguments above: * `arn` - ARN of the link. -* `id` - ARN of the link. +* `id` - ARN of the link. Use `arn` instead. * `label` - Label that is assigned to this link. * `link_id` - ID string that AWS generated as part of the link ARN. * `sink_arn` - ARN of the sink that is used for this link. diff --git a/website/docs/r/oam_sink.html.markdown b/website/docs/r/oam_sink.html.markdown index 12336403eac..edcb50bb982 100644 --- a/website/docs/r/oam_sink.html.markdown +++ b/website/docs/r/oam_sink.html.markdown @@ -39,7 +39,7 @@ The following arguments are optional: This resource exports the following attributes in addition to the arguments above: * `arn` - ARN of the Sink. -* `id` - ARN of the Sink. +* `id` - ARN of the Sink. Use `arn` instead. * `sink_id` - ID string that AWS generated as part of the sink ARN. ## Timeouts diff --git a/website/docs/r/oam_sink_policy.html.markdown b/website/docs/r/oam_sink_policy.html.markdown index fa3475e8980..99ddf56b4e6 100644 --- a/website/docs/r/oam_sink_policy.html.markdown +++ b/website/docs/r/oam_sink_policy.html.markdown @@ -20,7 +20,7 @@ resource "aws_oam_sink" "example" { } resource "aws_oam_sink_policy" "example" { - sink_identifier = aws_oam_sink.example.id + sink_identifier = aws_oam_sink.example.arn policy = jsonencode({ Version = "2012-10-17" Statement = [ @@ -54,7 +54,6 @@ The following arguments are required: This resource exports the following attributes in addition to the arguments above: * `arn` - ARN of the Sink. -* `id` - ARN of the sink to attach this policy to. * `sink_id` - ID string that AWS generated as part of the sink ARN. ## Timeouts