Skip to content

Commit f1f6e09

Browse files
committed
Merge branch 'main' of github.com:hashicorp/terraform-provider-aws into f-add-ja34-rate-limits
2 parents a7f16cc + f53f671 commit f1f6e09

File tree

66 files changed

+2061
-501
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2061
-501
lines changed

.changelog/41663.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/aws_codepipeline: Add `stage.before_entry`, `stage.on_success` and `stage.on_failure` configuration blocks
3+
```

.changelog/41685.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/aws_mskconnect_connector: Allow `connector_configuration` to be updated in-place
3+
```

.ci/providerlint/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/hashicorp/terraform-provider-aws/ci/providerlint
22

33
go 1.23.0
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7
66

77
require (
88
github.com/bflad/tfproviderlint v0.31.0

.ci/providerlint/passes/AWSAT001/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module testdata
22

33
go 1.23.0
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7
66

77
require (
88
github.com/YakDriver/regexache v0.24.0

.ci/providerlint/passes/AWSAT002/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module testdata
22

33
go 1.23
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7

.ci/providerlint/passes/AWSAT003/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module testdata
22

33
go 1.23
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7

.ci/providerlint/passes/AWSAT004/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module testdata
22

33
go 1.23.0
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7
66

77
require github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1
88

.ci/providerlint/passes/AWSAT005/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module testdata
22

33
go 1.23
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7

.ci/providerlint/passes/AWSAT006/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module testdata
22

33
go 1.23
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7

.ci/providerlint/passes/AWSR001/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ module testdata
22

33
go 1.23
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7

.ci/providerlint/passes/AWSV001/testdata/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module testdata
22

33
go 1.23.0
44

5-
toolchain go1.23.5
5+
toolchain go1.23.7
66

77
require github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.1
88

.ci/tools/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/hashicorp/terraform-provider-aws/tools
22

3-
go 1.23.5
3+
go 1.23.7
44

55
require (
66
github.com/YakDriver/tfproviderdocs v0.17.0

.go-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.23.5
1+
1.23.7

CHANGELOG.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
## 5.91.0 (Unreleased)
1+
## 5.90.1 (Unreleased)
2+
3+
FEATURES:
4+
5+
* **New Data Source:** `aws_datazone_domain` ([#41480](https://github.com/hashicorp/terraform-provider-aws/issues/41480))
6+
7+
ENHANCEMENTS:
8+
9+
* resource/aws_mskconnect_connector: Allow `connector_configuration` to be updated in-place ([#41685](https://github.com/hashicorp/terraform-provider-aws/issues/41685))
10+
211
## 5.90.0 (March 6, 2025)
312

413
BREAKING CHANGES:

examples/count/main.tf

+5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ resource "aws_instance" "web" {
4646
instance_type = "t2.small"
4747
ami = data.aws_ami.ubuntu.id
4848

49+
# Force IMDSv2.
50+
metadata_options {
51+
http_tokens = "required"
52+
}
53+
4954
# This will create 4 instances
5055
count = 4
5156
}

examples/ecs-alb/main.tf

+4-2
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,11 @@ resource "aws_alb_listener" "front_end" {
289289
## CloudWatch Logs
290290

291291
resource "aws_cloudwatch_log_group" "ecs" {
292-
name = "tf-ecs-group/ecs-agent"
292+
name = "tf-ecs-group/ecs-agent"
293+
retention_in_days = 1
293294
}
294295

295296
resource "aws_cloudwatch_log_group" "app" {
296-
name = "tf-ecs-group/app-ghost"
297+
name = "tf-ecs-group/app-ghost"
298+
retention_in_days = 1
297299
}

examples/eip/main.tf

+6-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ resource "aws_instance" "web" {
6767
# this should be on port 80
6868
user_data = file("userdata.sh")
6969

70-
#Instance tags
70+
# Force IMDSv2.
71+
metadata_options {
72+
http_tokens = "required"
73+
}
74+
75+
# Instance tags.
7176
tags = {
7277
Name = "eip-example"
7378
}

examples/elb/main.tf

+6-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,12 @@ resource "aws_instance" "web" {
172172
subnet_id = aws_subnet.tf_test_subnet.id
173173
user_data = file("userdata.sh")
174174

175-
#Instance tags
175+
# Force IMDSv2.
176+
metadata_options {
177+
http_tokens = "required"
178+
}
179+
180+
# Instance tags
176181

177182
tags = {
178183
Name = "elb-example"

examples/two-tier/main.tf

+5
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ resource "aws_instance" "web" {
136136
# backend instances.
137137
subnet_id = aws_subnet.default.id
138138

139+
# Force IMDSv2.
140+
metadata_options {
141+
http_tokens = "required"
142+
}
143+
139144
# We run a remote provisioner on the instance after creating it.
140145
# In this case, we just install nginx and start it. By default,
141146
# this should be on port 80

examples/workspaces/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -121,5 +121,7 @@ resource "aws_directory_service_directory" "example" {
121121
}
122122

123123
resource "aws_kms_key" "example" {
124-
description = "WorkSpaces example key"
124+
description = "WorkSpaces example key"
125+
deletion_window_in_days = 7
126+
enable_key_rotation = true
125127
}

go.mod

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/hashicorp/terraform-provider-aws
22

3-
go 1.23.5
3+
go 1.23.7
44

55
require (
66
github.com/ProtonMail/go-crypto v1.1.6
@@ -198,7 +198,7 @@ require (
198198
github.com/aws/aws-sdk-go-v2/service/rbin v1.22.1
199199
github.com/aws/aws-sdk-go-v2/service/rds v1.94.1
200200
github.com/aws/aws-sdk-go-v2/service/redshift v1.54.1
201-
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.32.1
201+
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.33.0
202202
github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.26.1
203203
github.com/aws/aws-sdk-go-v2/service/rekognition v1.46.1
204204
github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.30.1
@@ -259,7 +259,7 @@ require (
259259
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.58.0
260260
github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.35.1
261261
github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2
262-
github.com/aws/aws-sdk-go-v2/service/workspaces v1.54.0
262+
github.com/aws/aws-sdk-go-v2/service/workspaces v1.55.0
263263
github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.27.1
264264
github.com/aws/aws-sdk-go-v2/service/xray v1.31.1
265265
github.com/aws/smithy-go v1.22.3

go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,8 @@ github.com/aws/aws-sdk-go-v2/service/rds v1.94.1 h1:OxrMHbabEdgwKLdMYvnHJju4XFye
425425
github.com/aws/aws-sdk-go-v2/service/rds v1.94.1/go.mod h1:CXiHj5rVyQ5Q3zNSoYzwaJfWm8IGDweyyCGfO8ei5fQ=
426426
github.com/aws/aws-sdk-go-v2/service/redshift v1.54.1 h1:atHdz2zvGf9wC7NfaOvPh3dHAwg+XwHcoYdmkq/i/Sc=
427427
github.com/aws/aws-sdk-go-v2/service/redshift v1.54.1/go.mod h1:TC8pNvjiikrjpX2MEzX/cEJ4/T4XIoSY4BskVvHj8bk=
428-
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.32.1 h1:mBmCGjVidRtfjKMNwDNZo9wGu++S7CzgaZqub1r3QEs=
429-
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.32.1/go.mod h1:pe1ZJmqbvJOw0SYKoeR/JIypaIlftRUqkDxt4gLXiA8=
428+
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.33.0 h1:l8vdpEf98yQZqYTcISRlOCsocjL9KIb6cgDMrAMPDoE=
429+
github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.33.0/go.mod h1:pe1ZJmqbvJOw0SYKoeR/JIypaIlftRUqkDxt4gLXiA8=
430430
github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.26.1 h1:BaVYzvKVffMqiqg0GQ8Sz0nOOGyhkn3Afazz7+bZufk=
431431
github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.26.1/go.mod h1:gpRsJN3qxZbsj1NhAoCNX02zJ4RZUB5v/7o4QrnGTcA=
432432
github.com/aws/aws-sdk-go-v2/service/rekognition v1.46.1 h1:CtkGvqA22++pHQf2E3vVi5vOOQmm4uZ1EqYBZNiXEtQ=
@@ -549,8 +549,8 @@ github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.35.1 h1:nypTzAkd4PRO4gr6
549549
github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.35.1/go.mod h1:lMYHuv2uomrtX9xyyhMzb5149Cz4MHrBFzRSezLgs1U=
550550
github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 h1:VN3Qydtdl3UlJRHVxQxSP1d8I5gtvT5zdaCCAfZST7Y=
551551
github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2/go.mod h1:Z3RLpIq4q49syd921XdsKeD584kPu89iKTEjluh7908=
552-
github.com/aws/aws-sdk-go-v2/service/workspaces v1.54.0 h1:DEFbMFWZ0NruUHNb4rIBhzu8dr6Oiv0d5X0UxmdBdUo=
553-
github.com/aws/aws-sdk-go-v2/service/workspaces v1.54.0/go.mod h1:/YN7Ft92lmFXqFWyEpl1kLnbhDZjDL82S4ibIxPK7ow=
552+
github.com/aws/aws-sdk-go-v2/service/workspaces v1.55.0 h1:m1yfaBU2P/pUlecDGfAUg8Z6xOTXzxl1e7p3i5usWRE=
553+
github.com/aws/aws-sdk-go-v2/service/workspaces v1.55.0/go.mod h1:/YN7Ft92lmFXqFWyEpl1kLnbhDZjDL82S4ibIxPK7ow=
554554
github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.27.1 h1:n5cjUhv9JEYqN6JjP7XHOFET5roRUCQTG9xIwQz5U6w=
555555
github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.27.1/go.mod h1:XvRRv60AFt7FKxxcb9OHbx9QxwoFU0hexFUqF7THWR4=
556556
github.com/aws/aws-sdk-go-v2/service/xray v1.31.1 h1:e+SEWAOD2kl/Tt6ovDgbzg/AvM8YVBWBwJmF/190y1A=

internal/provider/fwprovider/provider.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource {
404404
}
405405

406406
typeName := v.TypeName
407+
var modifyPlanFuncs []modifyPlanFunc
407408
interceptors := resourceInterceptors{}
408409
if v.Tags != nil {
409410
// The resource has opted in to transparent tagging.
@@ -430,6 +431,7 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource {
430431
continue
431432
}
432433

434+
modifyPlanFuncs = append(modifyPlanFuncs, setTagsAll)
433435
interceptors = append(interceptors, newTagsResourceInterceptor(v.Tags))
434436
}
435437

@@ -447,9 +449,9 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource {
447449

448450
return ctx, diags
449451
},
450-
interceptors: interceptors,
451-
typeName: typeName,
452-
usesTransparentTagging: v.Tags != nil,
452+
interceptors: interceptors,
453+
modifyPlanFuncs: modifyPlanFuncs,
454+
typeName: typeName,
453455
}
454456
resources = append(resources, func() resource.Resource {
455457
return newWrappedResource(inner, opts)

internal/provider/fwprovider/tags_interceptor.go

+27-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import (
1111
"github.com/hashicorp/terraform-plugin-framework/diag"
1212
"github.com/hashicorp/terraform-plugin-framework/path"
1313
"github.com/hashicorp/terraform-plugin-framework/resource"
14-
"github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
14+
"github.com/hashicorp/terraform-provider-aws/internal/conns"
15+
fwflex "github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
1516
"github.com/hashicorp/terraform-provider-aws/internal/provider/interceptors"
1617
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
1718
"github.com/hashicorp/terraform-provider-aws/internal/types"
@@ -70,7 +71,7 @@ func (r tagsDataSourceInterceptor) read(ctx context.Context, opts interceptorOpt
7071

7172
tags := tagsInContext.TagsOut.UnwrapOrDefault()
7273
// Remove any provider configured ignore_tags and system tags from those returned from the service API.
73-
stateTags := flex.FlattenFrameworkStringValueMapLegacy(ctx, tags.IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
74+
stateTags := fwflex.FlattenFrameworkStringValueMapLegacy(ctx, tags.IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
7475
diags.Append(response.State.SetAttribute(ctx, path.Root(names.AttrTags), tftags.NewMapFromMapValue(stateTags))...)
7576
if diags.HasError() {
7677
return diags
@@ -125,7 +126,7 @@ func (r tagsResourceInterceptor) create(ctx context.Context, opts interceptorOpt
125126
// Set values for unknowns.
126127
// Remove any provider configured ignore_tags and system tags from those passed to the service API.
127128
// Computed tags_all include any provider configured default_tags.
128-
stateTagsAll := flex.FlattenFrameworkStringValueMapLegacy(ctx, tagsInContext.TagsIn.MustUnwrap().IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
129+
stateTagsAll := fwflex.FlattenFrameworkStringValueMapLegacy(ctx, tagsInContext.TagsIn.MustUnwrap().IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
129130
diags.Append(response.State.SetAttribute(ctx, path.Root(names.AttrTagsAll), tftags.NewMapFromMapValue(stateTagsAll))...)
130131
if diags.HasError() {
131132
return diags
@@ -176,15 +177,15 @@ func (r tagsResourceInterceptor) read(ctx context.Context, opts interceptorOptio
176177
// Remove any provider configured ignore_tags and system tags from those returned from the service API.
177178
// The resource's configured tags do not include any provider configured default_tags.
178179
if v := apiTags.IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).ResolveDuplicatesFramework(ctx, c.DefaultTagsConfig(ctx), c.IgnoreTagsConfig(ctx), response, &diags).Map(); len(v) > 0 {
179-
stateTags = tftags.NewMapFromMapValue(flex.FlattenFrameworkStringValueMapLegacy(ctx, v))
180+
stateTags = tftags.NewMapFromMapValue(fwflex.FlattenFrameworkStringValueMapLegacy(ctx, v))
180181
}
181182
diags.Append(response.State.SetAttribute(ctx, path.Root(names.AttrTags), &stateTags)...)
182183
if diags.HasError() {
183184
return diags
184185
}
185186

186187
// Computed tags_all do.
187-
stateTagsAll := flex.FlattenFrameworkStringValueMapLegacy(ctx, apiTags.IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
188+
stateTagsAll := fwflex.FlattenFrameworkStringValueMapLegacy(ctx, apiTags.IgnoreSystem(sp.ServicePackageName()).IgnoreConfig(c.IgnoreTagsConfig(ctx)).Map())
188189
diags.Append(response.State.SetAttribute(ctx, path.Root(names.AttrTagsAll), tftags.NewMapFromMapValue(stateTagsAll))...)
189190
if diags.HasError() {
190191
return diags
@@ -270,3 +271,24 @@ func (r tagsInterceptor) getIdentifier(ctx context.Context, d interface {
270271

271272
return identifier
272273
}
274+
275+
// setTagsAll is a plan modifier that calculates the new value for the `tags_all` attribute.
276+
func setTagsAll(ctx context.Context, meta *conns.AWSClient, request resource.ModifyPlanRequest, response *resource.ModifyPlanResponse) {
277+
// If the entire plan is null, the resource is planned for destruction.
278+
if request.Plan.Raw.IsNull() {
279+
return
280+
}
281+
282+
var planTags tftags.Map
283+
response.Diagnostics.Append(request.Plan.GetAttribute(ctx, path.Root(names.AttrTags), &planTags)...)
284+
if response.Diagnostics.HasError() {
285+
return
286+
}
287+
288+
if planTags.IsWhollyKnown() {
289+
allTags := meta.DefaultTagsConfig(ctx).MergeTags(tftags.New(ctx, planTags)).IgnoreConfig(meta.IgnoreTagsConfig(ctx))
290+
response.Diagnostics.Append(response.Plan.SetAttribute(ctx, path.Root(names.AttrTagsAll), fwflex.FlattenFrameworkStringValueMapLegacy(ctx, allTags.Map()))...)
291+
} else {
292+
response.Diagnostics.Append(response.Plan.SetAttribute(ctx, path.Root(names.AttrTagsAll), tftags.Unknown)...)
293+
}
294+
}

internal/provider/fwprovider/wrap.go

+9-30
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ import (
1414
"github.com/hashicorp/terraform-plugin-log/tflog"
1515
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1616
"github.com/hashicorp/terraform-provider-aws/internal/errs/fwdiag"
17-
fwflex "github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
18-
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
19-
"github.com/hashicorp/terraform-provider-aws/names"
2017
)
2118

2219
// Implemented by (Config|Plan|State).GetAttribute().
@@ -245,12 +242,15 @@ func (w *wrappedEphemeralResource) ValidateConfig(ctx context.Context, request e
245242
}
246243
}
247244

245+
// modifyPlanFunc modifies a Terraform plan.
246+
type modifyPlanFunc func(context.Context, *conns.AWSClient, resource.ModifyPlanRequest, *resource.ModifyPlanResponse)
247+
248248
type wrappedResourceOptions struct {
249249
// bootstrapContext is run on all wrapped methods before any interceptors.
250-
bootstrapContext contextFunc
251-
interceptors resourceInterceptors
252-
typeName string
253-
usesTransparentTagging bool
250+
bootstrapContext contextFunc
251+
interceptors resourceInterceptors
252+
modifyPlanFuncs []modifyPlanFunc
253+
typeName string
254254
}
255255

256256
// wrappedResource represents an interceptor dispatcher for a Plugin Framework resource.
@@ -378,8 +378,8 @@ func (w *wrappedResource) ModifyPlan(ctx context.Context, request resource.Modif
378378
return
379379
}
380380

381-
if w.opts.usesTransparentTagging {
382-
w.setTagsAll(ctx, request, response)
381+
for _, f := range w.opts.modifyPlanFuncs {
382+
f(ctx, w.meta, request, response)
383383
if response.Diagnostics.HasError() {
384384
return
385385
}
@@ -455,24 +455,3 @@ func (w *wrappedResource) MoveState(ctx context.Context) []resource.StateMover {
455455

456456
return nil
457457
}
458-
459-
// setTagsAll is a plan modifier that calculates the new value for the `tags_all` attribute.
460-
func (w *wrappedResource) setTagsAll(ctx context.Context, request resource.ModifyPlanRequest, response *resource.ModifyPlanResponse) {
461-
// If the entire plan is null, the resource is planned for destruction.
462-
if request.Plan.Raw.IsNull() {
463-
return
464-
}
465-
466-
var planTags tftags.Map
467-
response.Diagnostics.Append(request.Plan.GetAttribute(ctx, path.Root(names.AttrTags), &planTags)...)
468-
if response.Diagnostics.HasError() {
469-
return
470-
}
471-
472-
if planTags.IsWhollyKnown() {
473-
allTags := w.meta.DefaultTagsConfig(ctx).MergeTags(tftags.New(ctx, planTags)).IgnoreConfig(w.meta.IgnoreTagsConfig(ctx))
474-
response.Diagnostics.Append(response.Plan.SetAttribute(ctx, path.Root(names.AttrTagsAll), fwflex.FlattenFrameworkStringValueMapLegacy(ctx, allTags.Map()))...)
475-
} else {
476-
response.Diagnostics.Append(response.Plan.SetAttribute(ctx, path.Root(names.AttrTagsAll), tftags.Unknown)...)
477-
}
478-
}

0 commit comments

Comments
 (0)