From adc152873e6a0ad345d2946ad1f5315b59fab5db Mon Sep 17 00:00:00 2001 From: Daniel Rieske Date: Thu, 9 May 2024 00:25:24 +0200 Subject: [PATCH 1/8] feat: added budgets alerts --- internal/service/budgets/budget.go | 10 +- internal/service/budgets/budget_action.go | 60 ++--- .../service/budgets/budget_action_test.go | 215 ++++++++++++++---- .../service/budgets/budget_data_source.go | 14 +- .../budgets/budget_data_source_test.go | 5 + internal/service/budgets/budget_test.go | 89 ++++++++ internal/service/budgets/generate.go | 1 + .../service/budgets/service_package_gen.go | 6 + internal/service/budgets/tags_gen.go | 146 ++++++++++++ website/docs/r/budgets_budget.html.markdown | 7 + .../r/budgets_budget_action.html.markdown | 7 + 11 files changed, 486 insertions(+), 74 deletions(-) create mode 100644 internal/service/budgets/tags_gen.go diff --git a/internal/service/budgets/budget.go b/internal/service/budgets/budget.go index 1f5eee7aac24..ce34d261ccbb 100644 --- a/internal/service/budgets/budget.go +++ b/internal/service/budgets/budget.go @@ -26,6 +26,7 @@ import ( "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" + tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" "github.com/hashicorp/terraform-provider-aws/internal/tfresource" "github.com/hashicorp/terraform-provider-aws/internal/verify" "github.com/hashicorp/terraform-provider-aws/names" @@ -33,6 +34,7 @@ import ( ) // @SDKResource("aws_budgets_budget") +// @Tags(identifierAttribute="arn") func ResourceBudget() *schema.Resource { return &schema.Resource{ CreateWithoutTimeout: resourceBudgetCreate, @@ -272,6 +274,8 @@ func ResourceBudget() *schema.Resource { }, ConflictsWith: []string{"limit_amount", "limit_unit"}, }, + names.AttrTags: tftags.TagsSchema(), + names.AttrTagsAll: tftags.TagsSchemaComputed(), "time_period_end": { Type: schema.TypeString, Optional: true, @@ -290,6 +294,7 @@ func ResourceBudget() *schema.Resource { ValidateDiagFunc: enum.Validate[awstypes.TimeUnit](), }, }, + CustomizeDiff: verify.SetTagsDiff, } } @@ -313,8 +318,9 @@ func resourceBudgetCreate(ctx context.Context, d *schema.ResourceData, meta inte } _, err = conn.CreateBudget(ctx, &budgets.CreateBudgetInput{ - AccountId: aws.String(accountID), - Budget: budget, + AccountId: aws.String(accountID), + Budget: budget, + ResourceTags: getTagsIn(ctx), }) if err != nil { diff --git a/internal/service/budgets/budget_action.go b/internal/service/budgets/budget_action.go index 0d26f5fa871d..043b5a6f3fb3 100644 --- a/internal/service/budgets/budget_action.go +++ b/internal/service/budgets/budget_action.go @@ -24,12 +24,14 @@ import ( "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" + tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" "github.com/hashicorp/terraform-provider-aws/internal/tfresource" "github.com/hashicorp/terraform-provider-aws/internal/verify" "github.com/hashicorp/terraform-provider-aws/names" ) // @SDKResource("aws_budgets_budget_action") +// @Tags(identifierAttribute="arn") func ResourceBudgetAction() *schema.Resource { return &schema.Resource{ CreateWithoutTimeout: resourceBudgetActionCreate, @@ -221,7 +223,10 @@ func ResourceBudgetAction() *schema.Resource { }, }, }, + names.AttrTags: tftags.TagsSchema(), + names.AttrTagsAll: tftags.TagsSchemaComputed(), }, + CustomizeDiff: verify.SetTagsDiff, } } @@ -243,6 +248,7 @@ func resourceBudgetActionCreate(ctx context.Context, d *schema.ResourceData, met ExecutionRoleArn: aws.String(d.Get("execution_role_arn").(string)), NotificationType: awstypes.NotificationType(d.Get("notification_type").(string)), Subscribers: expandBudgetActionSubscriber(d.Get("subscriber").(*schema.Set)), + ResourceTags: getTagsIn(ctx), } outputRaw, err := tfresource.RetryWhenIsA[*awstypes.AccessDeniedException](ctx, propagationTimeout, func() (interface{}, error) { @@ -324,40 +330,42 @@ func resourceBudgetActionUpdate(ctx context.Context, d *schema.ResourceData, met return sdkdiag.AppendFromErr(diags, err) } - input := &budgets.UpdateBudgetActionInput{ - AccountId: aws.String(accountID), - ActionId: aws.String(actionID), - BudgetName: aws.String(budgetName), - } + if d.HasChangesExcept(names.AttrTags, names.AttrTagsAll) { + input := &budgets.UpdateBudgetActionInput{ + AccountId: aws.String(accountID), + ActionId: aws.String(actionID), + BudgetName: aws.String(budgetName), + } - if d.HasChange("action_threshold") { - input.ActionThreshold = expandBudgetActionActionThreshold(d.Get("action_threshold").([]interface{})) - } + if d.HasChange("action_threshold") { + input.ActionThreshold = expandBudgetActionActionThreshold(d.Get("action_threshold").([]interface{})) + } - if d.HasChange("approval_model") { - input.ApprovalModel = awstypes.ApprovalModel(d.Get("approval_model").(string)) - } + if d.HasChange("approval_model") { + input.ApprovalModel = awstypes.ApprovalModel(d.Get("approval_model").(string)) + } - if d.HasChange("definition") { - input.Definition = expandBudgetActionActionDefinition(d.Get("definition").([]interface{})) - } + if d.HasChange("definition") { + input.Definition = expandBudgetActionActionDefinition(d.Get("definition").([]interface{})) + } - if d.HasChange("execution_role_arn") { - input.ExecutionRoleArn = aws.String(d.Get("execution_role_arn").(string)) - } + if d.HasChange("execution_role_arn") { + input.ExecutionRoleArn = aws.String(d.Get("execution_role_arn").(string)) + } - if d.HasChange("notification_type") { - input.NotificationType = awstypes.NotificationType(d.Get("notification_type").(string)) - } + if d.HasChange("notification_type") { + input.NotificationType = awstypes.NotificationType(d.Get("notification_type").(string)) + } - if d.HasChange("subscriber") { - input.Subscribers = expandBudgetActionSubscriber(d.Get("subscriber").(*schema.Set)) - } + if d.HasChange("subscriber") { + input.Subscribers = expandBudgetActionSubscriber(d.Get("subscriber").(*schema.Set)) + } - _, err = conn.UpdateBudgetAction(ctx, input) + _, err = conn.UpdateBudgetAction(ctx, input) - if err != nil { - return sdkdiag.AppendErrorf(diags, "updating Budget Action (%s): %s", d.Id(), err) + if err != nil { + return sdkdiag.AppendErrorf(diags, "updating Budget Action (%s): %s", d.Id(), err) + } } return append(diags, resourceBudgetActionRead(ctx, d, meta)...) diff --git a/internal/service/budgets/budget_action_test.go b/internal/service/budgets/budget_action_test.go index 4e2f1ec8a1fb..6f2ef65f35c0 100644 --- a/internal/service/budgets/budget_action_test.go +++ b/internal/service/budgets/budget_action_test.go @@ -152,6 +152,54 @@ func TestAccBudgetsBudgetAction_triggeredManual(t *testing.T) { }) } +func TestAccBudgetsBudgetAction_tags(t *testing.T) { + ctx := acctest.Context(t) + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + resourceName := "aws_budgets_budget_action.test" + var conf awstypes.Action + + const thresholdValue = "1000000000" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(ctx, t); acctest.PreCheckPartitionHasService(t, names.BudgetsEndpointID) }, + ErrorCheck: acctest.ErrorCheck(t, names.BudgetsServiceID), + ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, + CheckDestroy: testAccCheckBudgetActionDestroy(ctx), + Steps: []resource.TestStep{ + { + Config: testAccBudgetActionConfig_tags1(rName, string(awstypes.ApprovalModelManual), thresholdValue, "key1", "value1"), + Check: resource.ComposeTestCheckFunc( + testAccBudgetActionExists(ctx, resourceName, &conf), + resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.key1", "value1"), + ), + }, + { + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBudgetActionConfig_tags2(rName, string(awstypes.ApprovalModelManual), thresholdValue, "key1", "value1updated", "key2", "value2"), + Check: resource.ComposeTestCheckFunc( + testAccBudgetActionExists(ctx, resourceName, &conf), + resource.TestCheckResourceAttr(resourceName, "tags.%", "2"), + resource.TestCheckResourceAttr(resourceName, "tags.key1", "value1updated"), + resource.TestCheckResourceAttr(resourceName, "tags.key2", "value2"), + ), + }, + { + Config: testAccBudgetActionConfig_tags1(rName, string(awstypes.ApprovalModelManual), thresholdValue, "key2", "value2"), + Check: resource.ComposeTestCheckFunc( + testAccBudgetActionExists(ctx, resourceName, &conf), + resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.key2", "value2"), + ), + }, + }, + }) +} + func TestAccBudgetsBudgetAction_disappears(t *testing.T) { ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) @@ -243,8 +291,68 @@ func testAccCheckBudgetActionDestroy(ctx context.Context) resource.TestCheckFunc } } -func testAccBudgetActionConfig_basic(rName, approvalModel, thresholdValue string) string { +func testAccBudgetActionConfig_base(rName string) string { return fmt.Sprintf(` +resource "aws_budgets_budget" "test" { + name = %[1]q + budget_type = "USAGE" + limit_amount = "1.0" + limit_unit = "dollars" + time_period_start = "2006-01-02_15:04" + time_unit = "MONTHLY" +} + +resource "aws_iam_policy" "test" { + name = %[1]q + description = "My test policy" + + policy = < 0 { + return tags + } + } + + return nil +} + +// setTagsOut sets budgets service tags in Context. +func setTagsOut(ctx context.Context, tags []awstypes.ResourceTag) { + if inContext, ok := tftags.FromContext(ctx); ok { + inContext.TagsOut = option.Some(KeyValueTags(ctx, tags)) + } +} + +// updateTags updates budgets service tags. +// The identifier is typically the Amazon Resource Name (ARN), although +// it may also be a different identifier depending on the service. +func updateTags(ctx context.Context, conn *budgets.Client, identifier string, oldTagsMap, newTagsMap any, optFns ...func(*budgets.Options)) error { + oldTags := tftags.New(ctx, oldTagsMap) + newTags := tftags.New(ctx, newTagsMap) + + ctx = tflog.SetField(ctx, logging.KeyResourceId, identifier) + + removedTags := oldTags.Removed(newTags) + removedTags = removedTags.IgnoreSystem(names.Budgets) + if len(removedTags) > 0 { + input := &budgets.UntagResourceInput{ + ResourceARN: aws.String(identifier), + ResourceTagKeys: removedTags.Keys(), + } + + _, err := conn.UntagResource(ctx, input, optFns...) + + if err != nil { + return fmt.Errorf("untagging resource (%s): %w", identifier, err) + } + } + + updatedTags := oldTags.Updated(newTags) + updatedTags = updatedTags.IgnoreSystem(names.Budgets) + if len(updatedTags) > 0 { + input := &budgets.TagResourceInput{ + ResourceARN: aws.String(identifier), + ResourceTags: Tags(updatedTags), + } + + _, err := conn.TagResource(ctx, input, optFns...) + + if err != nil { + return fmt.Errorf("tagging resource (%s): %w", identifier, err) + } + } + + return nil +} + +// UpdateTags updates budgets service tags. +// It is called from outside this package. +func (p *servicePackage) UpdateTags(ctx context.Context, meta any, identifier string, oldTags, newTags any) error { + return updateTags(ctx, meta.(*conns.AWSClient).BudgetsClient(ctx), identifier, oldTags, newTags) +} diff --git a/website/docs/r/budgets_budget.html.markdown b/website/docs/r/budgets_budget.html.markdown index 332522a2cddd..ab049f3a1367 100644 --- a/website/docs/r/budgets_budget.html.markdown +++ b/website/docs/r/budgets_budget.html.markdown @@ -36,6 +36,11 @@ resource "aws_budgets_budget" "ec2" { notification_type = "FORECASTED" subscriber_email_addresses = ["test@example.com"] } + + tags = { + Tag1 = "Value1" + Tag2 = "Value2" + } } ``` @@ -187,6 +192,7 @@ This argument supports the following arguments: * `time_unit` - (Required) The length of time until a budget resets the actual and forecasted spend. Valid values: `MONTHLY`, `QUARTERLY`, `ANNUALLY`, and `DAILY`. * `notification` - (Optional) Object containing [Budget Notifications](#budget-notification). Can be used multiple times to define more than one budget notification. * `planned_limit` - (Optional) Object containing [Planned Budget Limits](#planned-budget-limits). Can be used multiple times to plan more than one budget limit. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. +* `tags` - Tags to apply to the domain. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. ## Attribute Reference @@ -194,6 +200,7 @@ This resource exports the following attributes in addition to the arguments abov * `id` - id of resource. * `arn` - The ARN of the budget. +* `tags_all` - A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). ### Auto Adjust Data diff --git a/website/docs/r/budgets_budget_action.html.markdown b/website/docs/r/budgets_budget_action.html.markdown index 93c07598a420..4fb9d6d35b07 100644 --- a/website/docs/r/budgets_budget_action.html.markdown +++ b/website/docs/r/budgets_budget_action.html.markdown @@ -36,6 +36,11 @@ resource "aws_budgets_budget_action" "example" { address = "example@example.example" subscription_type = "EMAIL" } + + tags = { + Tag1 = "Value1" + Tag2 = "Value2" + } } data "aws_iam_policy_document" "example" { @@ -95,6 +100,7 @@ This resource supports the following arguments: * `execution_role_arn` - (Required) The role passed for action execution and reversion. Roles and actions must be in the same account. * `notification_type` - (Required) The type of a notification. Valid values are `ACTUAL` or `FORECASTED`. * `subscriber` - (Required) A list of subscribers. See [Subscriber](#subscriber). +* `tags` - Tags to apply to the domain. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. ### Action Threshold @@ -138,6 +144,7 @@ This resource exports the following attributes in addition to the arguments abov * `id` - ID of resource. * `arn` - The ARN of the budget action. * `status` - The status of the budget action. +* `tags_all` - A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). ## Timeouts From 0a406826bcb2be51d549cc26261090f51bd7b80a Mon Sep 17 00:00:00 2001 From: Daniel Rieske Date: Thu, 9 May 2024 00:36:34 +0200 Subject: [PATCH 2/8] chore: added changelog --- .changelog/37361.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changelog/37361.txt diff --git a/.changelog/37361.txt b/.changelog/37361.txt new file mode 100644 index 000000000000..540da7351688 --- /dev/null +++ b/.changelog/37361.txt @@ -0,0 +1,11 @@ +```release-note:enhancement +resource/aws_budgets_budget: Add `tags` argument +``` + +```release-note:enhancement +resource/aws_budgets_budget_action: Add `tags` argument +``` + +```release-note:enhancement +data-source/aws_budgets_budget: Add `tags` argument +``` \ No newline at end of file From e5e2d3caea63cd1b5927dcacae50a158abe8e4ac Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 11:09:44 -0400 Subject: [PATCH 3/8] chore: make cleantidy --- tools/tfsdk2fw/go.mod | 32 +++++++++++----------- tools/tfsdk2fw/go.sum | 64 +++++++++++++++++++++---------------------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/tools/tfsdk2fw/go.mod b/tools/tfsdk2fw/go.mod index 304942e184d3..690efd1fdd6a 100644 --- a/tools/tfsdk2fw/go.mod +++ b/tools/tfsdk2fw/go.mod @@ -18,7 +18,7 @@ require ( github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect - github.com/aws/aws-sdk-go v1.52.5 // indirect + github.com/aws/aws-sdk-go v1.52.6 // indirect github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.12 // indirect @@ -29,7 +29,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.2 // indirect + github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/account v1.16.5 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.25.5 // indirect github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.5 // indirect @@ -101,7 +101,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.5 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.6 // indirect github.com/aws/aws-sdk-go-v2/service/emr v1.39.6 // indirect - github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.1 // indirect + github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.2 // indirect github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.5 // indirect github.com/aws/aws-sdk-go-v2/service/evidently v1.19.5 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.24.2 // indirect @@ -144,7 +144,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/mwaa v1.26.6 // indirect github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.8.2 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.11.1 // indirect - github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.5 // indirect + github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.6 // indirect github.com/aws/aws-sdk-go-v2/service/osis v1.8.5 // indirect github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.10.1 // indirect github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.5 // indirect @@ -181,7 +181,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssm v1.50.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.22.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmsap v1.12.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmsap v1.13.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.5 // indirect @@ -191,7 +191,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.6 // indirect github.com/aws/aws-sdk-go-v2/service/transcribe v1.37.1 // indirect github.com/aws/aws-sdk-go-v2/service/transfer v1.47.3 // indirect - github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.13.2 // indirect + github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/vpclattice v1.7.6 // indirect github.com/aws/aws-sdk-go-v2/service/wafv2 v1.48.4 // indirect github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.30.1 // indirect @@ -212,8 +212,8 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.22.0 // indirect - github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.52 // indirect - github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.53 // indirect + github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.53 // indirect + github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.54 // indirect github.com/hashicorp/awspolicyequivalence v1.6.0 // indirect github.com/hashicorp/cli v1.1.6 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -235,9 +235,9 @@ require ( github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.22.2 // indirect + github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect - github.com/hashicorp/terraform-plugin-mux v0.15.0 // indirect + github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect github.com/hashicorp/terraform-plugin-testing v1.7.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect @@ -266,20 +266,20 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zclconf/go-cty v1.14.3 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.50.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.51.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect golang.org/x/crypto v0.23.0 // indirect golang.org/x/mod v0.15.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/tools/tfsdk2fw/go.sum b/tools/tfsdk2fw/go.sum index 67a7893e5bf2..456a3665a777 100644 --- a/tools/tfsdk2fw/go.sum +++ b/tools/tfsdk2fw/go.sum @@ -22,8 +22,8 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aws/aws-sdk-go v1.52.5 h1:m2lty5v9sHm1J3lhA43hJql+yKZudF09qzab0Ag9chM= -github.com/aws/aws-sdk-go v1.52.5/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.52.6 h1:nw1AMg0wIj5tTnI89KaDe9G5aISqXm4KJEe1DfNbFvA= +github.com/aws/aws-sdk-go v1.52.6/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= @@ -44,8 +44,8 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.2 h1:jZywIZbLnCUJ+ZmMQgEuP4pg43/0z6KxWA3VfB7WVxQ= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.2/go.mod h1:CDDc+pehLZpaGJNHUE6RJcp7MjQUhduISa1bQ/ixwR8= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.3 h1:BBUeY/+n606X9dEj6GKp2xG35HY4edSNo358QHBZ/Pw= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.3/go.mod h1:CDDc+pehLZpaGJNHUE6RJcp7MjQUhduISa1bQ/ixwR8= github.com/aws/aws-sdk-go-v2/service/account v1.16.5 h1:jhvXh67e1M5jqqKNulv1wTfM8KpnCnVe7OWUF3fW9r4= github.com/aws/aws-sdk-go-v2/service/account v1.16.5/go.mod h1:d6aNAmILOvNF389Sj6qTZuwRGVU1L/CQH3OlB5Xa9/k= github.com/aws/aws-sdk-go-v2/service/acm v1.25.5 h1:VUFUI8yF8Jgv6DtjS3eBcIsWrZzOsQ9qNzqEh8EhYEY= @@ -188,8 +188,8 @@ github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.6 h1:P5kMcIzrz github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.6/go.mod h1:e1McVqsud0JOERidvppLEHnuCdh/X6MRyL5L0LseAUk= github.com/aws/aws-sdk-go-v2/service/emr v1.39.6 h1:6FFt6seuRKdiIedxSHYMg2tC/zLD8yl56X8gJxQfFl8= github.com/aws/aws-sdk-go-v2/service/emr v1.39.6/go.mod h1:7WusX+O5pwTnx2yobUO/P1C5HlBibmrQb5gKEPFjTYM= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.1 h1:+aHhVyLzitWmStZzndkz1NI/SD12eM2FkQ77OxQIrbA= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.1/go.mod h1:TZrahLcSXIN/kO96kvxUzfLNLH8E6t3xodv8Zv5DHGs= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.2 h1:FUqD0sv/ZriloldGjCAc2jLwT4kOKKWw8y8qy6Ib1Rs= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.19.2/go.mod h1:TZrahLcSXIN/kO96kvxUzfLNLH8E6t3xodv8Zv5DHGs= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.5 h1:8cIsFC9HskfTIrkJUk24+1HBRUetZ0wOW3rcTqN//vg= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.5/go.mod h1:aIINXlt2xXhMeRsyCsLDUDohI8AdDm92gY9nIB6pv0M= github.com/aws/aws-sdk-go-v2/service/evidently v1.19.5 h1:gDSjoeOFMMpR+dxjkRnQX8j44pFdm2FFOP1rhs9G7vA= @@ -274,8 +274,8 @@ github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.8.2 h1:C08TU/uiP+9lFaH/wxH9 github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.8.2/go.mod h1:z/vZeXWTVU//C8fnX0JqhIykpNf9EqdmEIfNrU8nPyk= github.com/aws/aws-sdk-go-v2/service/oam v1.11.1 h1:JTj9z5gGzXhg4XoVdfd+RMUeg+DqvPKQa1yMpAnKJhs= github.com/aws/aws-sdk-go-v2/service/oam v1.11.1/go.mod h1:GNW8lL/rOjgXphUtGDvd9yikXGOfo51z2LBgct6XPTs= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.5 h1:gYmHliliNlF5EpVIsEiOVaHDAz9DWJBHVA9p1iBZ0F0= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.5/go.mod h1:T7lBopPcIVR1EJOibce+6Z3cJmY8uWTEM8+i63a4rD0= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.6 h1:N4jSI2xXE/KAOfU+lLgB8aoBgKb5wfCKrFZO+wdkRDM= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.6/go.mod h1:T7lBopPcIVR1EJOibce+6Z3cJmY8uWTEM8+i63a4rD0= github.com/aws/aws-sdk-go-v2/service/osis v1.8.5 h1:YbNekLy3cv7Kfq4scc9L3OrcwuaZfwXjSYBEGUMlPEc= github.com/aws/aws-sdk-go-v2/service/osis v1.8.5/go.mod h1:MHw9zAnU6CaZXqe/J1UNcxcEZLF5oXs21Efdxw0K5tY= github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.10.1 h1:1c5ZA0hDANl2Y4uooj+f/EuSU2DegLDHA7FQKXhpIGY= @@ -348,8 +348,8 @@ github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.22.5 h1:To1CPB7szsjzmscM7KUF github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.22.5/go.mod h1:LjUmrzAa81OMGqfygRS3JTkxhNinG4rswXYy4uUWvow= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.5 h1:8TPcvvTtvyK56nUD50MC1wfL3WD7Tq2jQ5hyEYor2P8= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.5/go.mod h1:xgj+QUtfv/DrfdZq1cGt0wlEX6om1oh/NHB+PClQbWs= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.12.5 h1:FPO6Zy+6UKz+1ejS+KvZRpCnTbb1V21KGzTDr/YUsog= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.12.5/go.mod h1:HYXzJ1bqOZnHNvjaArIrCPnSz5HnVQhKSb/317ZCTyc= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.13.0 h1:ZDjnSS+C6TFRM+VCn3LT7m6YuLvPi2Sk/MBSIOhgN0w= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.13.0/go.mod h1:HYXzJ1bqOZnHNvjaArIrCPnSz5HnVQhKSb/317ZCTyc= github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs= github.com/aws/aws-sdk-go-v2/service/sso v1.20.6/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.6 h1:Dzs+0j54D0WdqPDr6+zIp1UU+YcG88+d9CpIAInSoPo= @@ -368,8 +368,8 @@ github.com/aws/aws-sdk-go-v2/service/transcribe v1.37.1 h1:rGTny4YnKnvLcpJVrF3J+ github.com/aws/aws-sdk-go-v2/service/transcribe v1.37.1/go.mod h1:k8u3Uj5KgSM4eUoGXyvLNNf1Y/mLMM7jJM4o9kIazEc= github.com/aws/aws-sdk-go-v2/service/transfer v1.47.3 h1:EhqwUy9cWyivUol3OItsFxUT/m0jm5isdxUWGOWzOYQ= github.com/aws/aws-sdk-go-v2/service/transfer v1.47.3/go.mod h1:z3NpUj6ziVpg9XHEMdA0xpD/lgjPuZb9R/PBV6Mieb0= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.13.2 h1:H4Z5fqtcfa9grRYIIcJmfcAq0el2dpN9KmHCnOdFMk4= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.13.2/go.mod h1:DKtR1LdOqG21jCPD/b7zMxAFxpelWoGb65rNVTpBaXs= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.14.0 h1:xLuRLtl2r5Xb8854TV7cnhTtqZuThvFhoOz7K1rdBXg= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.14.0/go.mod h1:DKtR1LdOqG21jCPD/b7zMxAFxpelWoGb65rNVTpBaXs= github.com/aws/aws-sdk-go-v2/service/vpclattice v1.7.6 h1:ZJzyuwG/oxo8Usglni0OzP9hCCiFqg5EDAwAWFZIy4Y= github.com/aws/aws-sdk-go-v2/service/vpclattice v1.7.6/go.mod h1:lwuOe4SF+wdRnUrcPt1tukhJCj4gklxBV6xlD03Uo/8= github.com/aws/aws-sdk-go-v2/service/wafv2 v1.48.4 h1:2UwmqMxMqrh/PeC9rlz622TcUMa4mhIJ9YjoZHSPEvQ= @@ -443,10 +443,10 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.22.0 h1:N2V/ooY+BPQwwN3qPRIztByR8mWN6IqgULqVzGoUlog= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.22.0/go.mod h1:HAmscHyzSOfB1Dr16KLc177KNbn83wscnZC+N7WyaM8= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.52 h1:bKvTdvF3jNgDt4rHDk55BxYnyofFVJhXHMj+RBRUmc0= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.52/go.mod h1:YlwqmXqrK6MNTtW1cCjPFkoc3plCT939B+Yjmq+/DBc= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.53 h1:hrcewXLBw48wZc6fe7blETM94eTwzTouQ4zWqQvjVwU= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.53/go.mod h1:458CK33gIkH+FvTU2aZcJy2IANdsE3USy1NAUhK/uFg= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.53 h1:jgOMbQlypMpUMaqYJotjT7ERSMvQP00Mppgjgh8lNt8= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.53/go.mod h1:nvpXIeF0ANfZ7sMssXKSSR3pyXfksajxoC2tl4jjN08= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.54 h1:raRbM2Wynqv0Nyhe7AwVnFgb2roGSvpSUeQKxEg8Lts= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.54/go.mod h1:Q5SSO00VVkkbiPtT6ssI9twHV7yfh4gPLOtoLQJMbzw= github.com/hashicorp/awspolicyequivalence v1.6.0 h1:7aadmkalbc5ewStC6g3rljx1iNvP4QyAhg2KsHx8bU8= github.com/hashicorp/awspolicyequivalence v1.6.0/go.mod h1:9IOaIHx+a7C0NfUNk1A93M7kHd5rJ19aoUx37LZGC14= github.com/hashicorp/cli v1.1.6 h1:CMOV+/LJfL1tXCOKrgAX0uRKnzjj/mpmqNXloRSy2K8= @@ -493,10 +493,10 @@ github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0 h1:egR4InfakWkg github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0/go.mod h1:9vjvl36aY1p6KltaA5QCvGC5hdE/9t4YuhGftw6WOgE= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.22.2 h1:5o8uveu6eZUf5J7xGPV0eY0TPXg3qpmwX9sce03Bxnc= -github.com/hashicorp/terraform-plugin-go v0.22.2/go.mod h1:drq8Snexp9HsbFZddvyLHN6LuWHHndSQg+gV+FPkcIM= -github.com/hashicorp/terraform-plugin-mux v0.15.0 h1:+/+lDx0WUsIOpkAmdwBIoFU8UP9o2eZASoOnLsWbKME= -github.com/hashicorp/terraform-plugin-mux v0.15.0/go.mod h1:9ezplb1Dyq394zQ+ldB0nvy/qbNAz3mMoHHseMTMaKo= +github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co= +github.com/hashicorp/terraform-plugin-go v0.23.0/go.mod h1:1E3Cr9h2vMlahWMbsSEcNrOCxovCZhOOIXjFHbjc/lQ= +github.com/hashicorp/terraform-plugin-mux v0.16.0 h1:RCzXHGDYwUwwqfYYWJKBFaS3fQsWn/ZECEiW7p2023I= +github.com/hashicorp/terraform-plugin-mux v0.16.0/go.mod h1:PF79mAsPc8CpusXPfEVa4X8PtkB+ngWoiUClMrNZlYo= github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 h1:qHprzXy/As0rxedphECBEQAh3R4yp6pKksKHcqZx5G8= github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A= github.com/hashicorp/terraform-plugin-testing v1.7.0 h1:I6aeCyZ30z4NiI3tzyDoO6fS7YxP5xSL1ceOon3gTe8= @@ -608,14 +608,14 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.14.3 h1:1JXy1XroaGrzZuG6X9dt7HL6s9AwbY+l4UNL8o5B6ho= github.com/zclconf/go-cty v1.14.3/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.50.0 h1:0zXBsTKPsly2MlyLYyra1GuL23fsY5RMsi6E2ZOe988= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.50.0/go.mod h1:Tztzncf+ezyOCjXz8zRjVL2agqyBxhymGnK6rqgoY5c= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.51.0 h1:FGMfzzxfkNkw+gvKJOeT8dSmBjgrSFh+ClLl+OMKPno= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.51.0/go.mod h1:hmHUXiKhyxbIhuNfG5ZTySq9HqqxJFNxaFOfXXvoMmQ= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= @@ -631,8 +631,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -682,8 +682,8 @@ google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= From f9076d9f79acfe1697f0cbd8704243c138f9ec2f Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 13:15:48 -0400 Subject: [PATCH 4/8] chore: tidy changelog --- .changelog/37361.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.changelog/37361.txt b/.changelog/37361.txt index 540da7351688..c425fbe3cf60 100644 --- a/.changelog/37361.txt +++ b/.changelog/37361.txt @@ -1,11 +1,9 @@ ```release-note:enhancement resource/aws_budgets_budget: Add `tags` argument ``` - ```release-note:enhancement resource/aws_budgets_budget_action: Add `tags` argument ``` - ```release-note:enhancement -data-source/aws_budgets_budget: Add `tags` argument -``` \ No newline at end of file +data-source/aws_budgets_budget: Add `tags` attribute +``` From 611ef5e6fa905ae12174136af9a517d50ad34a99 Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 14:45:43 -0400 Subject: [PATCH 5/8] d/aws_budgets_budget(doc): add tags attribute --- website/docs/d/budgets_budget.html.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/website/docs/d/budgets_budget.html.markdown b/website/docs/d/budgets_budget.html.markdown index 9c949509cfb9..239f1aa32c78 100644 --- a/website/docs/d/budgets_budget.html.markdown +++ b/website/docs/d/budgets_budget.html.markdown @@ -44,6 +44,7 @@ This data source exports the following attributes in addition to the arguments a * `cost_types` - Object containing [CostTypes](#cost-types) The types of cost included in a budget, such as tax and subscriptions. * `notification` - Object containing [Budget Notifications](#budget-notification). Can be used multiple times to define more than one budget notification. * `planned_limit` - Object containing [Planned Budget Limits](#planned-budget-limits). Can be used multiple times to plan more than one budget limit. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. +* `tags` - Map of tags assigned to the resource. * `time_period_end` - The end of the time period covered by the budget. There are no restrictions on the end date. Format: `2017-01-01_12:00`. * `time_period_start` - The start of the time period covered by the budget. If you don't specify a start date, AWS defaults to the start of your chosen time period. The start date must come before the end date. Format: `2017-01-01_12:00`. * `time_unit` - The length of time until a budget resets the actual and forecasted spend. Valid values: `MONTHLY`, `QUARTERLY`, `ANNUALLY`, and `DAILY`. From 36b178e6b5c0d2d5087d41668834fefb540baca2 Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 14:46:10 -0400 Subject: [PATCH 6/8] r/aws_budgets_budget(doc): tidy tags attribute descriptions --- website/docs/r/budgets_budget.html.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/docs/r/budgets_budget.html.markdown b/website/docs/r/budgets_budget.html.markdown index ab049f3a1367..d8a043cbe1c6 100644 --- a/website/docs/r/budgets_budget.html.markdown +++ b/website/docs/r/budgets_budget.html.markdown @@ -192,7 +192,8 @@ This argument supports the following arguments: * `time_unit` - (Required) The length of time until a budget resets the actual and forecasted spend. Valid values: `MONTHLY`, `QUARTERLY`, `ANNUALLY`, and `DAILY`. * `notification` - (Optional) Object containing [Budget Notifications](#budget-notification). Can be used multiple times to define more than one budget notification. * `planned_limit` - (Optional) Object containing [Planned Budget Limits](#planned-budget-limits). Can be used multiple times to plan more than one budget limit. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. -* `tags` - Tags to apply to the domain. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. +* `tags` - (Optional) Map of tags assigned to the resource. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. + ## Attribute Reference @@ -200,7 +201,7 @@ This resource exports the following attributes in addition to the arguments abov * `id` - id of resource. * `arn` - The ARN of the budget. -* `tags_all` - A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). +* `tags_all` - Map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). ### Auto Adjust Data From b8f119bada89b5467a3963277bdaddc0d53cbb78 Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 14:46:23 -0400 Subject: [PATCH 7/8] r/aws_budgets_budget_action(doc): tidy tags attribute descriptions --- website/docs/r/budgets_budget_action.html.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/r/budgets_budget_action.html.markdown b/website/docs/r/budgets_budget_action.html.markdown index 4fb9d6d35b07..ba895e591295 100644 --- a/website/docs/r/budgets_budget_action.html.markdown +++ b/website/docs/r/budgets_budget_action.html.markdown @@ -100,7 +100,7 @@ This resource supports the following arguments: * `execution_role_arn` - (Required) The role passed for action execution and reversion. Roles and actions must be in the same account. * `notification_type` - (Required) The type of a notification. Valid values are `ACTUAL` or `FORECASTED`. * `subscriber` - (Required) A list of subscribers. See [Subscriber](#subscriber). -* `tags` - Tags to apply to the domain. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. +* `tags` - (Optional) Map of tags assigned to the resource. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. ### Action Threshold @@ -144,7 +144,7 @@ This resource exports the following attributes in addition to the arguments abov * `id` - ID of resource. * `arn` - The ARN of the budget action. * `status` - The status of the budget action. -* `tags_all` - A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). +* `tags_all` - Map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). ## Timeouts From 85df8514b15896e3685c08232dc677b4661a18fe Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Fri, 10 May 2024 15:01:18 -0400 Subject: [PATCH 8/8] r/aws_budgets_budget(doc): alphabetize arguments --- website/docs/r/budgets_budget.html.markdown | 34 +++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/website/docs/r/budgets_budget.html.markdown b/website/docs/r/budgets_budget.html.markdown index d8a043cbe1c6..faf77bc1f634 100644 --- a/website/docs/r/budgets_budget.html.markdown +++ b/website/docs/r/budgets_budget.html.markdown @@ -176,45 +176,47 @@ resource "aws_budgets_budget" "cost" { For more detailed documentation about each argument, refer to the [AWS official documentation](http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/data-type-budget.html). -This argument supports the following arguments: +The following arguments are required: -* `account_id` - (Optional) The ID of the target account for budget. Will use current user's account_id by default if omitted. -* `auto_adjust_data` - (Optional) Object containing [AutoAdjustData] which determines the budget amount for an auto-adjusting budget. -* `name` - (Optional) The name of a budget. Unique within accounts. -* `name_prefix` - (Optional) The prefix of the name of a budget. Unique within accounts. * `budget_type` - (Required) Whether this budget tracks monetary cost or usage. -* `cost_filter` - (Optional) A list of [CostFilter](#cost-filter) name/values pair to apply to budget. -* `cost_types` - (Optional) Object containing [CostTypes](#cost-types) The types of cost included in a budget, such as tax and subscriptions. * `limit_amount` - (Required) The amount of cost or usage being measured for a budget. * `limit_unit` - (Required) The unit of measurement used for the budget forecast, actual spend, or budget threshold, such as dollars or GB. See [Spend](http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/data-type-spend.html) documentation. -* `time_period_end` - (Optional) The end of the time period covered by the budget. There are no restrictions on the end date. Format: `2017-01-01_12:00`. -* `time_period_start` - (Optional) The start of the time period covered by the budget. If you don't specify a start date, AWS defaults to the start of your chosen time period. The start date must come before the end date. Format: `2017-01-01_12:00`. * `time_unit` - (Required) The length of time until a budget resets the actual and forecasted spend. Valid values: `MONTHLY`, `QUARTERLY`, `ANNUALLY`, and `DAILY`. + +The following arguments are optional: + +* `account_id` - (Optional) The ID of the target account for budget. Will use current user's account_id by default if omitted. +* `auto_adjust_data` - (Optional) Object containing [AutoAdjustData](#auto-adjust-data) which determines the budget amount for an auto-adjusting budget. +* `cost_filter` - (Optional) A list of [CostFilter](#cost-filter) name/values pair to apply to budget. +* `cost_types` - (Optional) Object containing [CostTypes](#cost-types) The types of cost included in a budget, such as tax and subscriptions. +* `name` - (Optional) The name of a budget. Unique within accounts. +* `name_prefix` - (Optional) The prefix of the name of a budget. Unique within accounts. * `notification` - (Optional) Object containing [Budget Notifications](#budget-notification). Can be used multiple times to define more than one budget notification. * `planned_limit` - (Optional) Object containing [Planned Budget Limits](#planned-budget-limits). Can be used multiple times to plan more than one budget limit. See [PlannedBudgetLimits](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_Budget.html#awscostmanagement-Type-budgets_Budget-PlannedBudgetLimits) documentation. * `tags` - (Optional) Map of tags assigned to the resource. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. - +* `time_period_end` - (Optional) The end of the time period covered by the budget. There are no restrictions on the end date. Format: `2017-01-01_12:00`. +* `time_period_start` - (Optional) The start of the time period covered by the budget. If you don't specify a start date, AWS defaults to the start of your chosen time period. The start date must come before the end date. Format: `2017-01-01_12:00`. ## Attribute Reference This resource exports the following attributes in addition to the arguments above: -* `id` - id of resource. * `arn` - The ARN of the budget. +* `id` - id of resource. * `tags_all` - Map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block). ### Auto Adjust Data The parameters that determine the budget amount for an auto-adjusting budget. -`auto_adjust_type` (Required) - The string that defines whether your budget auto-adjusts based on historical or forecasted data. Valid values: `FORECAST`,`HISTORICAL` -`historical_options` (Optional) - Configuration block of [Historical Options](#historical-options). Required for `auto_adjust_type` of `HISTORICAL` Configuration block that defines the historical data that your auto-adjusting budget is based on. -`last_auto_adjust_time` (Optional) - The last time that your budget was auto-adjusted. +* `auto_adjust_type` (Required) - The string that defines whether your budget auto-adjusts based on historical or forecasted data. Valid values: `FORECAST`,`HISTORICAL` +* `historical_options` (Optional) - Configuration block of [Historical Options](#historical-options). Required for `auto_adjust_type` of `HISTORICAL` Configuration block that defines the historical data that your auto-adjusting budget is based on. +* `last_auto_adjust_time` (Optional) - The last time that your budget was auto-adjusted. ### Historical Options -`budget_adjustment_period` (Required) - The number of budget periods included in the moving-average calculation that determines your auto-adjusted budget amount. -`lookback_available_periods` (Optional) - The integer that describes how many budget periods in your BudgetAdjustmentPeriod are included in the calculation of your current budget limit. If the first budget period in your BudgetAdjustmentPeriod has no cost data, then that budget period isn’t included in the average that determines your budget limit. You can’t set your own LookBackAvailablePeriods. The value is automatically calculated from the `budget_adjustment_period` and your historical cost data. +* `budget_adjustment_period` (Required) - The number of budget periods included in the moving-average calculation that determines your auto-adjusted budget amount. +* `lookback_available_periods` (Optional) - The integer that describes how many budget periods in your BudgetAdjustmentPeriod are included in the calculation of your current budget limit. If the first budget period in your BudgetAdjustmentPeriod has no cost data, then that budget period isn’t included in the average that determines your budget limit. You can’t set your own LookBackAvailablePeriods. The value is automatically calculated from the `budget_adjustment_period` and your historical cost data. ### Cost Types