From df7c50ba694d40276c1fd01ef04085c069635245 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Wed, 8 Nov 2023 11:03:00 -0800 Subject: [PATCH 1/7] Adds support for `https_proxy` and `no_proxy` --- go.mod | 20 +- go.sum | 40 +- internal/conns/config.go | 9 +- internal/conns/config_test.go | 509 +++++++++++++++++++++ internal/provider/fwprovider/provider.go | 10 +- internal/provider/provider.go | 32 +- internal/provider/provider_acc_test.go | 2 + internal/provider/provider_config_test.go | 485 ++++++++++++++++++++ internal/service/kms/secret_data_source.go | 2 +- tools/tfsdk2fw/go.mod | 65 +-- tools/tfsdk2fw/go.sum | 135 +++--- website/docs/index.html.markdown | 18 +- 12 files changed, 1193 insertions(+), 134 deletions(-) create mode 100644 internal/conns/config_test.go diff --git a/go.mod b/go.mod index 9703fd9f9f8..0abc5a7ecf5 100644 --- a/go.mod +++ b/go.mod @@ -88,8 +88,8 @@ require ( github.com/gertd/go-pluralize v0.2.1 github.com/google/go-cmp v0.6.0 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 - github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39 - github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40 + github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41 + github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42 github.com/hashicorp/awspolicyequivalence v1.6.0 github.com/hashicorp/go-cleanhttp v0.5.2 github.com/hashicorp/go-cty v1.4.1-0.20200723130312-85980079f637 @@ -131,13 +131,13 @@ require ( 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-v2/aws/protocol/eventstream v1.5.0 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.2 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.2 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.4.0 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0 // indirect - github.com/aws/aws-sdk-go-v2/service/iam v1.27.0 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2/service/iam v1.27.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.8.2 // indirect @@ -153,7 +153,7 @@ require ( github.com/evanphx/json-patch v0.5.2 // indirect github.com/fatih/color v1.15.0 // indirect github.com/frankban/quicktest v1.14.6 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-test/deep v1.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -186,10 +186,10 @@ 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.1 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0 // indirect + go.opentelemetry.io/otel v1.20.0 // indirect + go.opentelemetry.io/otel/metric v1.20.0 // indirect + go.opentelemetry.io/otel/trace v1.20.0 // indirect golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.14.0 // indirect diff --git a/go.sum b/go.sum index 967f803fc9a..12741bdb26d 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.0 h1:hHgLiIrTRtddC0AK github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.0/go.mod h1:w4I/v3NOWgD+qvs1NPEwhd++1h3XPHFaVxasfY6HlYQ= github.com/aws/aws-sdk-go-v2/config v1.20.0 h1:q2+/mqFhY0J9m3Tb5RGFE3R4sdaUkIe4k2EuDfE3c08= github.com/aws/aws-sdk-go-v2/config v1.20.0/go.mod h1:7+1riCZXyT+sAGvneR5j+Zl1GyfbBUNQurpQTE6FP6k= -github.com/aws/aws-sdk-go-v2/credentials v1.15.2 h1:rKH7khRMxPdD0u3dHecd0Q7NOVw3EUe7AqdkUOkiOGI= -github.com/aws/aws-sdk-go-v2/credentials v1.15.2/go.mod h1:tXM8wmaeAhfC7nZoCxb0FzM/aRaB1m1WQ7x0qlBLq80= +github.com/aws/aws-sdk-go-v2/credentials v1.16.0 h1:sSEHkXonpZBSPcyUBDRlZjxOi14qM/UK7/vfKhGwmTo= +github.com/aws/aws-sdk-go-v2/credentials v1.16.0/go.mod h1:tXM8wmaeAhfC7nZoCxb0FzM/aRaB1m1WQ7x0qlBLq80= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.3 h1:G5KawTAkyHH6WyKQCdHiW4h3PmAXNJpOgwKg3H7sDRE= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.3/go.mod h1:hugKmSFnZB+HgNI1sYGT14BUPZkO6alC/e0AWu+0IAQ= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.13.2 h1:XmPqt2VLMB7dfZ/cGNXBJOFq+Q+VsnEcPW3MqyKAsvY= @@ -82,8 +82,8 @@ github.com/aws/aws-sdk-go-v2/service/directoryservice v1.21.1 h1:Ibo5MkTPTIOZSn6 github.com/aws/aws-sdk-go-v2/service/directoryservice v1.21.1/go.mod h1:kPYABdLUg/Id3MJZMRuPbepH8VXtGZbZD2mW6gM1kS4= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.5.1 h1:XZPm4jWpwYfcZaGWvy2RKWRpQoMAE9Obl7uAXAja8v8= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.5.1/go.mod h1:noDiEWaeR2TLA5R4s7SLp27p7HMMKeTltkvLN/fl0lM= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0 h1:wAG9NailFhGhg8Ngg2YeCtzGmFWc63SYqJKdvN5ZMkE= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0/go.mod h1:ByrosnNlEq6xkA0d+FwB4f0HH/5KWCcgBqVxAt+Rsps= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1 h1:bqSGIS7Nk5EfMKTNDgtaukJQzjOE3LV5Bdz6lRrTsXA= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1/go.mod h1:Fe7bvO6LxNp6WA6y5VmbgW9RRu+g0RlCXpFAmtcHfQs= github.com/aws/aws-sdk-go-v2/service/ec2 v1.133.0 h1:g4qMdFWe9UVMI6PKytU8BBfW7v80dCMdEnLqc8lIDxw= github.com/aws/aws-sdk-go-v2/service/ec2 v1.133.0/go.mod h1:NOPsghjhZRkrVvKIxrDrEL7zhVIFYJsHqdeol50Eodk= github.com/aws/aws-sdk-go-v2/service/eks v1.33.0 h1:6a7enmqn5ehMT6WBCnc/Bq4UAEtiZ1/3OXDVr09NWUM= @@ -98,8 +98,8 @@ github.com/aws/aws-sdk-go-v2/service/glacier v1.18.1 h1:wa9rRTfCZw+RvQJuD/4iPn1r github.com/aws/aws-sdk-go-v2/service/glacier v1.18.1/go.mod h1:ZJhKms6QZ9tiRXtrnMeGgUvbIfBOND/3jpDN7aT+6SQ= github.com/aws/aws-sdk-go-v2/service/healthlake v1.19.1 h1:31Iepf9WjG+A7yn8PlfD9iPzeRTDti7u4xEX627a4ZQ= github.com/aws/aws-sdk-go-v2/service/healthlake v1.19.1/go.mod h1:GblRjVXDixg+NQjMQR9gRcBsQRtG3YMcUGeXhwWG6yI= -github.com/aws/aws-sdk-go-v2/service/iam v1.27.0 h1:Yho1UMoY/Gno30by4l7dXgIdr78t4OuIpw3VT1xz/zE= -github.com/aws/aws-sdk-go-v2/service/iam v1.27.0/go.mod h1:K+kpOBBIGJKPAVdyzzCRR6ssqxpVG6SioxWi2/uWctk= +github.com/aws/aws-sdk-go-v2/service/iam v1.27.1 h1:rPkEOnwPOVop34lpAlA4Dv6x67Ys3moXkPDvBfjgSSo= +github.com/aws/aws-sdk-go-v2/service/iam v1.27.1/go.mod h1:qdQ8NUrhmXE80S54w+LrtHUY+1Fp7cQSRZbJUZKrAcU= github.com/aws/aws-sdk-go-v2/service/identitystore v1.20.1 h1:6Rff8OESjgxil0ynygZdfXFxQuhHKpALtmpdJQ7YyLY= github.com/aws/aws-sdk-go-v2/service/identitystore v1.20.1/go.mod h1:Esf9ujGNJ5wpXL0Xc9cBEab3Svp7ZoejlawyQ/AbW1c= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.19.1 h1:H2hwmUz/njU3nJmOFYr5SEZoRX11SFbgysLQ+rea7QI= @@ -244,8 +244,8 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66D github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= @@ -267,10 +267,10 @@ github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 h1:IUypt/TbXiJBkBbE3926CgnjD8IltAitdn7Yive61DY= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0/go.mod h1:cdTE6F2pCKQobug+RqRaQp7Kz9hIEqiSvpPmb6E5G1w= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39 h1:nyCyZVZJ5CmYelTkCDmC9dO2UgzTB5daeAFn8P9UOtA= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39/go.mod h1:HMcr0msfsuDQCed/AhmdLlRU0IoAcB31hrvQed3JiLc= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40 h1:FLwvItnCr/cu93ZcFdk+eX6AdEpkerbZHMb0ApHfTSM= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40/go.mod h1:BKUjqbpcP+tx0HGno7pGrIEyo2xidvM10VZk23EtcP8= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41 h1:aaXk20kHudR40hpl/4qoM57lgEW0JAV1l1Cw547G2wE= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41/go.mod h1:mN+jBRwrTsDaeBDROT/LVpOtGbX1SFLdZuL+/U4EGGA= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42 h1:Y4N+IDb/M/2wubuTnSrGlHQMHWiiWWS6PgATXZFLGoE= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42/go.mod h1:AZJcpDzBh2Wsfwv2MYTTreac7VQKpcvekxHWKWr/MZo= github.com/hashicorp/awspolicyequivalence v1.6.0 h1:7aadmkalbc5ewStC6g3rljx1iNvP4QyAhg2KsHx8bU8= github.com/hashicorp/awspolicyequivalence v1.6.0/go.mod h1:9IOaIHx+a7C0NfUNk1A93M7kHd5rJ19aoUx37LZGC14= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -430,14 +430,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.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0 h1:IheWOjAlqLJB0oRsfy640dvUy4T5ARTohgUKR23705U= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0/go.mod h1:uJGvUG+4OT1N41mbAgng0iNdOTvv9chnfavACM2z2DA= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0 h1:qmQcwJOEOfNvVOD8H7bVAEipp+6UtnDK3qHGCcjwB9o= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0/go.mod h1:d1FGIeeryqx0a2Oa5oQrK1Ug85AGfFUx+nMtoAwJ4VI= +go.opentelemetry.io/otel v1.20.0 h1:vsb/ggIY+hUjD/zCAQHpzTmndPqv/ml2ArbsbfBYTAc= +go.opentelemetry.io/otel v1.20.0/go.mod h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs= +go.opentelemetry.io/otel/metric v1.20.0 h1:ZlrO8Hu9+GAhnepmRGhSU7/VkpjrNowxRN9GyKR4wzA= +go.opentelemetry.io/otel/metric v1.20.0/go.mod h1:90DRw3nfK4D7Sm/75yQ00gTJxtkBxX+wu6YaNymbpVM= +go.opentelemetry.io/otel/trace v1.20.0 h1:+yxVAPZPbQhbC3OfAkeIVTky6iTFpcr4SiY9om7mXSQ= +go.opentelemetry.io/otel/trace v1.20.0/go.mod h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= diff --git a/internal/conns/config.go b/internal/conns/config.go index 74e3a47ee3c..75b949907c2 100644 --- a/internal/conns/config.go +++ b/internal/conns/config.go @@ -35,10 +35,12 @@ type Config struct { EC2MetadataServiceEndpointMode string Endpoints map[string]string ForbiddenAccountIds []string - HTTPProxy string + HTTPProxy *string + HTTPSProxy *string IgnoreTagsConfig *tftags.IgnoreConfig Insecure bool MaxRetries int + NoProxy string Profile string Region string RetryMode aws_sdkv2.RetryMode @@ -77,8 +79,11 @@ func (c *Config) ConfigureProvider(ctx context.Context, client *AWSClient) (*AWS Insecure: c.Insecure, HTTPClient: client.HTTPClient(), HTTPProxy: c.HTTPProxy, + HTTPSProxy: c.HTTPSProxy, + HTTPProxyMode: awsbase.HTTPProxyModeLegacy, Logger: logger, MaxRetries: c.MaxRetries, + NoProxy: c.NoProxy, Profile: c.Profile, Region: c.Region, RetryMode: c.RetryMode, @@ -167,7 +172,7 @@ func (c *Config) ConfigureProvider(ctx context.Context, client *AWSClient) (*AWS for _, d := range awsDiags { diags = append(diags, diag.Diagnostic{ Severity: baseSeverityToSdkSeverity(d.Severity()), - Summary: fmt.Sprintf("retrieving AWS account details: %s", d.Summary()), + Summary: fmt.Sprintf("Retrieving AWS account details: %s", d.Summary()), Detail: d.Detail(), }) } diff --git a/internal/conns/config_test.go b/internal/conns/config_test.go new file mode 100644 index 00000000000..84ba90bd91f --- /dev/null +++ b/internal/conns/config_test.go @@ -0,0 +1,509 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package conns_test + +import ( + "context" + "fmt" + "maps" + "net/http" + "testing" + + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" + "github.com/google/go-cmp/cmp" + "github.com/hashicorp/aws-sdk-go-base/v2/servicemocks" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + terraformsdk "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-provider-aws/internal/conns" + "github.com/hashicorp/terraform-provider-aws/internal/errs" + "github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag" + "github.com/hashicorp/terraform-provider-aws/internal/provider" +) + +type proxyCase struct { + url string + expectedProxy string +} + +func TestProxyConfig(t *testing.T) { //nolint:paralleltest // uses t.Setenv + cases := map[string]struct { + config map[string]any + environmentVariables map[string]string + expectedDiags diag.Diagnostics + urls []proxyCase + }{ + "no config": { + config: map[string]any{}, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "", + }, + }, + }, + + "http_proxy empty string": { + config: map[string]any{ + "http_proxy": "", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "", + }, + }, + }, + + "http_proxy config": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + }, + expectedDiags: diag.Diagnostics{ + diag.Diagnostic{ + Severity: diag.Warning, + Summary: "Missing HTTPS Proxy", + Detail: fmt.Sprintf( + "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ + "To specify no proxy for HTTPS, set the HTTPS to an empty string.", + "http://http-proxy.test:1234"), + }, + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + }, + }, + + "https_proxy config": { + config: map[string]any{ + "https_proxy": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config https_proxy config": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + "https_proxy": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config https_proxy config empty string": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + "https_proxy": "", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "", + }, + }, + }, + + "https_proxy config http_proxy config empty string": { + config: map[string]any{ + "http_proxy": "", + "https_proxy": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config https_proxy config no_proxy config": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + "https_proxy": "http://https-proxy.test:1234", + "no_proxy": "dont-proxy.test", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "http://dont-proxy.test", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + { + url: "https://dont-proxy.test", + expectedProxy: "", + }, + }, + }, + + "HTTP_PROXY envvar": { + config: map[string]any{}, + environmentVariables: map[string]string{ + "HTTP_PROXY": "http://http-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "", + }, + }, + }, + + "http_proxy envvar": { + config: map[string]any{}, + environmentVariables: map[string]string{ + "http_proxy": "http://http-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "", + }, + }, + }, + + "HTTPS_PROXY envvar": { + config: map[string]any{}, + environmentVariables: map[string]string{ + "HTTPS_PROXY": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "https_proxy envvar": { + config: map[string]any{}, + environmentVariables: map[string]string{ + "https_proxy": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config HTTPS_PROXY envvar": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "HTTPS_PROXY": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config https_proxy envvar": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "https_proxy": "http://https-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + }, + }, + + "http_proxy config NO_PROXY envvar": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "NO_PROXY": "dont-proxy.test", + }, + expectedDiags: diag.Diagnostics{ + diag.Diagnostic{ + Severity: diag.Warning, + Summary: "Missing HTTPS Proxy", + Detail: fmt.Sprintf( + "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ + "To specify no proxy for HTTPS, set the HTTPS to an empty string.", + "http://http-proxy.test:1234"), + }, + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "http://dont-proxy.test", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://dont-proxy.test", + expectedProxy: "", + }, + }, + }, + + "http_proxy config no_proxy envvar": { + config: map[string]any{ + "http_proxy": "http://http-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "no_proxy": "dont-proxy.test", + }, + expectedDiags: diag.Diagnostics{ + diag.Diagnostic{ + Severity: diag.Warning, + Summary: "Missing HTTPS Proxy", + Detail: fmt.Sprintf( + "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ + "To specify no proxy for HTTPS, set the HTTPS to an empty string.", + "http://http-proxy.test:1234"), + }, + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "http://dont-proxy.test", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "https://dont-proxy.test", + expectedProxy: "", + }, + }, + }, + + "HTTP_PROXY envvar HTTPS_PROXY envvar NO_PROXY envvar": { + config: map[string]any{}, + environmentVariables: map[string]string{ + "HTTP_PROXY": "http://http-proxy.test:1234", + "HTTPS_PROXY": "http://https-proxy.test:1234", + "NO_PROXY": "dont-proxy.test", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://http-proxy.test:1234", + }, + { + url: "http://dont-proxy.test", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://https-proxy.test:1234", + }, + { + url: "https://dont-proxy.test", + expectedProxy: "", + }, + }, + }, + + "http_proxy config overrides HTTP_PROXY envvar": { + config: map[string]any{ + "http_proxy": "http://config-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "HTTP_PROXY": "http://envvar-proxy.test:1234", + }, + expectedDiags: diag.Diagnostics{ + diag.Diagnostic{ + Severity: diag.Warning, + Summary: "Missing HTTPS Proxy", + Detail: fmt.Sprintf( + "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ + "To specify no proxy for HTTPS, set the HTTPS to an empty string.", + "http://config-proxy.test:1234"), + }, + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "http://config-proxy.test:1234", + }, + { + url: "https://example.com", + expectedProxy: "http://config-proxy.test:1234", + }, + }, + }, + + "https_proxy config overrides HTTPS_PROXY envvar": { + config: map[string]any{ + "https_proxy": "http://config-proxy.test:1234", + }, + environmentVariables: map[string]string{ + "HTTPS_PROXY": "http://envvar-proxy.test:1234", + }, + urls: []proxyCase{ + { + url: "http://example.com", + expectedProxy: "", + }, + { + url: "https://example.com", + expectedProxy: "http://config-proxy.test:1234", + }, + }, + }, + } + + for name, tc := range cases { //nolint:paralleltest // uses t.Setenv + t.Run(name, func(t *testing.T) { + ctx := context.Background() + + config := map[string]any{ + "access_key": "StaticAccessKey", + "secret_key": servicemocks.MockStaticSecretKey, + "region": "us-west-2", + "skip_credentials_validation": true, + "skip_requesting_account_id": true, + } + + for k, v := range tc.environmentVariables { + t.Setenv(k, v) + } + + maps.Copy(config, tc.config) + + p, err := provider.New(ctx) + if err != nil { + t.Fatal(err) + } + + expectedDiags := tc.expectedDiags + expectedDiags = append( + expectedDiags, + errs.NewWarningDiagnostic( + "AWS account ID not found for provider", + "See https://registry.terraform.io/providers/hashicorp/aws/latest/docs#skip_requesting_account_id for implications.", + ), + ) + + diags := p.Configure(ctx, terraformsdk.NewResourceConfigRaw(config)) + + if diff := cmp.Diff(diags, expectedDiags, cmp.Comparer(sdkdiag.Comparer)); diff != "" { + t.Errorf("unexpected diagnostics difference: %s", diff) + } + + meta := p.Meta().(*conns.AWSClient) + + client := meta.AwsConfig().HTTPClient + bClient, ok := client.(*awshttp.BuildableClient) + if !ok { + t.Fatalf("expected awshttp.BuildableClient, got %T", client) + } + transport := bClient.GetTransport() + proxyF := transport.Proxy + + for _, url := range tc.urls { + req, _ := http.NewRequest("GET", url.url, nil) + pUrl, err := proxyF(req) + if err != nil { + t.Fatalf("unexpected error: %s", err) + } + if url.expectedProxy != "" { + if pUrl == nil { + t.Errorf("expected proxy for %q, got none", url.url) + } else if pUrl.String() != url.expectedProxy { + t.Errorf("expected proxy %q for %q, got %q", url.expectedProxy, url.url, pUrl.String()) + } + } else { + if pUrl != nil { + t.Errorf("expected no proxy for %q, got %q", url.url, pUrl.String()) + } + } + } + }) + } +} diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go index 85a814022bd..6dbe55dfd5f 100644 --- a/internal/provider/fwprovider/provider.go +++ b/internal/provider/fwprovider/provider.go @@ -69,7 +69,11 @@ func (p *fwprovider) Schema(ctx context.Context, req provider.SchemaRequest, res }, "http_proxy": schema.StringAttribute{ Optional: true, - Description: "The address of an HTTP proxy to use when accessing the AWS API. Can also be configured using the `HTTP_PROXY` or `HTTPS_PROXY` environment variables.", + Description: "URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.", + }, + "https_proxy": schema.StringAttribute{ + Optional: true, + Description: "URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables.", }, "insecure": schema.BoolAttribute{ Optional: true, @@ -79,6 +83,10 @@ func (p *fwprovider) Schema(ctx context.Context, req provider.SchemaRequest, res Optional: true, Description: "The maximum number of times an AWS API request is\nbeing executed. If the API request still fails, an error is\nthrown.", }, + "no_proxy": schema.StringAttribute{ + Optional: true, + Description: "Comma-separated list of hosts that should not use HTTP or HTTPS proxies. Can also be set using the `NO_PROXY` or `no_proxy` environment variables.", + }, "profile": schema.StringAttribute{ Optional: true, Description: "The profile for API operations. If not set, the default profile\ncreated with `aws configure` will be used.", diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 0bcb6d6a98e..58adbcd531a 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -95,8 +95,14 @@ func New(ctx context.Context) (*schema.Provider, error) { "http_proxy": { Type: schema.TypeString, Optional: true, - Description: "The address of an HTTP proxy to use when accessing the AWS API. " + - "Can also be configured using the `HTTP_PROXY` or `HTTPS_PROXY` environment variables.", + Description: "URL of a proxy to use for HTTP requests when accessing the AWS API. " + + "Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.", + }, + "https_proxy": { + Type: schema.TypeString, + Optional: true, + Description: "URL of a proxy to use for HTTPS requests when accessing the AWS API. " + + "Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables.", }, "ignore_tags": { Type: schema.TypeList, @@ -133,6 +139,12 @@ func New(ctx context.Context) (*schema.Provider, error) { "being executed. If the API request still fails, an error is\n" + "thrown.", }, + "no_proxy": { + Type: schema.TypeString, + Optional: true, + Description: "Comma-separated list of hosts that should not use HTTP or HTTPS proxies. " + + "Can also be set using the `NO_PROXY` or `no_proxy` environment variables.", + }, "profile": { Type: schema.TypeString, Optional: true, @@ -463,7 +475,6 @@ func configure(ctx context.Context, provider *schema.Provider, d *schema.Resourc EC2MetadataServiceEndpoint: d.Get("ec2_metadata_service_endpoint").(string), EC2MetadataServiceEndpointMode: d.Get("ec2_metadata_service_endpoint_mode").(string), Endpoints: make(map[string]string), - HTTPProxy: d.Get("http_proxy").(string), Insecure: d.Get("insecure").(bool), MaxRetries: 25, // Set default here, not in schema (muxing with v6 provider). Profile: d.Get("profile").(string), @@ -536,6 +547,21 @@ func configure(ctx context.Context, provider *schema.Provider, d *schema.Resourc config.ForbiddenAccountIds = flex.ExpandStringValueSet(v.(*schema.Set)) } + if v, ok := d.GetOkExists("http_proxy"); ok { + if s, sok := v.(string); sok { + config.HTTPProxy = aws.String(s) + } + } + if v, ok := d.GetOkExists("https_proxy"); ok { + if s, sok := v.(string); sok { + config.HTTPSProxy = aws.String(s) + } + } + + if v, ok := d.Get("no_proxy").(string); ok && v != "" { + config.NoProxy = v + } + if v, ok := d.GetOk("ignore_tags"); ok && len(v.([]interface{})) > 0 && v.([]interface{})[0] != nil { config.IgnoreTagsConfig = expandIgnoreTags(ctx, v.([]interface{})[0].(map[string]interface{})) } diff --git a/internal/provider/provider_acc_test.go b/internal/provider/provider_acc_test.go index 8c7ec0fecbc..5c15380a701 100644 --- a/internal/provider/provider_acc_test.go +++ b/internal/provider/provider_acc_test.go @@ -154,6 +154,7 @@ func TestAccProvider_endpoints(t *testing.T) { }) } +// TODO: revert this test, it's being used as a simple placeholder func TestAccProvider_fipsEndpoint(t *testing.T) { ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) @@ -919,6 +920,7 @@ provider "aws" { endpoints { s3 = %[1]q } + https_proxy = "" } resource "aws_s3_bucket" "test" { diff --git a/internal/provider/provider_config_test.go b/internal/provider/provider_config_test.go index cfa52dbb45f..1c815cfe575 100644 --- a/internal/provider/provider_config_test.go +++ b/internal/provider/provider_config_test.go @@ -380,3 +380,488 @@ func TestProviderConfig_Authentication_SSO(t *testing.T) { //nolint:paralleltest func TestProviderConfig_Authentication_LegacySSO(t *testing.T) { //nolint:paralleltest configtesting.LegacySSO(t, &testDriver{}) } + +// func TestAccProvider_ProxyConfig(t *testing.T) { +// ctx := acctest.Context(t) +// var provider *schema.Provider + +// testcases := map[string]struct { +// config map[string]any +// environmentVariables map[string]string +// expectedDiags diag.Diagnostics +// urls []proxyCase +// }{ +// "no config": { +// config: map[string]any{}, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "", +// }, +// }, +// }, + +// "http_proxy empty string": { +// config: map[string]any{ +// "http_proxy": "", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "", +// }, +// }, +// }, + +// "http_proxy config": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// expectedDiags: diag.Diagnostics{ +// diag.Diagnostic{ +// Severity: diag.Warning, +// Summary: "Missing HTTPS Proxy", +// Detail: fmt.Sprintf( +// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ +// "To specify no proxy for HTTPS, set the HTTPS to an empty string", +// "http://http-proxy.test:1234"), +// }, +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// }, +// }, + +// "https_proxy config": { +// config: map[string]any{ +// "https_proxy": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config https_proxy config": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// "https_proxy": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config https_proxy config empty string": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// "https_proxy": "", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "", +// }, +// }, +// }, + +// "https_proxy config http_proxy config empty string": { +// config: map[string]any{ +// "http_proxy": "", +// "https_proxy": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config https_proxy config no_proxy config": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// "https_proxy": "http://https-proxy.test:1234", +// "no_proxy": "dont-proxy.test", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "http://dont-proxy.test", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// { +// url: "https://dont-proxy.test", +// expectedProxy: "", +// }, +// }, +// }, + +// "HTTP_PROXY envvar": { +// config: map[string]any{}, +// environmentVariables: map[string]string{ +// "HTTP_PROXY": "http://http-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "", +// }, +// }, +// }, + +// "http_proxy envvar": { +// config: map[string]any{}, +// environmentVariables: map[string]string{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "", +// }, +// }, +// }, + +// "HTTPS_PROXY envvar": { +// config: map[string]any{}, +// environmentVariables: map[string]string{ +// "HTTPS_PROXY": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "https_proxy envvar": { +// config: map[string]any{}, +// environmentVariables: map[string]string{ +// "https_proxy": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config HTTPS_PROXY envvar": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "HTTPS_PROXY": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config https_proxy envvar": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "https_proxy": "http://https-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// }, +// }, + +// "http_proxy config NO_PROXY envvar": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "NO_PROXY": "dont-proxy.test", +// }, +// expectedDiags: diag.Diagnostics{ +// diag.Diagnostic{ +// Severity: diag.Warning, +// Summary: "Missing HTTPS Proxy", +// Detail: fmt.Sprintf( +// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ +// "To specify no proxy for HTTPS, set the HTTPS to an empty string", +// "http://http-proxy.test:1234"), +// }, +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "http://dont-proxy.test", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://dont-proxy.test", +// expectedProxy: "", +// }, +// }, +// }, + +// "http_proxy config no_proxy envvar": { +// config: map[string]any{ +// "http_proxy": "http://http-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "no_proxy": "dont-proxy.test", +// }, +// expectedDiags: diag.Diagnostics{ +// diag.Diagnostic{ +// Severity: diag.Warning, +// Summary: "Missing HTTPS Proxy", +// Detail: fmt.Sprintf( +// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ +// "To specify no proxy for HTTPS, set the HTTPS to an empty string", +// "http://http-proxy.test:1234"), +// }, +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "http://dont-proxy.test", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "https://dont-proxy.test", +// expectedProxy: "", +// }, +// }, +// }, + +// "HTTP_PROXY envvar HTTPS_PROXY envvar NO_PROXY envvar": { +// config: map[string]any{}, +// environmentVariables: map[string]string{ +// "HTTP_PROXY": "http://http-proxy.test:1234", +// "HTTPS_PROXY": "http://https-proxy.test:1234", +// "NO_PROXY": "dont-proxy.test", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://http-proxy.test:1234", +// }, +// { +// url: "http://dont-proxy.test", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://https-proxy.test:1234", +// }, +// { +// url: "https://dont-proxy.test", +// expectedProxy: "", +// }, +// }, +// }, + +// "http_proxy config overrides HTTP_PROXY envvar": { +// config: map[string]any{ +// "http_proxy": "http://config-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "HTTP_PROXY": "http://envvar-proxy.test:1234", +// }, +// expectedDiags: diag.Diagnostics{ +// diag.Diagnostic{ +// Severity: diag.Warning, +// Summary: "Missing HTTPS Proxy", +// Detail: fmt.Sprintf( +// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ +// "To specify no proxy for HTTPS, set the HTTPS to an empty string", +// "http://config-proxy.test:1234"), +// }, +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "http://config-proxy.test:1234", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://config-proxy.test:1234", +// }, +// }, +// }, + +// "https_proxy config overrides HTTPS_PROXY envvar": { +// config: map[string]any{ +// "https_proxy": "http://config-proxy.test:1234", +// }, +// environmentVariables: map[string]string{ +// "HTTPS_PROXY": "http://envvar-proxy.test:1234", +// }, +// urls: []proxyCase{ +// { +// url: "http://example.com", +// expectedProxy: "", +// }, +// { +// url: "https://example.com", +// expectedProxy: "http://config-proxy.test:1234", +// }, +// }, +// }, +// } +// resource.Test(t, resource.TestCase{ +// PreCheck: func() { acctest.PreCheck(ctx, t) }, +// ErrorCheck: acctest.ErrorCheck(t), +// ProtoV5ProviderFactories: testAccProtoV5ProviderFactoriesInternal(ctx, t, &provider), +// CheckDestroy: nil, +// Steps: []resource.TestStep{ +// { +// Config: testAccProviderConfig_proxyConfig(), +// Check: resource.ComposeTestCheckFunc( +// testAccCheckProviderProxyConfig(ctx, t, &provider, map[string]string{}), +// ), +// }, +// }, +// }) +// } + +// type proxyCase struct { +// url string +// expectedProxy string +// } + +// func testAccCheckProviderProxyConfig(ctx context.Context, t *testing.T, p **schema.Provider, urls []proxyCase) resource.TestCheckFunc { +// return func(s *terraform.State) error { +// if p == nil || *p == nil || (*p).Meta() == nil || (*p).Meta().(*conns.AWSClient) == nil { +// return fmt.Errorf("provider not initialized") +// } + +// providerClient := (*p).Meta().(*conns.AWSClient) +// client := providerClient.AwsConfig().HTTPClient +// bClient, ok := client.(*awshttp.BuildableClient) +// if !ok { +// t.Fatalf("expected awshttp.BuildableClient, got %T", client) +// } +// transport := bClient.GetTransport() +// proxyF := transport.Proxy + +// for _, url := range tc.urls { +// req, _ := http.NewRequest("GET", url.url, nil) +// pUrl, err := proxyF(req) +// if err != nil { +// t.Fatalf("unexpected error: %s", err) +// } +// if url.expectedProxy != "" { +// if pUrl == nil { +// t.Errorf("expected proxy for %q, got none", url.url) +// } else if pUrl.String() != url.expectedProxy { +// t.Errorf("expected proxy %q for %q, got %q", url.expectedProxy, url.url, pUrl.String()) +// } +// } else { +// if pUrl != nil { +// t.Errorf("expected no proxy for %q, got %q", url.url, pUrl.String()) +// } +// } +// } +// } +// } + +// func testAccProviderConfig_proxyConfig() string { +// //lintignore:AT004 +// return acctest.ConfigCompose( +// testAccProviderConfig_base, fmt.Sprintf(` +// provider "aws" { +// default_tags {} + +// skip_credentials_validation = true +// skip_metadata_api_check = true +// skip_requesting_account_id = true +// } +// `)) +// } diff --git a/internal/service/kms/secret_data_source.go b/internal/service/kms/secret_data_source.go index 8fb9244ad2d..62a768f6b3c 100644 --- a/internal/service/kms/secret_data_source.go +++ b/internal/service/kms/secret_data_source.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -const SecretRemovedMessage = "This data source has been replaced with the `aws_kms_secrets` data source. Upgrade information is available at: https://www.terraform.io/docs/providers/aws/guides/version-2-upgrade.html#data-source-aws_kms_secret" +const SecretRemovedMessage = "This data source has been replaced with the `aws_kms_secrets` data source. Upgrade information is available at: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/version-2-upgrade.html#data-source-aws_kms_secret" // @SDKDataSource("aws_kms_secret") func DataSourceSecret() *schema.Resource { diff --git a/tools/tfsdk2fw/go.mod b/tools/tfsdk2fw/go.mod index f0f8d96b59c..255dc5a86dd 100644 --- a/tools/tfsdk2fw/go.mod +++ b/tools/tfsdk2fw/go.mod @@ -3,7 +3,7 @@ module github.com/hashicorp/terraform-provider-aws/tools/tfsdk2fw go 1.20 require ( - github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 + github.com/hashicorp/terraform-plugin-sdk/v2 v2.30.0 github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220322001452-8f7a597d0c24 golang.org/x/exp v0.0.0-20231006140011-7918f672742d ) @@ -17,11 +17,11 @@ 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.47.7 // indirect + github.com/aws/aws-sdk-go v1.47.12 // indirect github.com/aws/aws-sdk-go-v2 v1.22.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/config v1.22.1 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.0 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.2 // indirect @@ -35,25 +35,27 @@ require ( github.com/aws/aws-sdk-go-v2/service/athena v1.34.1 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/bedrock v1.3.1 // indirect - github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.7.0 // indirect github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.14.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.17.1 // indirect github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.19.1 // indirect - github.com/aws/aws-sdk-go-v2/service/comprehend v1.27.1 // indirect - github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.1 // indirect + github.com/aws/aws-sdk-go-v2/service/comprehend v1.28.0 // indirect + github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.2 // indirect + github.com/aws/aws-sdk-go-v2/service/connectcases v1.11.1 // indirect + github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.32.1 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.21.1 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.5.1 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.130.1 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.32.1 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.133.0 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.13.1 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.16.1 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.19.1 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.18.1 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.19.1 // indirect - github.com/aws/aws-sdk-go-v2/service/iam v1.27.0 // indirect + github.com/aws/aws-sdk-go-v2/service/iam v1.27.1 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/inspector2 v1.19.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.0 // indirect @@ -66,7 +68,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/kafka v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/service/kendra v1.46.1 // indirect github.com/aws/aws-sdk-go-v2/service/keyspaces v1.6.1 // indirect - github.com/aws/aws-sdk-go-v2/service/lambda v1.44.1 // indirect + github.com/aws/aws-sdk-go-v2/service/lambda v1.46.0 // indirect github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.36.1 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.31.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.23.1 // indirect @@ -74,24 +76,25 @@ require ( github.com/aws/aws-sdk-go-v2/service/mediapackage v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.6.1 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/service/pipes v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/service/osis v1.4.1 // indirect + github.com/aws/aws-sdk-go-v2/service/pipes v1.7.0 // indirect github.com/aws/aws-sdk-go-v2/service/pricing v1.23.1 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.18.1 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.12.1 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.62.2 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.62.3 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.22.1 // indirect - github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.6.2 // indirect + github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.7.0 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.18.1 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.18.1 // indirect github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.5.1 // indirect github.com/aws/aws-sdk-go-v2/service/route53domains v1.19.1 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.42.1 // indirect - github.com/aws/aws-sdk-go-v2/service/s3control v1.36.1 // indirect + github.com/aws/aws-sdk-go-v2/service/s3control v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.5.1 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.9.1 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.18.1 // indirect github.com/aws/aws-sdk-go-v2/service/sesv2 v1.23.1 // indirect - github.com/aws/aws-sdk-go-v2/service/signer v1.18.1 // indirect + github.com/aws/aws-sdk-go-v2/service/signer v1.18.2 // indirect github.com/aws/aws-sdk-go-v2/service/sns v1.25.1 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/ssm v1.42.1 // indirect @@ -114,14 +117,14 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/fatih/color v1.15.0 // indirect github.com/gertd/go-pluralize v0.2.1 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/uuid v1.3.1 // indirect github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 // indirect - github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39 // indirect - github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40 // indirect + github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41 // indirect + github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42 // indirect github.com/hashicorp/awspolicyequivalence v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect @@ -132,19 +135,19 @@ require ( github.com/hashicorp/go-plugin v1.5.2 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hc-install v0.6.0 // indirect - github.com/hashicorp/hcl/v2 v2.18.0 // indirect + github.com/hashicorp/hc-install v0.6.1 // indirect + github.com/hashicorp/hcl/v2 v2.19.1 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.19.0 // indirect github.com/hashicorp/terraform-json v0.17.1 // indirect github.com/hashicorp/terraform-plugin-framework v1.4.2 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.19.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.19.1 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.12.0 // indirect github.com/hashicorp/terraform-plugin-testing v1.5.1 // indirect - github.com/hashicorp/terraform-registry-address v0.2.2 // indirect + github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/huandu/xstrings v1.4.0 // indirect @@ -166,16 +169,16 @@ require ( github.com/shopspring/decimal v1.3.1 // indirect github.com/spf13/cast v1.5.1 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect - github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect + github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect 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.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect + github.com/zclconf/go-cty v1.14.1 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0 // indirect + go.opentelemetry.io/otel v1.20.0 // indirect + go.opentelemetry.io/otel/metric v1.20.0 // indirect + go.opentelemetry.io/otel/trace v1.20.0 // indirect golang.org/x/crypto v0.15.0 // indirect golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.17.0 // indirect @@ -183,7 +186,7 @@ require ( golang.org/x/text v0.14.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/grpc v1.58.2 // indirect + google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/tools/tfsdk2fw/go.sum b/tools/tfsdk2fw/go.sum index b22da096237..369fe0d7711 100644 --- a/tools/tfsdk2fw/go.sum +++ b/tools/tfsdk2fw/go.sum @@ -22,16 +22,16 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmms github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 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.47.7 h1:Y1J7g48WAzO4dYGQELbWJ57rASV8G7rd4u9hDB+AevU= -github.com/aws/aws-sdk-go v1.47.7/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.47.12 h1:1daICVijigVEXCzhg27A5d7hbkR4wODPGn9GHyBclKM= +github.com/aws/aws-sdk-go v1.47.12/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.22.2 h1:lV0U8fnhAnPz8YcdmZVV60+tr6CakHzqA6P8T46ExJI= github.com/aws/aws-sdk-go-v2 v1.22.2/go.mod h1:Kd0OJtkW3Q0M0lUWGszapWjEvrXDzRW+D21JNsroB+c= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.0 h1:hHgLiIrTRtddC0AKcJr5s7i/hLgcpTt+q/FKxf1Zayk= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.0/go.mod h1:w4I/v3NOWgD+qvs1NPEwhd++1h3XPHFaVxasfY6HlYQ= github.com/aws/aws-sdk-go-v2/config v1.22.1 h1:UrRYnF7mXCGuKmZWlczOXeH0WUbQpi/gseQIPtrhme8= github.com/aws/aws-sdk-go-v2/config v1.22.1/go.mod h1:2eWgw5lps8fKI7LZVTrRTYP6HE6k/uEFUuTSHfXwqP0= -github.com/aws/aws-sdk-go-v2/credentials v1.15.2 h1:rKH7khRMxPdD0u3dHecd0Q7NOVw3EUe7AqdkUOkiOGI= -github.com/aws/aws-sdk-go-v2/credentials v1.15.2/go.mod h1:tXM8wmaeAhfC7nZoCxb0FzM/aRaB1m1WQ7x0qlBLq80= +github.com/aws/aws-sdk-go-v2/credentials v1.16.0 h1:sSEHkXonpZBSPcyUBDRlZjxOi14qM/UK7/vfKhGwmTo= +github.com/aws/aws-sdk-go-v2/credentials v1.16.0/go.mod h1:tXM8wmaeAhfC7nZoCxb0FzM/aRaB1m1WQ7x0qlBLq80= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.3 h1:G5KawTAkyHH6WyKQCdHiW4h3PmAXNJpOgwKg3H7sDRE= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.3/go.mod h1:hugKmSFnZB+HgNI1sYGT14BUPZkO6alC/e0AWu+0IAQ= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.13.2 h1:XmPqt2VLMB7dfZ/cGNXBJOFq+Q+VsnEcPW3MqyKAsvY= @@ -58,32 +58,36 @@ github.com/aws/aws-sdk-go-v2/service/auditmanager v1.29.1 h1:qeUpRNt719FxxOv0OIb github.com/aws/aws-sdk-go-v2/service/auditmanager v1.29.1/go.mod h1:Ta+K43GimomnNMOSgZBHDy6itNw8zfhcJoSVkLWCPiE= github.com/aws/aws-sdk-go-v2/service/bedrock v1.3.1 h1:lAbJ/wQ96QZPbgMGkwy4MkwYBE0fSkHrsCqpdzKB8FA= github.com/aws/aws-sdk-go-v2/service/bedrock v1.3.1/go.mod h1:T6sGivDDiUgXY/R3+S9t5oRR0XJiUeKAXyyw3LRdTK4= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.6.1 h1:wKJhy1KwWzS24VIqQsTlq0gFZuJuwJVgrNLr4GOu8aA= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.6.1/go.mod h1:1uZJJhBfD+zak0t687UE2IQ8t8hugY6bpM67IpLcYK8= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.7.0 h1:Tzr0M3HxHIjFtxxPzsKE9xeLOrWCfJXl5HDCgkmiylE= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.7.0/go.mod h1:1uZJJhBfD+zak0t687UE2IQ8t8hugY6bpM67IpLcYK8= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.14.2 h1:wm8zm7z6Gl+5O4K5DbZAm1Q37W2SGX4OrP9VOVPuHvc= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.14.2/go.mod h1:PsNbJnRfd+PDuV0zZ55KDBSdDSOb/SRcD3FFPFxXnUI= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.26.1 h1:er7Ch29v47RlS7oMIPgzB5myB1FCE0+ZHwHXpfuWemQ= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.26.1/go.mod h1:lpRt5/CBzqTtrB4sI7J4WH5E/QoKok4RnxRQjovF/kA= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.27.0 h1:EfzUo8opXSJQQwvamM75qEcwRA0Sx09cFXwP7kk8zXw= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.27.0/go.mod h1:lpRt5/CBzqTtrB4sI7J4WH5E/QoKok4RnxRQjovF/kA= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.7.1 h1:dk3fMDjS4mgadx4I519Elhuza+0BzOtHY+/qHk6JFmI= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.7.1/go.mod h1:GUwM4rFSzZKZU+Zu74bauU86U5uCrRnJunMUbTBwztE= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.17.1 h1:VcafeIts2qCKpmv9rzxCLbGhsYb+FNOhFoJQdog4j1o= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.17.1/go.mod h1:/j4ej5XPqwoxrm5y3e4z2zV6CboH17Pphm4lWXqCLAw= github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.19.1 h1:8WjHh475putyNORU2wuHY1WPBCF07DAFZ5Xnbr/FhGc= github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.19.1/go.mod h1:obrOe0irBQjhrwTABZf33NpNqt1DpJ/wwvGAvnDOueM= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.27.1 h1:PdSYU98t5YrETR8yDq1M2QsHnZMtcxcLlN40e39bVBQ= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.27.1/go.mod h1:ovD+H1BpWXReyAURukl5aQ+Xg8Clj6JbfLduYWACuUk= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.1 h1:0FgNwZQsO3Ci8b7SwEkFIBvVCLLk0on+Fjr001FcUwU= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.1/go.mod h1:n5DicHkOvVD11sfGm9vQ+d4FVDWwEOdC6m1wHO6PnzY= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.28.0 h1:alcB5cgTqAVS6VrBge/EP+Cw0GGeBxRmO3aBd3WqlsQ= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.28.0/go.mod h1:ovD+H1BpWXReyAURukl5aQ+Xg8Clj6JbfLduYWACuUk= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.2 h1:iYdPIjmXm/LZrWywPC7oNO1y+qDW+7SfCMus+ykOwtY= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.29.2/go.mod h1:n5DicHkOvVD11sfGm9vQ+d4FVDWwEOdC6m1wHO6PnzY= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.11.1 h1:ZrJh+yLgZ/ZFP227/xFFyApb8vbnFXKrMgd+OuheB7s= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.11.1/go.mod h1:OffLoVKwb8dif5FVb7fisCLeVfF5bWZBLHzuQxkFRFU= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.32.1 h1:yG6zkv4gp8Ilbq6p8YQY1swwwzcx8XCzZh9N9m+NG70= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.32.1/go.mod h1:K85FMsb7IidNqM3GeAyZN+7nLvDMdMlapgfdvC7DysQ= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.21.1 h1:Ibo5MkTPTIOZSn6xkIV+Fs+zMp3Z35czTP9cYN9rwQI= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.21.1/go.mod h1:kPYABdLUg/Id3MJZMRuPbepH8VXtGZbZD2mW6gM1kS4= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.5.1 h1:XZPm4jWpwYfcZaGWvy2RKWRpQoMAE9Obl7uAXAja8v8= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.5.1/go.mod h1:noDiEWaeR2TLA5R4s7SLp27p7HMMKeTltkvLN/fl0lM= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0 h1:wAG9NailFhGhg8Ngg2YeCtzGmFWc63SYqJKdvN5ZMkE= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.0/go.mod h1:ByrosnNlEq6xkA0d+FwB4f0HH/5KWCcgBqVxAt+Rsps= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.130.1 h1:RUGlwB1RWjiluFvURjZZ7h09FbcmKvbCifsI6qfUWfA= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.130.1/go.mod h1:NOPsghjhZRkrVvKIxrDrEL7zhVIFYJsHqdeol50Eodk= -github.com/aws/aws-sdk-go-v2/service/eks v1.32.1 h1:/XlumQbKyl1PMCuQNzJh6AH/cbmflZdWtylvV5o6v9U= -github.com/aws/aws-sdk-go-v2/service/eks v1.32.1/go.mod h1:Caw+bBvj+bjrHNuqmS9ZqSZow77sgF5TQGZy3zY0egA= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1 h1:bqSGIS7Nk5EfMKTNDgtaukJQzjOE3LV5Bdz6lRrTsXA= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.25.1/go.mod h1:Fe7bvO6LxNp6WA6y5VmbgW9RRu+g0RlCXpFAmtcHfQs= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.133.0 h1:g4qMdFWe9UVMI6PKytU8BBfW7v80dCMdEnLqc8lIDxw= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.133.0/go.mod h1:NOPsghjhZRkrVvKIxrDrEL7zhVIFYJsHqdeol50Eodk= +github.com/aws/aws-sdk-go-v2/service/eks v1.33.0 h1:6a7enmqn5ehMT6WBCnc/Bq4UAEtiZ1/3OXDVr09NWUM= +github.com/aws/aws-sdk-go-v2/service/eks v1.33.0/go.mod h1:Caw+bBvj+bjrHNuqmS9ZqSZow77sgF5TQGZy3zY0egA= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.13.1 h1:HhYBETZd3aNmtrlMbJxRf9DlGRPKrOFI0lnvzooWGMA= github.com/aws/aws-sdk-go-v2/service/emrserverless v1.13.1/go.mod h1:GI2hWXh+a2U1N4a4ODnXQ3aON1Cjt2jijCa9H+3S6kc= github.com/aws/aws-sdk-go-v2/service/finspace v1.16.1 h1:g1qJUOmCGs4UH5XyBKDr+jgz3bzFv4WBduMytd/2sOs= @@ -94,8 +98,8 @@ github.com/aws/aws-sdk-go-v2/service/glacier v1.18.1 h1:wa9rRTfCZw+RvQJuD/4iPn1r github.com/aws/aws-sdk-go-v2/service/glacier v1.18.1/go.mod h1:ZJhKms6QZ9tiRXtrnMeGgUvbIfBOND/3jpDN7aT+6SQ= github.com/aws/aws-sdk-go-v2/service/healthlake v1.19.1 h1:31Iepf9WjG+A7yn8PlfD9iPzeRTDti7u4xEX627a4ZQ= github.com/aws/aws-sdk-go-v2/service/healthlake v1.19.1/go.mod h1:GblRjVXDixg+NQjMQR9gRcBsQRtG3YMcUGeXhwWG6yI= -github.com/aws/aws-sdk-go-v2/service/iam v1.27.0 h1:Yho1UMoY/Gno30by4l7dXgIdr78t4OuIpw3VT1xz/zE= -github.com/aws/aws-sdk-go-v2/service/iam v1.27.0/go.mod h1:K+kpOBBIGJKPAVdyzzCRR6ssqxpVG6SioxWi2/uWctk= +github.com/aws/aws-sdk-go-v2/service/iam v1.27.1 h1:rPkEOnwPOVop34lpAlA4Dv6x67Ys3moXkPDvBfjgSSo= +github.com/aws/aws-sdk-go-v2/service/iam v1.27.1/go.mod h1:qdQ8NUrhmXE80S54w+LrtHUY+1Fp7cQSRZbJUZKrAcU= github.com/aws/aws-sdk-go-v2/service/identitystore v1.20.1 h1:6Rff8OESjgxil0ynygZdfXFxQuhHKpALtmpdJQ7YyLY= github.com/aws/aws-sdk-go-v2/service/identitystore v1.20.1/go.mod h1:Esf9ujGNJ5wpXL0Xc9cBEab3Svp7ZoejlawyQ/AbW1c= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.19.1 h1:H2hwmUz/njU3nJmOFYr5SEZoRX11SFbgysLQ+rea7QI= @@ -120,8 +124,8 @@ github.com/aws/aws-sdk-go-v2/service/kendra v1.46.1 h1:Yp15j21FtRU9wLq0y3sE2FFmp github.com/aws/aws-sdk-go-v2/service/kendra v1.46.1/go.mod h1:JDd/Dcekrjr3gvhgGdNRdEw9jol71hvymloOTTCIa54= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.6.1 h1:sBpNQhFDGKxqf9ckJiM9KD3iyu3yx/AYi24HO4ETJpY= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.6.1/go.mod h1:Slzp4WwGQaIIy5i70zI2Gw+8uBooKSiPtCJ2ZBcPiHU= -github.com/aws/aws-sdk-go-v2/service/lambda v1.44.1 h1:aFjoBa15SVKbNEISEEUc4wkANdvYtML2VMR7rKDknv8= -github.com/aws/aws-sdk-go-v2/service/lambda v1.44.1/go.mod h1:7EeaNI9Ze/5ZN8g2xVxn/TLoTMAodOBmAI3oXa50g4s= +github.com/aws/aws-sdk-go-v2/service/lambda v1.46.0 h1:H8G4ez3J1Eg2DkyadzscJpGCHZ96GEUl/4dHtYfbUwA= +github.com/aws/aws-sdk-go-v2/service/lambda v1.46.0/go.mod h1:7EeaNI9Ze/5ZN8g2xVxn/TLoTMAodOBmAI3oXa50g4s= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.36.1 h1:haFsYMoXhbnT8m3X/fSPcW7RNJW95VKsXQOU7BuvoRU= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.36.1/go.mod h1:iUA/ZNvrj9ySRC8dtf2nLBzVGzgRcO05fSvRalYG8x8= github.com/aws/aws-sdk-go-v2/service/lightsail v1.31.1 h1:QiK6m3AIiuohyqMcbO6ketUAW4Fq5ClVckJc54+f7zY= @@ -136,20 +140,22 @@ github.com/aws/aws-sdk-go-v2/service/oam v1.6.1 h1:O0G4f9dtP3uO6aNVOX/14ss6oZIO4 github.com/aws/aws-sdk-go-v2/service/oam v1.6.1/go.mod h1:tsBCn9NtXpxDgN+2ur+NQYjkb+hb9x3XWK0P6O1YjJs= github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.8.1 h1:073ZVUKpoeuDRZOvGIA7YkIzgS34ZuaB4Mjob1JLVmw= github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.8.1/go.mod h1:tgV68+tguCc9exlCrF8bzpdIr1p5kdX/dscRoREhUPA= -github.com/aws/aws-sdk-go-v2/service/pipes v1.6.1 h1:GgXHoyJtU1CbGr9OSnF7IfmV3ySplm1+IHAgBcabnJA= -github.com/aws/aws-sdk-go-v2/service/pipes v1.6.1/go.mod h1:zHXHbYP7mZ75j9g82PCuGOTzJHTkt5ECE1SRI+A1+ts= +github.com/aws/aws-sdk-go-v2/service/osis v1.4.1 h1:WGWy/V7hLZ/BpqNAMKypT2H4ozt8vRa+Q8RgRsV2jEg= +github.com/aws/aws-sdk-go-v2/service/osis v1.4.1/go.mod h1:1URZ6YGhTgBE7B9IOW0on6VGf2rFfGHuNE/rvCjr594= +github.com/aws/aws-sdk-go-v2/service/pipes v1.7.0 h1:rAESYEbWXzScH/PNAYRwvz3fWaEqzV8G7hrC51rx/9E= +github.com/aws/aws-sdk-go-v2/service/pipes v1.7.0/go.mod h1:zHXHbYP7mZ75j9g82PCuGOTzJHTkt5ECE1SRI+A1+ts= github.com/aws/aws-sdk-go-v2/service/pricing v1.23.1 h1:PvSF5JF/Xg7pzE8aVYlbf/30DoUvFP/KQ10DyzA3zUk= github.com/aws/aws-sdk-go-v2/service/pricing v1.23.1/go.mod h1:OUjaLhZA7pAuSqSYQVHl4c6tbUplabXblJ7RxewWgzo= github.com/aws/aws-sdk-go-v2/service/qldb v1.18.1 h1:6tUl+5VgPbBq1jw7yIG0sdCR9UjXdUwXHSae++YKFBA= github.com/aws/aws-sdk-go-v2/service/qldb v1.18.1/go.mod h1:Z0Ga82Q05EYVKQrpFDhgYXxS1SKR0MGn12ZRcWvxo0c= github.com/aws/aws-sdk-go-v2/service/rbin v1.12.1 h1:g5YNRBrE7GQhmurswxwo9iAIZvd++K6MhSmFfSJ2U2o= github.com/aws/aws-sdk-go-v2/service/rbin v1.12.1/go.mod h1:cLbiL0FvzQMDg524PzqY+a5V9wo1ESSNQ7QK09qQ6kY= -github.com/aws/aws-sdk-go-v2/service/rds v1.62.2 h1:KShD7GrMvSnwKsDQxRQTOGOrDyj2wrA+0SP9FBPtxHQ= -github.com/aws/aws-sdk-go-v2/service/rds v1.62.2/go.mod h1:T++jZU+TJQEq8rMssEmjOW4/VRai5VcqxPAQqPBE26k= +github.com/aws/aws-sdk-go-v2/service/rds v1.62.3 h1:eXWDu7PodivDkEnbLw6KqL3zgcLha22fDdsNhqcBXLM= +github.com/aws/aws-sdk-go-v2/service/rds v1.62.3/go.mod h1:T++jZU+TJQEq8rMssEmjOW4/VRai5VcqxPAQqPBE26k= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.22.1 h1:Inwn9EN4uZzKqHEIh+SvbWH7KNUbp9BueqfvgDgaA9A= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.22.1/go.mod h1:HwEfNPMzZdKGIm4fqsEK8y9hgWjKOqmSA93CcRBiuaM= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.6.2 h1:4zqyJsl4rY0HiLZlblQFxZAEmQ8UOlip+Uf+d/ljj+A= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.6.2/go.mod h1:vcIzurt3qlcSk3xjoe0GUTNY56Edfz9J+zeqC1kNFd0= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.7.0 h1:70rxzf0//gjvBhjMAKmibv9MR18yUTHJioWAcECHyIo= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.7.0/go.mod h1:vcIzurt3qlcSk3xjoe0GUTNY56Edfz9J+zeqC1kNFd0= github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.18.1 h1:NtF8pUJSlFcn0IGbmMaM1KvCvUXdjkLc9kCTZg2lpqk= github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.18.1/go.mod h1:/P/9ZUQk58ACVTlfSDGQ1pherdnRozEgMK+9LqEmlVE= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.18.1 h1:9GyvVuhinXcZVT2oAHmu6jdMRYte8uySMzdd5xBGmKA= @@ -160,8 +166,8 @@ github.com/aws/aws-sdk-go-v2/service/route53domains v1.19.1 h1:jZSQwl1JAX9GRew86 github.com/aws/aws-sdk-go-v2/service/route53domains v1.19.1/go.mod h1:5uJ+xB76ttmfE0FD6f07TiF3BmwKevmfK7ixkV7mjVA= github.com/aws/aws-sdk-go-v2/service/s3 v1.42.1 h1:o6MCcX1rJW8Y3g+hvg2xpjF6JR6DftuYhfl3Nc1WV9Q= github.com/aws/aws-sdk-go-v2/service/s3 v1.42.1/go.mod h1:UDtxEWbREX6y4KREapT+jjtjoH0TiVSS6f5nfaY1UaM= -github.com/aws/aws-sdk-go-v2/service/s3control v1.36.1 h1:sQ85bep/Py4grNb76xS0HTuHXSk8w/oPS7rSw3eu760= -github.com/aws/aws-sdk-go-v2/service/s3control v1.36.1/go.mod h1:QgaB/G0eqRn+kgBHBMyEPa4z7a71QQ6BsZResPH1oZk= +github.com/aws/aws-sdk-go-v2/service/s3control v1.36.2 h1:T7PTfCz5WDwGwoYmDh9pXnBAOGYMYd93mn8M6fLm+jo= +github.com/aws/aws-sdk-go-v2/service/s3control v1.36.2/go.mod h1:QgaB/G0eqRn+kgBHBMyEPa4z7a71QQ6BsZResPH1oZk= github.com/aws/aws-sdk-go-v2/service/scheduler v1.5.1 h1:5gcvHn3iZXoro9PhEi0Lgd+3UyMtz+ZwdVnJQ/NAuCU= github.com/aws/aws-sdk-go-v2/service/scheduler v1.5.1/go.mod h1:SsqJybJNCGIuJ1vuT2nK00P3Mpuc0xquPZptzkLZXvY= github.com/aws/aws-sdk-go-v2/service/securitylake v1.9.1 h1:LCHuDIo6VgGVuJzEARcMUW9wfL81WN1dtpZj4OLNF+k= @@ -170,8 +176,8 @@ github.com/aws/aws-sdk-go-v2/service/servicequotas v1.18.1 h1:3wmpS42JnjQ71EO8HM github.com/aws/aws-sdk-go-v2/service/servicequotas v1.18.1/go.mod h1:qAbLKCueR4MBxV/s7iLrL8ALTed5hj4tAT2AQEXBnz4= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.23.1 h1:rPpLstzadDkRwEt69fMybasKQ4OtCepjib7aXfN/zpI= github.com/aws/aws-sdk-go-v2/service/sesv2 v1.23.1/go.mod h1:QJHST8MA1/Wd/o5ADP7cKsJDGB91n1V6YuOVQzyfdo0= -github.com/aws/aws-sdk-go-v2/service/signer v1.18.1 h1:kBQ0Y2gLhG43OHWkwHPTUQIYNnavmxTlaSqGget8Egg= -github.com/aws/aws-sdk-go-v2/service/signer v1.18.1/go.mod h1:8MUWn7BWA+A5x960d7A/M8AvhvwNvR8yI/gNj684BL8= +github.com/aws/aws-sdk-go-v2/service/signer v1.18.2 h1:A+6iE+dGwxxChAUediziUJWwEOUf97I22CDAhmusq/s= +github.com/aws/aws-sdk-go-v2/service/signer v1.18.2/go.mod h1:8MUWn7BWA+A5x960d7A/M8AvhvwNvR8yI/gNj684BL8= github.com/aws/aws-sdk-go-v2/service/sns v1.25.1 h1:0WdK/fMLIj2Ue6xmvuTLKd4aFVxib+Mhi7yPrr5t+QQ= github.com/aws/aws-sdk-go-v2/service/sns v1.25.1/go.mod h1:g9oPCEbC9NinvW9AT0guuYcCmRJ3YDMWQ3e+j90wW10= github.com/aws/aws-sdk-go-v2/service/sqs v1.28.0 h1:+JVIntWBGQJ8M3rNEFNHiIzF4CMpfrRe+Xt39mS+6VA= @@ -213,6 +219,7 @@ github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28 github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -226,11 +233,11 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA= github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= @@ -250,10 +257,10 @@ github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0 h1:IUypt/TbXiJBkBbE3926CgnjD8IltAitdn7Yive61DY= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0/go.mod h1:cdTE6F2pCKQobug+RqRaQp7Kz9hIEqiSvpPmb6E5G1w= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39 h1:nyCyZVZJ5CmYelTkCDmC9dO2UgzTB5daeAFn8P9UOtA= -github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.39/go.mod h1:HMcr0msfsuDQCed/AhmdLlRU0IoAcB31hrvQed3JiLc= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40 h1:FLwvItnCr/cu93ZcFdk+eX6AdEpkerbZHMb0ApHfTSM= -github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.40/go.mod h1:BKUjqbpcP+tx0HGno7pGrIEyo2xidvM10VZk23EtcP8= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41 h1:aaXk20kHudR40hpl/4qoM57lgEW0JAV1l1Cw547G2wE= +github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.41/go.mod h1:mN+jBRwrTsDaeBDROT/LVpOtGbX1SFLdZuL+/U4EGGA= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42 h1:Y4N+IDb/M/2wubuTnSrGlHQMHWiiWWS6PgATXZFLGoE= +github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.42/go.mod h1:AZJcpDzBh2Wsfwv2MYTTreac7VQKpcvekxHWKWr/MZo= github.com/hashicorp/awspolicyequivalence v1.6.0 h1:7aadmkalbc5ewStC6g3rljx1iNvP4QyAhg2KsHx8bU8= github.com/hashicorp/awspolicyequivalence v1.6.0/go.mod h1:9IOaIHx+a7C0NfUNk1A93M7kHd5rJ19aoUx37LZGC14= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -278,10 +285,10 @@ github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/C github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.6.0 h1:fDHnU7JNFNSQebVKYhHZ0va1bC6SrPQ8fpebsvNr2w4= -github.com/hashicorp/hc-install v0.6.0/go.mod h1:10I912u3nntx9Umo1VAeYPUUuehk0aRQJYpMwbX5wQA= -github.com/hashicorp/hcl/v2 v2.18.0 h1:wYnG7Lt31t2zYkcquwgKo6MWXzRUDIeIVU5naZwHLl8= -github.com/hashicorp/hcl/v2 v2.18.0/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= +github.com/hashicorp/hc-install v0.6.1 h1:IGxShH7AVhPaSuSJpKtVi/EFORNjO+OYVJJrAtGG2mY= +github.com/hashicorp/hc-install v0.6.1/go.mod h1:0fW3jpg+wraYSnFDJ6Rlie3RvLf1bIqVIkzoon4KoVE= +github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI= +github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-exec v0.19.0 h1:FpqZ6n50Tk95mItTSS9BjeOVUb4eg81SpgVtZNNtFSM= @@ -294,18 +301,18 @@ github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaK github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= 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.19.0 h1:BuZx/6Cp+lkmiG0cOBk6Zps0Cb2tmqQpDM3iAtnhDQU= -github.com/hashicorp/terraform-plugin-go v0.19.0/go.mod h1:EhRSkEPNoylLQntYsk5KrDHTZJh9HQoumZXbOGOXmec= +github.com/hashicorp/terraform-plugin-go v0.19.1 h1:lf/jTGTeELcz5IIbn/94mJdmnTjRYm6S6ct/JqCSr50= +github.com/hashicorp/terraform-plugin-go v0.19.1/go.mod h1:5NMIS+DXkfacX6o5HCpswda5yjkSYfKzn1Nfl9l+qRs= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-mux v0.12.0 h1:TJlmeslQ11WlQtIFAfth0vXx+gSNgvMEng2Rn9z3WZY= github.com/hashicorp/terraform-plugin-mux v0.12.0/go.mod h1:8MR0AgmV+Q03DIjyrAKxXyYlq2EUnYBQP8gxAAA0zeM= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 h1:wcOKYwPI9IorAJEBLzgclh3xVolO7ZorYd6U1vnok14= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0/go.mod h1:qH/34G25Ugdj5FcM95cSoXzUgIbgfhVLXCcEcYaMwq8= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.30.0 h1:X7vB6vn5tON2b49ILa4W7mFAsndeqJ7bZFOGbVO+0Cc= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.30.0/go.mod h1:ydFcxbdj6klCqYEPkPvdvFKiNGKZLUs+896ODUXCyao= github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c= github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0= -github.com/hashicorp/terraform-registry-address v0.2.2 h1:lPQBg403El8PPicg/qONZJDC6YlgCVbWDtNmmZKtBno= -github.com/hashicorp/terraform-registry-address v0.2.2/go.mod h1:LtwNbCihUoUZ3RYriyS2wF/lGPB6gF9ICLRtuDk7hSo= +github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= +github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= @@ -391,8 +398,8 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= -github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -404,16 +411,16 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.14.0 h1:/Xrd39K7DXbHzlisFP9c4pHao4yyf+/Ug9LEz+Y/yhc= -github.com/zclconf/go-cty v1.14.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0 h1:IheWOjAlqLJB0oRsfy640dvUy4T5ARTohgUKR23705U= -go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.45.0/go.mod h1:uJGvUG+4OT1N41mbAgng0iNdOTvv9chnfavACM2z2DA= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +github.com/zclconf/go-cty v1.14.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA= +github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0 h1:qmQcwJOEOfNvVOD8H7bVAEipp+6UtnDK3qHGCcjwB9o= +go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.46.0/go.mod h1:d1FGIeeryqx0a2Oa5oQrK1Ug85AGfFUx+nMtoAwJ4VI= +go.opentelemetry.io/otel v1.20.0 h1:vsb/ggIY+hUjD/zCAQHpzTmndPqv/ml2ArbsbfBYTAc= +go.opentelemetry.io/otel v1.20.0/go.mod h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs= +go.opentelemetry.io/otel/metric v1.20.0 h1:ZlrO8Hu9+GAhnepmRGhSU7/VkpjrNowxRN9GyKR4wzA= +go.opentelemetry.io/otel/metric v1.20.0/go.mod h1:90DRw3nfK4D7Sm/75yQ00gTJxtkBxX+wu6YaNymbpVM= +go.opentelemetry.io/otel/trace v1.20.0 h1:+yxVAPZPbQhbC3OfAkeIVTky6iTFpcr4SiY9om7mXSQ= +go.opentelemetry.io/otel/trace v1.20.0/go.mod h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -488,8 +495,8 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= -google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= -google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown index 3ae2734430d..6ff48ff2054 100644 --- a/website/docs/index.html.markdown +++ b/website/docs/index.html.markdown @@ -235,7 +235,9 @@ credential_process = custom-process --username jdoe |EC2 IMDS Endpoint |`ec2_metadata_service_endpoint`|`AWS_EC2_METADATA_SERVICE_ENDPOINT`|N/A| |EC2 IMDS Endpoint Mode|`ec2_metadata_service_endpoint_mode`|`AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE`|N/A| |Disable EC2 IMDS|`skip_metadata_api_check`|`AWS_EC2_METADATA_DISABLED`|N/A| -|HTTP Proxy|`http_proxy`|`HTTP_PROXY` or `HTTPS_PROXY`|N/A| +|HTTP Proxy|`http_proxy`|`HTTP_PROXY` or `http_proxy`|N/A| +|HTTPS Proxy|`https_proxy`|`HTTPS_PROXY` or `https_proxy`|N/A| +|Non-Proxied Hosts|`no_proxy`|`NO_PROXY` or `no_proxy`|N/A| |Max Retries|`max_retries`|`AWS_MAX_ATTEMPTS`|`max_attempts`| |Profile|`profile`|`AWS_PROFILE` or `AWS_DEFAULT_PROFILE`|N/A| |Retry Mode|`retry_mode`|`AWS_RETRY_MODE`|`retry_mode`| @@ -312,7 +314,11 @@ In addition to [generic `provider` arguments](https://www.terraform.io/docs/conf * `ec2_metadata_service_endpoint_mode` - (Optional) Mode to use in communicating with the metadata service. Valid values are `IPv4` and `IPv6`. Can also be set with the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable. * `endpoints` - (Optional) Configuration block for customizing service endpoints. See the [Custom Service Endpoints Guide](/docs/providers/aws/guides/custom-service-endpoints.html) for more information about connecting to alternate AWS endpoints or AWS compatible solutions. See also `use_fips_endpoint`. * `forbidden_account_ids` - (Optional) List of forbidden AWS account IDs to prevent you from mistakenly using the wrong one (and potentially end up destroying a live environment). Conflicts with `allowed_account_ids`. -* `http_proxy` - (Optional) Address of an HTTP proxy to use when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `HTTPS_PROXY` environment variables. +* `http_proxy` - (Optional) URL of a proxy to use for HTTP requests when accessing the AWS API. + Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables. +* `https_proxy` - (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API. + Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables. + To use an HTTP proxy **without** an HTTPS proxy, set `https_proxy` to an emtpy string (`""`). * `ignore_tags` - (Optional) Configuration block with resource tag settings to ignore across all resources handled by this provider (except any individual service tag resources such as `aws_ec2_tag`) for situations where external systems are managing certain resource tags. Arguments to the configuration block are described below in the `ignore_tags` Configuration Block section. See the [Terraform multiple provider instances documentation](https://www.terraform.io/docs/configuration/providers.html#alias-multiple-provider-configurations) for more information about additional provider configurations. * `insecure` - (Optional) Whether to explicitly allow the provider to perform "insecure" SSL requests. If omitted, the default value is `false`. * `max_retries` - (Optional) Maximum number of times an API call is retried when AWS throttles requests or you experience transient failures. @@ -320,6 +326,14 @@ In addition to [generic `provider` arguments](https://www.terraform.io/docs/conf If omitted, the default value is `25`. Can also be set using the environment variable `AWS_MAX_ATTEMPTS` and the shared configuration parameter `max_attempts`. +* `no_proxy` - (Optional) Comma-separated list of hosts that should not use HTTP or HTTPS proxies. + Each value can be one of: + * A domain name + * An IP address + * A CIDR address + * An asterisk (`*`), to indicate that no proxying should be performed + Domain name and IP address values can also include a port number. + Can also be set using the `NO_PROXY` or `no_proxy` environment variables. * `profile` - (Optional) AWS profile name as set in the shared configuration and credentials files. Can also be set using either the environment variables `AWS_PROFILE` or `AWS_DEFAULT_PROFILE`. * `region` - (Optional) AWS region where the provider will operate. The region must be set. From 1db08e72ee91187e998ae073252db4944a0a13d9 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Tue, 14 Nov 2023 14:51:55 -0800 Subject: [PATCH 2/7] Cleanup --- internal/provider/provider_config_test.go | 485 ---------------------- 1 file changed, 485 deletions(-) diff --git a/internal/provider/provider_config_test.go b/internal/provider/provider_config_test.go index 1c815cfe575..cfa52dbb45f 100644 --- a/internal/provider/provider_config_test.go +++ b/internal/provider/provider_config_test.go @@ -380,488 +380,3 @@ func TestProviderConfig_Authentication_SSO(t *testing.T) { //nolint:paralleltest func TestProviderConfig_Authentication_LegacySSO(t *testing.T) { //nolint:paralleltest configtesting.LegacySSO(t, &testDriver{}) } - -// func TestAccProvider_ProxyConfig(t *testing.T) { -// ctx := acctest.Context(t) -// var provider *schema.Provider - -// testcases := map[string]struct { -// config map[string]any -// environmentVariables map[string]string -// expectedDiags diag.Diagnostics -// urls []proxyCase -// }{ -// "no config": { -// config: map[string]any{}, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "", -// }, -// }, -// }, - -// "http_proxy empty string": { -// config: map[string]any{ -// "http_proxy": "", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "", -// }, -// }, -// }, - -// "http_proxy config": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// expectedDiags: diag.Diagnostics{ -// diag.Diagnostic{ -// Severity: diag.Warning, -// Summary: "Missing HTTPS Proxy", -// Detail: fmt.Sprintf( -// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ -// "To specify no proxy for HTTPS, set the HTTPS to an empty string", -// "http://http-proxy.test:1234"), -// }, -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// }, -// }, - -// "https_proxy config": { -// config: map[string]any{ -// "https_proxy": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config https_proxy config": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// "https_proxy": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config https_proxy config empty string": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// "https_proxy": "", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "", -// }, -// }, -// }, - -// "https_proxy config http_proxy config empty string": { -// config: map[string]any{ -// "http_proxy": "", -// "https_proxy": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config https_proxy config no_proxy config": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// "https_proxy": "http://https-proxy.test:1234", -// "no_proxy": "dont-proxy.test", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "http://dont-proxy.test", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// { -// url: "https://dont-proxy.test", -// expectedProxy: "", -// }, -// }, -// }, - -// "HTTP_PROXY envvar": { -// config: map[string]any{}, -// environmentVariables: map[string]string{ -// "HTTP_PROXY": "http://http-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "", -// }, -// }, -// }, - -// "http_proxy envvar": { -// config: map[string]any{}, -// environmentVariables: map[string]string{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "", -// }, -// }, -// }, - -// "HTTPS_PROXY envvar": { -// config: map[string]any{}, -// environmentVariables: map[string]string{ -// "HTTPS_PROXY": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "https_proxy envvar": { -// config: map[string]any{}, -// environmentVariables: map[string]string{ -// "https_proxy": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config HTTPS_PROXY envvar": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "HTTPS_PROXY": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config https_proxy envvar": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "https_proxy": "http://https-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// }, -// }, - -// "http_proxy config NO_PROXY envvar": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "NO_PROXY": "dont-proxy.test", -// }, -// expectedDiags: diag.Diagnostics{ -// diag.Diagnostic{ -// Severity: diag.Warning, -// Summary: "Missing HTTPS Proxy", -// Detail: fmt.Sprintf( -// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ -// "To specify no proxy for HTTPS, set the HTTPS to an empty string", -// "http://http-proxy.test:1234"), -// }, -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "http://dont-proxy.test", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://dont-proxy.test", -// expectedProxy: "", -// }, -// }, -// }, - -// "http_proxy config no_proxy envvar": { -// config: map[string]any{ -// "http_proxy": "http://http-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "no_proxy": "dont-proxy.test", -// }, -// expectedDiags: diag.Diagnostics{ -// diag.Diagnostic{ -// Severity: diag.Warning, -// Summary: "Missing HTTPS Proxy", -// Detail: fmt.Sprintf( -// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ -// "To specify no proxy for HTTPS, set the HTTPS to an empty string", -// "http://http-proxy.test:1234"), -// }, -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "http://dont-proxy.test", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "https://dont-proxy.test", -// expectedProxy: "", -// }, -// }, -// }, - -// "HTTP_PROXY envvar HTTPS_PROXY envvar NO_PROXY envvar": { -// config: map[string]any{}, -// environmentVariables: map[string]string{ -// "HTTP_PROXY": "http://http-proxy.test:1234", -// "HTTPS_PROXY": "http://https-proxy.test:1234", -// "NO_PROXY": "dont-proxy.test", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://http-proxy.test:1234", -// }, -// { -// url: "http://dont-proxy.test", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://https-proxy.test:1234", -// }, -// { -// url: "https://dont-proxy.test", -// expectedProxy: "", -// }, -// }, -// }, - -// "http_proxy config overrides HTTP_PROXY envvar": { -// config: map[string]any{ -// "http_proxy": "http://config-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "HTTP_PROXY": "http://envvar-proxy.test:1234", -// }, -// expectedDiags: diag.Diagnostics{ -// diag.Diagnostic{ -// Severity: diag.Warning, -// Summary: "Missing HTTPS Proxy", -// Detail: fmt.Sprintf( -// "An HTTP proxy was set but no HTTPS proxy was. Using HTTP proxy %q for HTTPS requests. This behavior may change in future versions.\n\n"+ -// "To specify no proxy for HTTPS, set the HTTPS to an empty string", -// "http://config-proxy.test:1234"), -// }, -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "http://config-proxy.test:1234", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://config-proxy.test:1234", -// }, -// }, -// }, - -// "https_proxy config overrides HTTPS_PROXY envvar": { -// config: map[string]any{ -// "https_proxy": "http://config-proxy.test:1234", -// }, -// environmentVariables: map[string]string{ -// "HTTPS_PROXY": "http://envvar-proxy.test:1234", -// }, -// urls: []proxyCase{ -// { -// url: "http://example.com", -// expectedProxy: "", -// }, -// { -// url: "https://example.com", -// expectedProxy: "http://config-proxy.test:1234", -// }, -// }, -// }, -// } -// resource.Test(t, resource.TestCase{ -// PreCheck: func() { acctest.PreCheck(ctx, t) }, -// ErrorCheck: acctest.ErrorCheck(t), -// ProtoV5ProviderFactories: testAccProtoV5ProviderFactoriesInternal(ctx, t, &provider), -// CheckDestroy: nil, -// Steps: []resource.TestStep{ -// { -// Config: testAccProviderConfig_proxyConfig(), -// Check: resource.ComposeTestCheckFunc( -// testAccCheckProviderProxyConfig(ctx, t, &provider, map[string]string{}), -// ), -// }, -// }, -// }) -// } - -// type proxyCase struct { -// url string -// expectedProxy string -// } - -// func testAccCheckProviderProxyConfig(ctx context.Context, t *testing.T, p **schema.Provider, urls []proxyCase) resource.TestCheckFunc { -// return func(s *terraform.State) error { -// if p == nil || *p == nil || (*p).Meta() == nil || (*p).Meta().(*conns.AWSClient) == nil { -// return fmt.Errorf("provider not initialized") -// } - -// providerClient := (*p).Meta().(*conns.AWSClient) -// client := providerClient.AwsConfig().HTTPClient -// bClient, ok := client.(*awshttp.BuildableClient) -// if !ok { -// t.Fatalf("expected awshttp.BuildableClient, got %T", client) -// } -// transport := bClient.GetTransport() -// proxyF := transport.Proxy - -// for _, url := range tc.urls { -// req, _ := http.NewRequest("GET", url.url, nil) -// pUrl, err := proxyF(req) -// if err != nil { -// t.Fatalf("unexpected error: %s", err) -// } -// if url.expectedProxy != "" { -// if pUrl == nil { -// t.Errorf("expected proxy for %q, got none", url.url) -// } else if pUrl.String() != url.expectedProxy { -// t.Errorf("expected proxy %q for %q, got %q", url.expectedProxy, url.url, pUrl.String()) -// } -// } else { -// if pUrl != nil { -// t.Errorf("expected no proxy for %q, got %q", url.url, pUrl.String()) -// } -// } -// } -// } -// } - -// func testAccProviderConfig_proxyConfig() string { -// //lintignore:AT004 -// return acctest.ConfigCompose( -// testAccProviderConfig_base, fmt.Sprintf(` -// provider "aws" { -// default_tags {} - -// skip_credentials_validation = true -// skip_metadata_api_check = true -// skip_requesting_account_id = true -// } -// `)) -// } From d0c0e64f7579f2d7a9c1261973b0efdaa2d30b14 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Tue, 14 Nov 2023 14:53:19 -0800 Subject: [PATCH 3/7] Updates CHANGELOG --- .changelog/34243.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/34243.txt diff --git a/.changelog/34243.txt b/.changelog/34243.txt new file mode 100644 index 00000000000..aac15bc6013 --- /dev/null +++ b/.changelog/34243.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +provider: Adds `https_proxy` and `no_proxy` parameters. +``` From 2f443eeb3eee08671ff2ebff85214919e1bc265b Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Tue, 14 Nov 2023 17:09:53 -0800 Subject: [PATCH 4/7] Package fix --- internal/conns/config_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/conns/config_test.go b/internal/conns/config_test.go index 84ba90bd91f..deff27f2b74 100644 --- a/internal/conns/config_test.go +++ b/internal/conns/config_test.go @@ -6,7 +6,6 @@ package conns_test import ( "context" "fmt" - "maps" "net/http" "testing" @@ -19,6 +18,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/provider" + "golang.org/x/exp/maps" ) type proxyCase struct { From 78334574eb84b67263240b93ee4aebdb5ac32106 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Tue, 14 Nov 2023 17:10:14 -0800 Subject: [PATCH 5/7] Spelling fix --- website/docs/index.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown index 6ff48ff2054..8e6ed095a79 100644 --- a/website/docs/index.html.markdown +++ b/website/docs/index.html.markdown @@ -318,7 +318,7 @@ In addition to [generic `provider` arguments](https://www.terraform.io/docs/conf Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables. * `https_proxy` - (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables. - To use an HTTP proxy **without** an HTTPS proxy, set `https_proxy` to an emtpy string (`""`). + To use an HTTP proxy **without** an HTTPS proxy, set `https_proxy` to an empty string (`""`). * `ignore_tags` - (Optional) Configuration block with resource tag settings to ignore across all resources handled by this provider (except any individual service tag resources such as `aws_ec2_tag`) for situations where external systems are managing certain resource tags. Arguments to the configuration block are described below in the `ignore_tags` Configuration Block section. See the [Terraform multiple provider instances documentation](https://www.terraform.io/docs/configuration/providers.html#alias-multiple-provider-configurations) for more information about additional provider configurations. * `insecure` - (Optional) Whether to explicitly allow the provider to perform "insecure" SSL requests. If omitted, the default value is `false`. * `max_retries` - (Optional) Maximum number of times an API call is retried when AWS throttles requests or you experience transient failures. From ae305dc0d87bfec24890faab99fb10fd5ea1ba16 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Wed, 15 Nov 2023 09:19:44 -0800 Subject: [PATCH 6/7] Linting fixes --- internal/conns/config_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/conns/config_test.go b/internal/conns/config_test.go index deff27f2b74..51637eae7c8 100644 --- a/internal/conns/config_test.go +++ b/internal/conns/config_test.go @@ -439,6 +439,7 @@ func TestProxyConfig(t *testing.T) { //nolint:paralleltest // uses t.Setenv } for name, tc := range cases { //nolint:paralleltest // uses t.Setenv + tc := tc t.Run(name, func(t *testing.T) { ctx := context.Background() From b523b1c54f07d9ff61f89d29003e9127bfa25952 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Wed, 15 Nov 2023 22:34:16 -0800 Subject: [PATCH 7/7] Cleanup --- internal/provider/provider_acc_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/provider/provider_acc_test.go b/internal/provider/provider_acc_test.go index 5c15380a701..8c7ec0fecbc 100644 --- a/internal/provider/provider_acc_test.go +++ b/internal/provider/provider_acc_test.go @@ -154,7 +154,6 @@ func TestAccProvider_endpoints(t *testing.T) { }) } -// TODO: revert this test, it's being used as a simple placeholder func TestAccProvider_fipsEndpoint(t *testing.T) { ctx := acctest.Context(t) rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) @@ -920,7 +919,6 @@ provider "aws" { endpoints { s3 = %[1]q } - https_proxy = "" } resource "aws_s3_bucket" "test" {