diff --git a/examples/examples_py_test.go b/examples/examples_py_test.go index 03625401d6b..13b944ddc38 100644 --- a/examples/examples_py_test.go +++ b/examples/examples_py_test.go @@ -179,6 +179,7 @@ func TestRegress2534(t *testing.T) { } func TestRegress4457(t *testing.T) { + t.Skipf("TODO[pulumi/pulumi-aws#4958]") ptest := pulumiTest(t, filepath.Join("test-programs", "regress-4457")) upResult := ptest.Up(t) autoGroupArn := upResult.Outputs["autoGroupArn"].Value.(string) diff --git a/examples/examples_yaml_test.go b/examples/examples_yaml_test.go index 5d0a9c9fd16..f69f6a3039b 100644 --- a/examples/examples_yaml_test.go +++ b/examples/examples_yaml_test.go @@ -183,6 +183,10 @@ func TestSecretVersionUpgrade(t *testing.T) { testProviderUpgrade(t, filepath.Join("test-programs", "secretversion"), nil) } +func TestElasticacheReplicationGroupUpgrade(t *testing.T) { + testProviderUpgrade(t, filepath.Join("test-programs", "elasticache-replication-group"), nil) +} + func TestRdsParameterGroupUnclearDiff(t *testing.T) { t.Parallel() if testing.Short() { @@ -1930,3 +1934,12 @@ func TestSourceCodeHashImportedLambdaChecksCleanly(t *testing.T) { } }]`) } + +func TestElasticacheReplicationGroup(t *testing.T) { + t.Parallel() + + ptest := pulumiTest(t, filepath.Join("test-programs", "elasticache-replication-group"), opttest.SkipInstall()) + upResult := ptest.Up(t) + replicationGroupArn := upResult.Outputs["replicationGroupArn"].Value.(string) + assert.NotEmpty(t, replicationGroupArn) +} diff --git a/examples/go.mod b/examples/go.mod index 972d3650b1c..8f14599b3e9 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -70,11 +70,11 @@ require ( github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 // indirect github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/account v1.21.7 // indirect + github.com/aws/aws-sdk-go-v2/service/account v1.22.0 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.30.7 // indirect github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.30.4 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1 // indirect github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/appfabric v1.11.7 // indirect @@ -87,40 +87,40 @@ require ( github.com/aws/aws-sdk-go-v2/service/apprunner v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.49.0 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.49.1 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7 // indirect - github.com/aws/aws-sdk-go-v2/service/backup v1.39.8 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.48.2 // indirect + github.com/aws/aws-sdk-go-v2/service/backup v1.40.0 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.49.0 // indirect github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7 // indirect github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1 // indirect github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0 // indirect - github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1 // indirect github.com/aws/aws-sdk-go-v2/service/chime v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.21.2 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0 // indirect - github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7 // indirect + github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8 // indirect github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6 // indirect github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/codeconnections v1.5.7 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7 // indirect - github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 // indirect + github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.27.8 // indirect @@ -128,18 +128,18 @@ require ( github.com/aws/aws-sdk-go-v2/service/comprehend v1.35.7 // indirect github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1 // indirect github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 // indirect - github.com/aws/aws-sdk-go-v2/service/connect v1.120.0 // indirect + github.com/aws/aws-sdk-go-v2/service/connect v1.122.0 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/costexplorer v1.45.1 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7 // indirect github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5 // indirect github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7 // indirect - github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5 // indirect + github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.23.7 // indirect github.com/aws/aws-sdk-go-v2/service/detective v1.31.7 // indirect @@ -147,17 +147,17 @@ require ( github.com/aws/aws-sdk-go-v2/service/devopsguru v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 // indirect - github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9 // indirect + github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.14.4 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.30.7 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.53.0 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.54.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.28.6 // indirect @@ -177,11 +177,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/gamelift v1.37.2 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.103.0 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.104.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7 // indirect - github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0 // indirect + github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.39.0 // indirect @@ -192,13 +192,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iot v1.61.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iot v1.62.0 // indirect github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/iotevents v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7 // indirect - github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7 // indirect + github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8 // indirect github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/kendra v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/keyspaces v1.16.2 // indirect @@ -207,7 +207,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.31.8 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 // indirect - github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0 // indirect + github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.8.7 // indirect github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.28.7 // indirect @@ -216,27 +216,28 @@ require ( github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.7 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.42.7 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0 // indirect + github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2 // indirect github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6 // indirect github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.15.7 // indirect github.com/aws/aws-sdk-go-v2/service/opensearch v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4 // indirect github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7 // indirect - github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1 // indirect github.com/aws/aws-sdk-go-v2/service/osis v1.14.7 // indirect github.com/aws/aws-sdk-go-v2/service/outposts v1.47.2 // indirect github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.16.2 // indirect @@ -249,20 +250,20 @@ require ( github.com/aws/aws-sdk-go-v2/service/pricing v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.92.0 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.93.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.31.4 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8 // indirect - github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1 // indirect + github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3 // indirect - github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7 // indirect + github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.21.7 // indirect @@ -272,7 +273,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3outposts v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0 // indirect - github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7 // indirect + github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8 // indirect github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/securityhub v1.55.0 // indirect @@ -280,7 +281,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7 // indirect - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7 // indirect + github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/ses v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/sesv2 v1.40.0 // indirect @@ -300,14 +301,15 @@ require ( github.com/aws/aws-sdk-go-v2/service/storagegateway v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect github.com/aws/aws-sdk-go-v2/service/swf v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2 // indirect + github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8 // indirect github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7 // indirect - github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0 // indirect + github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3 // indirect - github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/waf v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.6 // indirect @@ -389,12 +391,12 @@ require ( github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.21.0 // indirect - github.com/hashicorp/terraform-json v0.23.0 // indirect + github.com/hashicorp/terraform-json v0.24.0 // indirect github.com/hashicorp/terraform-plugin-framework v1.13.0 // indirect github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.15.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.16.0 // indirect github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.17.0 // indirect @@ -453,6 +455,7 @@ require ( github.com/pulumi/esc v0.10.0 // indirect github.com/pulumi/inflector v0.1.1 // indirect github.com/pulumi/pulumi-java/pkg v0.19.0 // indirect + github.com/pulumi/pulumi-terraform-bridge/pf v0.49.0 // indirect github.com/pulumi/pulumi-yaml v1.12.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect diff --git a/examples/go.sum b/examples/go.sum index 0032a5c5f5f..c9b65341245 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1258,16 +1258,16 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 h1:r67ps7oHCYnflpgDy2LZU0MAQtQ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25/go.mod h1:GrGY+Q4fIokYLtjCVB/aFfCVL6hhGUFl8inD18fDalE= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2 h1:9WvCTutkgDExBamb9UZQ94oiCjJwXUhhtoBH3NIs0Iw= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2/go.mod h1:9QmJU2Zam+wUZe8etjM4VY9NlC0WeMFLIvtUIOIko4U= -github.com/aws/aws-sdk-go-v2/service/account v1.21.7 h1:TljZChU1jYlIrVC6GpS4t5CCuTPVbxkHP9pOv9yKz+o= -github.com/aws/aws-sdk-go-v2/service/account v1.21.7/go.mod h1:/OutbIU/lpaxPpjAeKIE6lOfy9bPOZi1xMzSllMubKw= +github.com/aws/aws-sdk-go-v2/service/account v1.22.0 h1:Fg/uyf0CCBKLAStzIhYZcIXyVI1BaTJjoPPuuOMdyrk= +github.com/aws/aws-sdk-go-v2/service/account v1.22.0/go.mod h1:/OutbIU/lpaxPpjAeKIE6lOfy9bPOZi1xMzSllMubKw= github.com/aws/aws-sdk-go-v2/service/acm v1.30.7 h1:rv8PVsnReslpDVVByyuX4LzfA7j0+Jcj6Gili1dBEd0= github.com/aws/aws-sdk-go-v2/service/acm v1.30.7/go.mod h1:ns7D5/uAekEaVLAIzzNrxVz/CsBCCwNfSdi46PEaGhI= github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8 h1:qcx0XpDUjTkwp89kt15m1iKorZ1BK1uzXFTT+1NvU0A= github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8/go.mod h1:T44GdsVnipn1kFnmZbVqLhDNtl9rrWVBmjsuPIrRQzY= github.com/aws/aws-sdk-go-v2/service/amp v1.30.4 h1:0ya3FPNzwsGD93yx7ag3l5sD6Kelb8qghRAUgRfB5G8= github.com/aws/aws-sdk-go-v2/service/amp v1.30.4/go.mod h1:e3oL6s7I4YUSaRCpz4gSp1ujDmi+f0CwMbDjlRsad40= -github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5 h1:W+P/AMT4p8I1EuP9BaRidIiJXWbUNpbsSb4uZwXah+Q= -github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5/go.mod h1:2wrh0ye46s6rA3L1TKkvu4MEADM54tvnxcMkXVL4z5c= +github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0 h1:1swpQaAKSbCkjnx3e0Jl7zmbi5M+k8Gr/aSjo45uLFY= +github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0/go.mod h1:2wrh0ye46s6rA3L1TKkvu4MEADM54tvnxcMkXVL4z5c= github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1 h1:XBVNkd4B5uGC6RgJ+/4x/ZUuk7/6f/hQ8cvGRSxltBI= github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1/go.mod h1:4cynmnoMmeiroN7OvI8upcQbvJ3Rfzd3j5hOthYKQnk= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.24.7 h1:sDijLs7HLzhvxPWxODryESj4gMA8A8seQWhaUVZaPlE= @@ -1294,26 +1294,26 @@ github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7 h1:9KTwRIeh67p4JjOtkAiUQ6 github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7/go.mod h1:YC50kSYeBhmjzeJKNf4CB85KN9Gdy+RKhtt4MvMx4ro= github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2 h1:NGExoL+9wUDfrQqX6xZavPb93IjFrKLG2b3r+suCfVY= github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2/go.mod h1:YN/LhOApnQGAgb4AljjHkcpl+OmaLrkD6cGPL1dkajI= -github.com/aws/aws-sdk-go-v2/service/athena v1.49.0 h1:D+iatX9gV6gCuNd6BnUkfwfZJw/cXlEk+LwwDdSMdtw= -github.com/aws/aws-sdk-go-v2/service/athena v1.49.0/go.mod h1:27ljwDsnZvfrZKsLzWD4WFjI4OZutEFIjvVtYfj9gHc= +github.com/aws/aws-sdk-go-v2/service/athena v1.49.1 h1:BASu7+dZA5YsB8r32SGoC+tPtRmd6pp5OOY0UMRQq6c= +github.com/aws/aws-sdk-go-v2/service/athena v1.49.1/go.mod h1:27ljwDsnZvfrZKsLzWD4WFjI4OZutEFIjvVtYfj9gHc= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7 h1:THLQzF9JZZthlhdf8i+rDCqO8K7sk2xmsgl/by0/4B4= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7/go.mod h1:UZOdtpOTwIj4yHbPVNxfayWIlQp4c3Xht/7sDaFzZs0= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1 h1:XFZsqNpwwi/D8nFI/tdUQn1QW1BTVcuQH382RNUXojE= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1/go.mod h1:r+eOyjSMo2zY+j6zEEaHjb7nU74oyva1r2/wFqDkPg4= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7 h1:7zci6q+hPs522cfe75lHUw9LnJ/Ha6eeE977IpBiRwg= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7/go.mod h1:J/X0cqccGAPGPtWCWi5Juw2sSkmUN7mKnBKbbyyjzwc= -github.com/aws/aws-sdk-go-v2/service/backup v1.39.8 h1:ChfrtARE1PhWRW+EZ89IywUUoiPf4f9HYFEahbDaKxo= -github.com/aws/aws-sdk-go-v2/service/backup v1.39.8/go.mod h1:YgtsGOZJNjMAnSov/HRVspxzEUjjszZi3qXo90gzNU8= -github.com/aws/aws-sdk-go-v2/service/batch v1.48.2 h1:/BSZk0ywzZD4KKRt4qm33fIcXQztMSr8zpkr6EfrACs= -github.com/aws/aws-sdk-go-v2/service/batch v1.48.2/go.mod h1:5pxmENM3nBEAr2XrSs6c89Iwl6wAJk0/pkyFd3Gmav0= +github.com/aws/aws-sdk-go-v2/service/backup v1.40.0 h1:Fg0AZko1ZNgP1dhc2DdWWSHZpD0eCZ/dauSccQYwvsY= +github.com/aws/aws-sdk-go-v2/service/backup v1.40.0/go.mod h1:YgtsGOZJNjMAnSov/HRVspxzEUjjszZi3qXo90gzNU8= +github.com/aws/aws-sdk-go-v2/service/batch v1.49.0 h1:ew1qgtLddHOgV2yuzG0oV8srXYf4+L0hotZvhhpNK64= +github.com/aws/aws-sdk-go-v2/service/batch v1.49.0/go.mod h1:5pxmENM3nBEAr2XrSs6c89Iwl6wAJk0/pkyFd3Gmav0= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7 h1:zrQ6zDzE5ohrLEpwaXGoF0PoBiSBo0oW6uW72iyF0ic= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7/go.mod h1:J+Zv3ekV1h3RyqVlxi1hCliEuI1SwugGAnmiOfwzNco= github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1 h1:zMEJeGsIuYpjO4Osdll4EdOemC01Fx1nmXOAjJzALLs= github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1/go.mod h1:BKSewSMuaeUidKqXArDlT06PWK/PP3wsgLWTXKeKgQw= github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0 h1:hnoHWrcuFtnhPcg0Cx0HtWsXcQGZe01Y0OqssMIBy9o= github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0/go.mod h1:d+BIleA83BNMLQbwc1gYB/Kgrogwl4lzn2RN+XPIC0s= -github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8 h1:o6Y4kxaKJmj30MzyfP9JBj86OncxIXuQBWhTrl2pCuA= -github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8/go.mod h1:jhUXdAWAOIKQReti3jcD8zaDjyayYBAuhmijh8+rYrk= +github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0 h1:j8c+43fhvHwhKLoNuVKByx2JMMknnInSvfES9iYhMXY= +github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0/go.mod h1:jhUXdAWAOIKQReti3jcD8zaDjyayYBAuhmijh8+rYrk= github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1 h1:g+Xnw4sHm/T5xDTlNvPBeM6gAAQSzj7EwOI0vBXscSE= github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1/go.mod h1:lpKKa8zv8/MTIHRh1JB24Y+R/RXLE6BWxnFCQ/b0W2M= github.com/aws/aws-sdk-go-v2/service/chime v1.34.7 h1:iHBLzHxZF2vRCQzm9fKp7yA6X2nnUzqeVF3TY60tqhQ= @@ -1324,18 +1324,18 @@ github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0 h1:IwQ9oL4a8ZhJq/tgfP github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0/go.mod h1:U8vcvSwicq+2VDdkPTP8UYn5IV8YFWPPi8CoMI786w8= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0 h1:XlyfMge7JCGYR9wJoihE0aSx1mmlDdmeDg8l/SmCXPQ= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0/go.mod h1:F/4OPOJP5yt+EsQXiOyMq1CkV00LZImdgoHdRWd0nQA= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7 h1:gcTAeqesSwreH8YtKudbKx3FrliadMbVJOdmHssqEDc= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7/go.mod h1:l1sYjOTxY/lcqFT56ruW2YoC1k2in//ko50kBxwpYII= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8 h1:sXmoUPtWluI9ONDMfs7/0qC10bgSE/I+xschdBItNeY= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8/go.mod h1:l1sYjOTxY/lcqFT56ruW2YoC1k2in//ko50kBxwpYII= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2 h1:xUD/6aoYwDsMmVl6J6Umkgk+QlkzDm1N0w2BukgXTMI= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2/go.mod h1:NQSFnuiS7N4Leys2Mx/N0UMIWkMsXHBs3HEI4ElCSV8= github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1 h1:EqRhsrEoXFFyzcNuqQCF1g9rG9EA8K2EiUj6/eWClgk= github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1/go.mod h1:75rrfzgrN4Ol0m9Xo4+8S09KBoGAd1t6eafFHMt5wDI= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1 h1:riUb1ppQ6Qs0+Yz0bttwlwPIl0AdBAcJdtuKLzsbaI4= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1/go.mod h1:fXHLupAMPNGhRAW7e2kS0aoDY/KsQ9GHu80GSK70cRs= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0 h1:zYk75ljFsvA6PgmbkMVy5b3M/arUF7EY3kHJz7LDaDk= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0/go.mod h1:fXHLupAMPNGhRAW7e2kS0aoDY/KsQ9GHu80GSK70cRs= github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7 h1:+7Ru1G2Y17qgRiUAcBxc9enlf0TxustitfBqonrWcBc= github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7/go.mod h1:Di9EQnngIp8gHvxf+GkB14uEbC5UcSxsNOOnSWMsfjQ= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8 h1:3WVykb3vPvTQ7Ht1LgUzcqlSuZVhV6hntx9lwhvaJ3Y= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8/go.mod h1:l9Gu/zoAKx1ww1ZtRlSj8qP80AV742bDP337N5NkY3o= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0 h1:HdUkTXcE1thauOhDGMHjNppUvbygtVj4e80gI3zXJxg= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0/go.mod h1:l9Gu/zoAKx1ww1ZtRlSj8qP80AV742bDP337N5NkY3o= github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6 h1:m1CAIBZzVi05OAocQs7SzY3gLsGGNBmg+qpHA7HQteU= github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6/go.mod h1:4ogUNAMmF9rtIYGYnFm21WXc/8+lcAuoNYUkS534MfI= github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.3 h1:DfrEQMWCfk0wkuv/r0zwcGoykCuYWCLoGolbax6O3sw= @@ -1346,8 +1346,8 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0 h1:j9rGKWaYglZpf9KbJ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0/go.mod h1:LZafBHU62ByizrdhNLMnzWGsUX+abAW4q35PN+FOj+A= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7 h1:5us9BU1TnHeSqgQEiQCH9qpDbwGEtYAz6fhSL0jiAyA= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7/go.mod h1:k6IbvJ+UeAR3ueA7so+YwS+sPoHa99ECNQvbtwt/pxk= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2 h1:hQB9ib1JAhjLodnSczNfG5XDw1bWZU0wBwW0FjDs2/4= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2/go.mod h1:dOgg7MoOJYIvQkUkZRrKuO/3YdAbO3+fIJlICyDc3dc= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3 h1:p8f+OrPZ9NHMKGFbQ0PZlXTe72Nm5afbDhormEUGg8Q= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3/go.mod h1:dOgg7MoOJYIvQkUkZRrKuO/3YdAbO3+fIJlICyDc3dc= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7 h1:FgYA/R4VzjeXwimhbQGJhuyaxV/ORz1LVXUkn4t++Nw= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7/go.mod h1:1V3pxyJ9hgz8HDju0oDV7lY+pzM/rERREZh7Kd6W3Yo= github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 h1:8IZ97GQsCxQ3n0yQ+0QAMMtt2YpOeig6W5Q+hIBCfjE= @@ -1360,8 +1360,8 @@ github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7 h1:5FCm30+pN7ZXwLo github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7/go.mod h1:miiswEyJjWFb8lIQgqA067DXBnq5mmTk2eIgKkhg9Yg= github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7 h1:x7Wiwow6bm0ICkR9akuYUkzfdpZrDx5wvkY64hZ0nT8= github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7/go.mod h1:91nPYuyG0FyzUG6sKqXqU6wJyeysU/9H/ug+tbQR1jc= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 h1:+PBCTujGgVyFHSFR7VKGBuwzHZCd6aolUCXO98Xd3yw= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1/go.mod h1:fLGjNeyN4aduz+LrpWje0ufvfadQnwZof389MwTeFtI= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0 h1:oYEy8cOgXMEN8tNNnH9tOmEGaATZkMVZZBT+kiDyx24= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0/go.mod h1:fLGjNeyN4aduz+LrpWje0ufvfadQnwZof389MwTeFtI= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7 h1:5bDPXYGWnZ9nY/N7tY9cSO4hMadCFvZqDwRIs/4ik7w= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7/go.mod h1:K9YY4T95yT7BVqHvDjSo8h9yxftqPvWYDFfuCxtHF/g= github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.26.7 h1:12UdLytB/DylaodJgGl0CUBT7Zz2xRskdlrHst29JVE= @@ -1376,8 +1376,8 @@ github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1 h1:iH/z1Q7WYbT2MoT github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1/go.mod h1:Epb43KiHofSehPHq6PEQZ07hcl/Euv4vUi7kEcC7J7I= github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 h1:zA4KArT5FZ4ypJc8X+7MJNN3iv74K8ygmFhci64M4YI= github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1/go.mod h1:2fOznUkaoZ2EtJimN0zizQRxQmkndSJz/SSd2x0goKo= -github.com/aws/aws-sdk-go-v2/service/connect v1.120.0 h1:ny7ogs5eNh369uhRNfjCD7EK3EgtMDbgYXDLh74juqk= -github.com/aws/aws-sdk-go-v2/service/connect v1.120.0/go.mod h1:tuGtOUYMxcOObTcKDHKpzTG9EvjfXjOIEC74a6meGRk= +github.com/aws/aws-sdk-go-v2/service/connect v1.122.0 h1:O6uOzf10vuwomHSEnUg1h2a4Gl16FDTAC5ZG/oPYgCw= +github.com/aws/aws-sdk-go-v2/service/connect v1.122.0/go.mod h1:tuGtOUYMxcOObTcKDHKpzTG9EvjfXjOIEC74a6meGRk= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7 h1:uWiDzkr4L/KMlftI2OqmELmsv0ZGxeyi3YAo266wJzs= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7/go.mod h1:/FZ+YQmJpAdZPR4Z1tA1mIxA/SmLmUlgrn3sZOAmnfQ= github.com/aws/aws-sdk-go-v2/service/controltower v1.20.1 h1:fpqsKm/4mA+oOn2IM62syUhcVZMU3Gc7tl8HTd4Ul+k= @@ -1390,16 +1390,16 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1 h1:r1LakPxgYvob github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1/go.mod h1:agAlqygpDyX9paflw12sVF0sGGzAk6Ed5plVQgOqJRk= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0 h1:Wkf9S+n02aTZ8pQsp+nBRRVFdodbHG7V5HWqwYQWm/Q= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0/go.mod h1:yresrCHgaNcKcF7cLJ6emqK9eb05B1Ik2KvDMLbncU8= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 h1:KmcRuMU/pSZy/bhnZ0nTGeNXhvBO0cvXkXduq3E5mAQ= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5/go.mod h1:4O6knGhxKpEu9ILt1+PGSN/LVWzLa4hdyUdPfjgFTao= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0 h1:Bz6/i8CbYodfvX5Efsp0i9+3CG7+312M7HoOnzn7cRA= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0/go.mod h1:4O6knGhxKpEu9ILt1+PGSN/LVWzLa4hdyUdPfjgFTao= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7 h1:kaYiuNxHzwDMwsqM766yy0cp8ZVldOTwJhOeR0MINU8= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7/go.mod h1:Gu2mR/aUZzdmnNORl8GbAN6xDsPO/t9KNG+B99SNMIk= github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5 h1:X62garDt07bE4Ojd+qO6MTlyMC/wYPw6Sg0QkSfNgXs= github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5/go.mod h1:UJZLGoXBQs6AukctWkOWimAQh6wloVGq6LOTyg/ALJs= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7 h1:b2xXuJ5Yh5RuyOzs3vdBamLXVK5DIM5l819/pCxbC/M= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7/go.mod h1:IH2WIe0ol0aDtM5a/+nP6UYRwrDXi/gwF+DA0nJK+i8= -github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5 h1:4tdw3XO+pUwsjE6j2a4kWxZt80NtRxhOl9OnDtPS1fY= -github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5/go.mod h1:ty1/xBfWRiv/C+e/cbTLkM4UGMfkOavUgp3daLZ2QKc= +github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0 h1:qCjwlzJJikstQVKrbu/dMpZbhtqlTLawr6zSLRVvRyY= +github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0/go.mod h1:ty1/xBfWRiv/C+e/cbTLkM4UGMfkOavUgp3daLZ2QKc= github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0 h1:L1IGMQ1T1eZtJLDA4n0SgTYFaHeJ7OJYqy00+JrEGoY= github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0/go.mod h1:2MCAq6PXnLOI6NVaUES50GGvOl1pa5l6N2XmRAVWWWw= github.com/aws/aws-sdk-go-v2/service/dax v1.23.7 h1:hZg1sHhWXGZShzHGpwcaOT8HZfx26kkbRDNZgZda4xI= @@ -1414,8 +1414,8 @@ github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1 h1:U2VtqwmOzP7sZYWmrn github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1/go.mod h1:IVHMPfXzPHdq2JuZmnyreo2Dhhlu84Vel/tochYKgh8= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 h1:o3yUhrImWkJuI42DyTJu7REWf1+EUNlwfmLpo2yXzb0= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8/go.mod h1:CxYqXrb08ko/psMpQ692AcEFXCuB+sVuWA2OZPB32t0= -github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9 h1:orqq8yNI2QHyO5o6g7b+3JVZhA4pVVEit7F8/5ZGi/Q= -github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9/go.mod h1:SBPSK/ycAG4ET3JblaBP2Xt52RjNcg827EFgqN8W7AY= +github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0 h1:urPakVfaxgWE5VA6RVPF0DQPpe5JrJFcpsrQWDgUq6s= +github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0/go.mod h1:SBPSK/ycAG4ET3JblaBP2Xt52RjNcg827EFgqN8W7AY= github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6 h1:N2iwdECLOQuClhv3XdTgGSY75N7QHF5nDekPGoFpRyY= github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6/go.mod h1:pa9tid/NTUDjayagl5El0KVg9IiV3hJEKVxFmvyc+J8= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.14.4 h1:pT1NLJ04YA/05ZEbYBNhminfsbKBvHDlOh8ScoMZybA= @@ -1424,18 +1424,18 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.30.7 h1:0jUZJqidFnPF9LlSSsYD9yQcbIYL github.com/aws/aws-sdk-go-v2/service/drs v1.30.7/go.mod h1:myL1h4VGyN3HU1B/7WBs2MsjKYX3FugwPJ09muIM8tE= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 h1:isKhHsjpQR3CypQJ4G1g8QWx7zNpiC/xKw1zjgJYVno= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0/go.mod h1:xDvUyIkwBwNtVZJdHEwAuhFly3mezwdEWkbJ5oNYwIw= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0 h1:ZBtoihAqfT+5b1FwGHOubq8k10KwaIyKZd2/CRTucAU= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0/go.mod h1:00zqVNJFK6UASrTnuvjJHJuaqUdkVz5tW8Ip+VhzuNg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0 h1:ivPJXmGlzAjgy0jLO9naExUWE8IM8lLRcRKLPBEx6Q0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0/go.mod h1:00zqVNJFK6UASrTnuvjJHJuaqUdkVz5tW8Ip+VhzuNg= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 h1:R+5XKIJga2K9Dkj0/iQ6fD/MBGo02oxGGFTc512lK/Q= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7/go.mod h1:fDPQV/6ONOQOjvtKhtypIy1wcGLcKYtoK/lvZ9fyDGQ= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7 h1:eddAe+FnCCLECUKHUHLM9/iAlqDkyRjZk/84+eo0ToE= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7/go.mod h1:lik3qEJ4TBnQrEKoZnFh8E8nn5oZSebnB/pydq8oQRQ= -github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 h1:LRM6z+wmXqAgCvuH36RR+Wf8SZZhvOVjt6f5r38V2II= -github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2/go.mod h1:Ghi1OWUv4+VMEULWiHsKH2gNA3KAcMoLWsvU0eRXvIA= +github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0 h1:TCQZX4ztlcWXAcZouKh9qJMcVaH/qTidFTfsvJwUI30= +github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0/go.mod h1:Ghi1OWUv4+VMEULWiHsKH2gNA3KAcMoLWsvU0eRXvIA= github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 h1:y2BaF/VBEQM5Gi27ZOX1jSKRQLNifOfvegkqKKDPNEM= github.com/aws/aws-sdk-go-v2/service/efs v1.34.1/go.mod h1:0c/j249PCFk5d/KHJsBIoCVdnZa9Or71J/fqC/n63BA= -github.com/aws/aws-sdk-go-v2/service/eks v1.53.0 h1:ACTxnLwL6YNmuYbxtp/VR3HGL9SWXU6VZkXPjWST9ZQ= -github.com/aws/aws-sdk-go-v2/service/eks v1.53.0/go.mod h1:ZzOjZXGGUQxOq+T3xmfPLKCZe4OaB5vm1LdGaC8IPn4= +github.com/aws/aws-sdk-go-v2/service/eks v1.54.0 h1:78/Za9/4c5boz78pcKvJV4WfzVHcFwebpfAUzS6XYUg= +github.com/aws/aws-sdk-go-v2/service/eks v1.54.0/go.mod h1:ZzOjZXGGUQxOq+T3xmfPLKCZe4OaB5vm1LdGaC8IPn4= github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1 h1:Dch9DIcyrHf6OTEhgzz7wIFKrHZAWfcZ1BCAlZtwpYo= github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1/go.mod h1:gzplo968xB24VkeHC4wKfDbSERguKL2xKPL1Csd/mH4= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.7 h1:ieY1UqWTqjb83Rx1KiUO2pxFRdebobkKxHKDXIlIMhM= @@ -1474,16 +1474,16 @@ github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7 h1:YTg3h8OBu4x3UCsu9vKz9VHq github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7/go.mod h1:w/cFjxbAVqNeAMQf31PI9KopvcFYoXdv0oG2Y9wU0uA= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7 h1:TB66P1ES3DvjeR7YNTfO4/4ncB2MiFx0jzazbPisWkw= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7/go.mod h1:geddg2iWFvxpfa7SIoJztvcdP/Prm1xk9W4+IUhGs7Y= -github.com/aws/aws-sdk-go-v2/service/glue v1.103.0 h1:aWkaWcO6AWKOZgnm45es3lL+jZ9tece2kfQ2Na4xoQs= -github.com/aws/aws-sdk-go-v2/service/glue v1.103.0/go.mod h1:ajiRue7mZ0vQjVHQkQG2KBaPHW8lL5GtvmjRTHWDaqk= +github.com/aws/aws-sdk-go-v2/service/glue v1.104.0 h1:H6ZuOpWZpXqLieLZ2shNSJI+deobB1+FKL6plTOaqUo= +github.com/aws/aws-sdk-go-v2/service/glue v1.104.0/go.mod h1:ajiRue7mZ0vQjVHQkQG2KBaPHW8lL5GtvmjRTHWDaqk= github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7 h1:LVJA+YR5tHGo95E8P5W1GFnqrQIiOOagnYCGLExvVr0= github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7/go.mod h1:oEez2RtKrs3oJ6EgbLV0aBC5YJ/bPcMbkGNtsrW1L3Q= github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7 h1:ZYq/OyCCRtS55xvC73U7klRHzWlV4AG0XvG8/jbBH1E= github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7/go.mod h1:5iOqOd+Xi7tMBd+ucAb95owiLCYfeqxphlblc8EvCJg= github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7 h1:6I620zcBLf791OnuF3hJGj2ft+qLvSsxRerminjOiGY= github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7/go.mod h1:RPZk76+qDmck0IFAo+ZteQDOKRN3jST4mFsCeicDmOc= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0 h1:eU4Wt4yUuxVfETAfHqkIivj2fmaObjY+1rNRAVp63tQ= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0/go.mod h1:JMxJFzRnFpi77J2uktvtZh4lcGMJMC9HLE9Tqvf7atA= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1 h1:d1SZI0dUdWVzX5anxfCMBmTcJlxoqkX2DSvHhuzsqeo= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1/go.mod h1:JMxJFzRnFpi77J2uktvtZh4lcGMJMC9HLE9Tqvf7atA= github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7 h1:XuRWGRITuK7WMWKMkog/htDAt/t58wwdTK04oynlPL8= github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7/go.mod h1:0Ef9fBviMZwF5p9vDNcmAB6hUst2h8aNRnkUhzoE3B0= github.com/aws/aws-sdk-go-v2/service/iam v1.38.2 h1:8iFKuRj/FJipy/aDZ2lbq0DYuEHdrxp0qVsdi+ZEwnE= @@ -1506,10 +1506,10 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70R github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 h1:BbGDtTi0T1DYlmjBiCr/le3wzhA37O8QTC5/Ab8+EXk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6/go.mod h1:hLMJt7Q8ePgViKupeymbqI0la+t9/iYFBjxQCFwuAwI= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2 h1:Dv+q59QjG5FUBRrZGSnu5nouzwPoivj2Z7KH0U0EneU= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2/go.mod h1:Pnzezn20O/qGSc8S3NVpy879f5w4bWnYW3iGHTUbgBw= -github.com/aws/aws-sdk-go-v2/service/iot v1.61.1 h1:xU86aILQFTU5I35YHw5iOLIbSriLsdmnYBuTst9+5K8= -github.com/aws/aws-sdk-go-v2/service/iot v1.61.1/go.mod h1:2QrSORRSY/NYGcTbUdHIz62SM5RlLCAnBcpcDIjg/Sk= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3 h1:uRN467USr5RaiOgScMKkuqllDptKNHBvIPcOgXQFL2M= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3/go.mod h1:Pnzezn20O/qGSc8S3NVpy879f5w4bWnYW3iGHTUbgBw= +github.com/aws/aws-sdk-go-v2/service/iot v1.62.0 h1:k4eHmwRX+SDJ0dJengn9wZ6xUw0w0nTN6/J6zj/TR48= +github.com/aws/aws-sdk-go-v2/service/iot v1.62.0/go.mod h1:2QrSORRSY/NYGcTbUdHIz62SM5RlLCAnBcpcDIjg/Sk= github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7 h1:Wzu7Zb+Xxekp9ncI9Lqx24b8avRoLh4ZaVjUWda3Po8= github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7/go.mod h1:dT/c5XzdfUmqgbuY2rfoqEoaS4hhhV6bzYKCmHIudsg= github.com/aws/aws-sdk-go-v2/service/iotevents v1.27.7 h1:3+CqncIjYZhQ4dW0MEe3LN48ny4H1OydEIrtN6N/NMM= @@ -1518,8 +1518,8 @@ github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2 h1:9QFYCHXxRywbd/jvx9wtU73u7QT0 github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2/go.mod h1:BwNgy90oNpZ/VrzHTn6y/z2jdsJ2ZK6D5yvvtE5Ft0o= github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7 h1:HlECOFumfIpk5nRnSdJ6F6ney0vxu9JsLe4zifGlswg= github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7/go.mod h1:C57nohycrCEMovZLg5G75J/DEZka5WSuOJtfaYqIq8s= -github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7 h1:RjCwdphB+wBtT/qQw6e7c6HOZ7ab4WN22Uw8GSmKNb8= -github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7/go.mod h1:6ezJjIOpnDf+Q/BJ2CIITrcdXSvfUS1zwjnEHHPa8oU= +github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8 h1:JtNyNMbRidkQhMY7+ezxSV+l779MoKHpF2O8dhPenH4= +github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8/go.mod h1:6ezJjIOpnDf+Q/BJ2CIITrcdXSvfUS1zwjnEHHPa8oU= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7 h1:OSj7D23vSCmeHSp8IQUuSvc57cUi6FwYQ634FgbMdOY= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7/go.mod h1:oy7uAjiwfudbkCbOW5nIBNhzPEsQbnbcNO18JgdVqZU= github.com/aws/aws-sdk-go-v2/service/kendra v1.55.0 h1:9I8Wi0EDviprTdQfgI75ax4mL/A9GAef/UqBst4rL2s= @@ -1536,8 +1536,8 @@ github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7 h1:u312E9WSNS3aL0fMkD3 github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7/go.mod h1:pdoRfafdWneitPJSDJEIUH3npcWNF0a9ReMblcQC+hA= github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 h1:dZmNIRtPUvtvUIIDVNpvtnJQ8N8Iqm7SQAxf18htZYw= github.com/aws/aws-sdk-go-v2/service/kms v1.37.7/go.mod h1:vj8PlfJH9mnGeIzd6uMLPi5VgiqzGG7AZoe1kf1uTXM= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0 h1:1tONU+X0IWsiNJIXZGCHQC25GVGbuTcH2EufcOH4gJA= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0/go.mod h1:TrZ6XeQ86aBjOsy+ae7RKlYWh3TQ53QQcA6YhtFadYk= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1 h1:5sp+bK2sVPXf7KifZ4B+0GPKt5ckqraD8YbUaRk//CY= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1/go.mod h1:TrZ6XeQ86aBjOsy+ae7RKlYWh3TQ53QQcA6YhtFadYk= github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1 h1:q1NrvoJiz0rm9ayKOJ9wsMGmStK6rZSY36BDICMrcuY= github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1/go.mod h1:hDj7He9kbR9T5zugnS+T21l4z6do4SEGuno/BpJLpA0= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.8.7 h1:nMYxTZs0WjVLEyTEqRtD6WR83nMqF65uPHSv43SrFDQ= @@ -1554,16 +1554,16 @@ github.com/aws/aws-sdk-go-v2/service/location v1.42.7 h1:yLpR7rDAh1mSazJyYc2bNzV github.com/aws/aws-sdk-go-v2/service/location v1.42.7/go.mod h1:lSuujyYUNaI4cHRzTha04mEVGSpIW0PM9AiTemTvKDY= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7 h1:wyvJFktMUDLYX7q8LpfuvDS50sIR2QrcK2OPaoJZL+Q= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7/go.mod h1:xVdP3fbrhDfhVNugkmC2aY95Ea0od8j0cUUxoRJ+UP8= -github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5 h1:X6iVlWx3rVolup+wnlNcyylpUIoBbWWhwmvjM+4sC2o= -github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5/go.mod h1:XXdV0w3yWrEmBvE4iZVAwWEPtQD+UrDIc3j/ETsI5+4= +github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0 h1:3gXxbz0y85XUK+5fY3reEO2jgZ7DdCnnaNqje+LSTQA= +github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0/go.mod h1:XXdV0w3yWrEmBvE4iZVAwWEPtQD+UrDIc3j/ETsI5+4= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7 h1:mlaPITmZnYi8bm20Ql8tTPrSdLZc6LwdH9RYDuAgf3o= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7/go.mod h1:wya8VTBSC9uglnFujLKT/21M03qc+tnTUHV3fgW6aFM= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7 h1:8fTYn2M9KBwvo/MN4S5V5HJkl76MCC4dCZGKK+9y11E= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7/go.mod h1:NyaKp3HdG4vD6gNfnIwGsl68/4vneSu1cok7yZAOB/U= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0 h1:uF6NHhbMcpWPb04VCN+77kt4l3J8VdUUSP4uhy30Eqg= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0/go.mod h1:NyaKp3HdG4vD6gNfnIwGsl68/4vneSu1cok7yZAOB/U= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1 h1:O0PufOavkptAta6HE7q128zvKV4jcZ5PbyyIRbUsWI8= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1/go.mod h1:4B8R+NlIvQUF77Rpqe2r4xQceaUVXCFYfbJ2ASlocbc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0 h1:ruaE4sWsaXFjxpafxUDrPVXhxIK0V2gMAfpPpRZ0R1M= -github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0/go.mod h1:3941uJpLJirB+Xc5CM5rsVMeQuNkp0UMrdswdqvOelQ= +github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0 h1:ahj6vblksLY3nA2wPp9PIM8Z4jVvr3ePQKH1De5I2fg= +github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0/go.mod h1:3941uJpLJirB+Xc5CM5rsVMeQuNkp0UMrdswdqvOelQ= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7 h1:NEDXmP4JZxYVPcU+rvIcLUPM6kEhCS2lw09weM1a0WI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7/go.mod h1:E4wTOblO64Lm0JHaNwxx1klyfyQ3rKje2J0CwQ6Q4XE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.20.1 h1:F+do5xWXqiQhY4sVpYwzVxrER5h6IKfedgFJVuAfpF0= @@ -1572,18 +1572,20 @@ github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7 h1:OK3XNax+Pg6cKlgOSOs3R github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7/go.mod h1:4Cz00WLWNC0c79Y1Rks4MH+ezS5zXGerYY9DryVWRNQ= github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0 h1:7HzWnEIEXis3QZCiGpI0FwM4CzxKr82dc18cTqE+Ws8= github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0/go.mod h1:nv31Ugm3PeTj/1NoUT1wlJpSttTV9kpANgSGMCOdTYg= +github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7 h1:bqyymOULuOZX/dfbQymKhPDJ25X9w+vmGs+ZcNtTCB4= +github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7/go.mod h1:1FEu+ENxyHxLkiMtgvcDscPNRHEkj+p9cTPLRqL1A64= github.com/aws/aws-sdk-go-v2/service/mq v1.27.8 h1:xGcrYXOE7mCt14ToL/ZibXsBW0DhReBuollS35Ci7pQ= github.com/aws/aws-sdk-go-v2/service/mq v1.27.8/go.mod h1:EjYQlgBAl1BVTGEpjQSTTn8q2IaBYmKZAMGorq+J8N8= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1 h1:Vy9YZcV16Fpo0gFJBTKnEoDiKsREAIwPxvZR51DDlXY= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1/go.mod h1:jMA6WUWuLnmu8HD8/bbhF+UsqZZDD21Sy50KeCYk4Us= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2 h1:qCqdF8H1+aemTiY4A1vNygeiAgqKGl3nNnsztBPa36w= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2/go.mod h1:jMA6WUWuLnmu8HD8/bbhF+UsqZZDD21Sy50KeCYk4Us= github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6 h1:4XpR4uxdYixFnQecBQ4bj+OVTTIllaVLIdNZT9PVGXU= github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6/go.mod h1:JeJv7jf5G41lHVNiZ+24s7Frzg8k9xYCGborBe0FdNw= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1 h1:2jejkFcjwRmm2w7h5em/psgHikBl+uc8F9qoFdyS5F8= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1/go.mod h1:GpKZo1Lgbubeuqk2To4Tr1E5DBHj2mGrl2tuhysti2I= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4 h1:kkkVxybBMwof8LX4KwP46syMXHwYAQP90nsEPA5cKiU= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4/go.mod h1:b3UwYXVSlxwwRl8frZR9eXRc3rqisD4YyHv+rZ1Xmyc= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1 h1:xc15Eon+HAbIUBF+58ow0ZxpJ+ZRiQgY0Lu7UmkAe1A= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1/go.mod h1:EWCvUfz0rkfBfd/2s6Jj8DBT/PilQ/ClD/EByti+JKA= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5 h1:Vn3W94E0lKKVu8vgSZmnVoP70cfsIRrguopbSC0L4DE= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5/go.mod h1:b3UwYXVSlxwwRl8frZR9eXRc3rqisD4YyHv+rZ1Xmyc= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2 h1:wcJGFyxaX1Msm6c2glpFYIXr9/+Aq5GP1gLX7NBPoNw= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2/go.mod h1:EWCvUfz0rkfBfd/2s6Jj8DBT/PilQ/ClD/EByti+JKA= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7 h1:jq2n7Z+SUcKFK8zR4lmELte9rgX59HtBqQUBg2DhTYU= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7/go.mod h1:Sl6QugaUidIUBpGqzz5EHcwx6cT918H/mnQKNHTyAdc= github.com/aws/aws-sdk-go-v2/service/oam v1.15.7 h1:gy/9lznIWLyAxokvjktoXNHpmLz8f7Fl/jUrdXdWbGk= @@ -1594,8 +1596,8 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4 h1:+igfh7CHy9+ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4/go.mod h1:pyPPjpS52Akb5g9Y1Sy1eNqWud1ZDDjhe/cLrBfrvyo= github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7 h1:JHabLpXH1A2IkaLYccQwC2TBnKLm2b3uSKvAu9N39YE= github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7/go.mod h1:ddJLpQoIwK18NaELU6CxxgLnzYdAyzfGEGBwudjbJgo= -github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0 h1:CVHfN8ZVvWzDkAf/Qj+GO53dD5NWVyK16O8pYg/wp3k= -github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0/go.mod h1:SVY+doFrL3KTvVMWzFLKvD7KYQ6GQfwNRPSQS7eA3cA= +github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1 h1:hwEq/kMSSM22O+zD8Di/lmyU/YVT4EPybIgso87KbYo= +github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1/go.mod h1:SVY+doFrL3KTvVMWzFLKvD7KYQ6GQfwNRPSQS7eA3cA= github.com/aws/aws-sdk-go-v2/service/osis v1.14.7 h1:K37+ch2PxHJVWg1NRfVebstqZvicwfPPHQuXmwznbqw= github.com/aws/aws-sdk-go-v2/service/osis v1.14.7/go.mod h1:TRjW1OYREjDpa4Z8pn5Axm6SFPdP2FVcy+jX5eyX3XY= github.com/aws/aws-sdk-go-v2/service/outposts v1.47.2 h1:OpS3l/leIv8pbK1zaeoZ5WzzTojbLN8zdK8inc37bMM= @@ -1620,14 +1622,14 @@ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0 h1:Kso/qtJxdA8weHZiidLoeQ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0/go.mod h1:cmW8VmRWKpSEhqy70H3+QCFfHcTguZMZphBIdqcWsIo= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7 h1:TWJzwB7S/SBBVitz/0HtdB7pqyf1iv9OUCQ6qeYob5Q= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7/go.mod h1:8AyevnOHnUsSNTlqH723oxU2hGgIdhVsUjtDS6JIi8w= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0 h1:U/ktIgrHh0l1Azkhl8sNxNvknhz1Ql6PtEgluc9R8GU= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0/go.mod h1:GE3TPXNfQ2OETAUjwhnFl3CYWqzF9SPB1sJjeUSOkJA= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0 h1:uQXH8RFPBteSygrsYvNumyFSN8USfdKSfpo8sIGwbdM= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0/go.mod h1:GE3TPXNfQ2OETAUjwhnFl3CYWqzF9SPB1sJjeUSOkJA= github.com/aws/aws-sdk-go-v2/service/ram v1.29.7 h1:c6XYrBzh3J8J5Vaxcj4fbfuzDtKv7Blg/bYmd12PG44= github.com/aws/aws-sdk-go-v2/service/ram v1.29.7/go.mod h1:Znaic26hqqKZ3mmG+UA8aLdnWrOYmkdHUd5KoT/DzGY= github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1 h1:4w3T6RGy/jrGrup/o9WwtVXEWbwbL/up/+dPaGR5IfU= github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1/go.mod h1:R1qdIYNn+b3mrEkq9r7jM7FVpgGDeOkeYVr3Poc+95g= -github.com/aws/aws-sdk-go-v2/service/rds v1.92.0 h1:W0gUYAjO24u/M6tpR041wMHJWGzleOhxtCnNLImdrZs= -github.com/aws/aws-sdk-go-v2/service/rds v1.92.0/go.mod h1:ADD2uROOoEIXjbjDPEvDDZWnGmfKFYMddgKwG5RlBGw= +github.com/aws/aws-sdk-go-v2/service/rds v1.93.0 h1:jIqOqvzMvmcHgwjPwHvxPCiLV1P2+hPoBwEH8wkfbZ4= +github.com/aws/aws-sdk-go-v2/service/rds v1.93.0/go.mod h1:ADD2uROOoEIXjbjDPEvDDZWnGmfKFYMddgKwG5RlBGw= github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0 h1:4/hmROBioc89sKlMVjHgOaH92zAkrAAMZR3BIvYwyD0= github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0/go.mod h1:UydVhUJOB/DaCJWiaBkPlvuzvWVcUlgbS2Bxn33bcKI= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.31.4 h1:A0vlEMhhjNwiDuSeyqCV5E+nKi71xB7JEZ3zmSk9C2o= @@ -1636,8 +1638,8 @@ github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0 h1:g72Z/eRmA5dK2 github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0/go.mod h1:HR4+m/4+W7RiaFMme0p6Y5dV7bDKhAIn8UiiZfWJVXg= github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8 h1:K21+kYo7APUzqhc6pvCxHWAGxdyaxJqnEfBSySbFlGM= github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8/go.mod h1:LIrvj+qa6+K+FfiOFv/DXgmBxDU/LCZebFYulAITgps= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1 h1:NBrNat0V6a0IlxwURP/kixLzvW7sSYy4/PAqe/OwB5Q= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1/go.mod h1:6M1A4+fuybF+twN7Ch53fSEb0jdQAnDl7SjEQOdJQrE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0 h1:/5/8lHaUP02qAlDUnr3mDMxnFvtOxx7OvZkwvt0JsIE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0/go.mod h1:6M1A4+fuybF+twN7Ch53fSEb0jdQAnDl7SjEQOdJQrE= github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2 h1:vqsk41T4OS50+uU4oYh6YWXjX+wMV8j6fbxMD+xkHXg= github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2/go.mod h1:TsghsVk15IIlBkv5onzATu0Efu4xd8Xqh1QsQRCFoQU= github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.27.7 h1:gj5YZ+wn0LpNlqapkn6mEc3Af3w3G79RPh2eT7Os/zc= @@ -1648,8 +1650,8 @@ github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7 h1:M49WXIllz0oLeFxvvE github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7/go.mod h1:cb8Aygy/+Ap36c0StMfVnUBCLked9v65w7i/ShJLTLs= github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3 h1:pDBrvz7CMK381q5U+nPqtSQZZid5z1XH8lsI6kHNcSY= github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3/go.mod h1:rDMeB13C/RS0/zw68RQD4LLiWChf5tZBKjEQmjtHa/c= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7 h1:cUSak+oDWuKhl3doMhJkm8adfJcP6wRz9Alh9HxDQJI= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7/go.mod h1:c4Zcr9bz35UJ07RC3cR/zBdpFn7ZjZqy/ow+oN0+NEo= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0 h1:D7xRgsQnKiC/BQOVfG9DrsdRo2PIPwCwgHb6EpKLjFQ= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0/go.mod h1:c4Zcr9bz35UJ07RC3cR/zBdpFn7ZjZqy/ow+oN0+NEo= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7 h1:6SZ8kRmQE278KIJXq4cLdlOgO7nvlxgn6BNZRIIuyFQ= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7/go.mod h1:RFwYVDBuEI0U+vxTP5m5lGgGe9Wo2kagynHfxTl2fWU= github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.25.7 h1:/NwKq9S1DBMAIYNamv9kBz0fwuqnILphCnilPMO48Yc= @@ -1670,8 +1672,8 @@ github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0 h1:akXaBXvSIT3ca7Ojnc1TX+2p github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0/go.mod h1:X85zeZUOEsqLnH/CShIydM9ANVMwXHL1A/pvTMSQw6U= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0 h1:keGexhxWOl6TmtE3QI+ofpgFIgdMLc3lfkwgjuSXe1o= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0/go.mod h1:LoIh7abCP1rQng1kxJVJOTux55TaYN2tVN7G+zNbhus= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7 h1:lRA+BvESWVoldCxaw3SG9UssITkVref8rlVy5xCsh0A= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7/go.mod h1:hCwaxwoPRJmODF1jv6HvbUyT9q7Ak43LesgkvNvZ0PI= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8 h1:/3jd7Xm88RYeYpfInSUMCLF+zVgfYK8N5xWPlj05vS4= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8/go.mod h1:hCwaxwoPRJmODF1jv6HvbUyT9q7Ak43LesgkvNvZ0PI= github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8 h1:9TVRGRx70yb6sa0QHQiASkQJvi/7yyHjSgacjqtuoGs= github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8/go.mod h1:e2l9QQlF3fXpXQp/eOaiAY8eVIk/JZX4Ood3FFMSGa8= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 h1:Nyfbgei75bohfmZNxgN27i528dGYVzqWJGlAO6lzXy8= @@ -1686,8 +1688,8 @@ github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7 h1:5wifyBACWZHZQ2Qgf github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7/go.mod h1:yKI83wCV2CPuFQC8xrt8pzAiemWUsz7NKFZEOJBO+Og= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7 h1:uUMAVnxMbdZNkIYjSa0x33AQQ7d/FctnXacslwqHV20= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7/go.mod h1:6lOlu/wGdOPV5TwZ4gPZWDb0y1PtzN+jaUWL++ocCx8= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7 h1:GfXWwM9/iEJVcWQaMu22YzBeGQnY6zjiZD556awNJBA= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7/go.mod h1:YMM+e0OfZQVBpTJs+WNZWP/hdodeWnepXgancR5NFFw= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0 h1:e1QcVk0DcUPLPUjnBC3A+Z5kvDc0Sqp3jWQvhjGEwSE= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0/go.mod h1:YMM+e0OfZQVBpTJs+WNZWP/hdodeWnepXgancR5NFFw= github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7 h1:MpCqFu4StEaeuKFfcfHBr+a6I2ZG+GgiNZqKa5gBHI8= github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7/go.mod h1:Idae0gtkk4euj6ncytZGgDkkyZKmkFasf1mbZZ0RA6s= github.com/aws/aws-sdk-go-v2/service/ses v1.29.1 h1:2e4bmSER1FF330Xu8p0nwnV4Ctdb0VzLQPUV15xs3iY= @@ -1726,22 +1728,24 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HS github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8= github.com/aws/aws-sdk-go-v2/service/swf v1.27.8 h1:uOj2sgPJAhL/SGgWo+eXS6BwzSvf1b1aU7j3EXjnk88= github.com/aws/aws-sdk-go-v2/service/swf v1.27.8/go.mod h1:AvLsUcEcGmH2QWmwosGAMkBqRrsI0Jr2x92clBtul9s= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2 h1:k/jiEnfNxjWewwhKbdqkvrOo/AIyQTPgaAxTy/nqYJU= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2/go.mod h1:S/mI+GqL6A6JNbKqu0M9qKop3LOE6X96OzXdJX0rO6w= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0 h1:1xNsirfhnLd8DKsfPWrJK5T+KCV4CaYH8SYzgiklKWM= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0/go.mod h1:S/mI+GqL6A6JNbKqu0M9qKop3LOE6X96OzXdJX0rO6w= github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1 h1:eJp5OnMaO41jYGwemZSOtmWf2g/TSAYfWEQDfZ6yBP4= github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1/go.mod h1:izz7C90kWSbYfURLt+atG6pdCvOP3AFjGEznRf0YgGw= github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0 h1:Cqjh7UV5nW8VXuvpwtlpboGn7az0PjpQuaWdQbBMgzY= github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0/go.mod h1:oIpMQLOrjkZVCZl0ff5cDgE/zZuFE4PwVb61+2fkELk= +github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1 h1:nfS8q82YuHG8pks28bGSAqy9R44XBLM72jcKDqRG7ak= +github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1/go.mod h1:PJ9MdxcmYoM5bLKzp92fdGooNWHTDMhuC4TGJ3peY7c= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8 h1:chzp64fl/hknlRR9jlstQDB4bYaf848v7KmzUB13omA= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8/go.mod h1:6r72p62vXJL+0VTgk9rVV7i9+C0qTcx+HuL56XT9Pus= github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7 h1:KJ5CkGw76hEoR66sJRZFgiRGxtybWGuQgvnJ+Q6qTtA= github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7/go.mod h1:BwUrZHaN6ruqmc8+b12wWhJ6fHqLrkZ0Z214feUqWWM= -github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0 h1:IA34IDWH2ooVUIPOidlQL1wZLej8QbcaZsYVgeRiA6w= -github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0/go.mod h1:UV0UI3xdWUkyarrq5gViMKtXx4EWBKQsSpPxc+rdJCA= +github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0 h1:2JFcCNsaT1ykArnJ7B6fFjE4H4OJtT38vHpsufjLvoY= +github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0/go.mod h1:UV0UI3xdWUkyarrq5gViMKtXx4EWBKQsSpPxc+rdJCA= github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3 h1:3HJY3Fym+WfG/BQmrrGq5hS80th6Vlx3VM2ZyaH41Lo= github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3/go.mod h1:myoi8VQCWyHnkfxRjkM1H5lFQilgGXbU2ulwAVqxeow= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1 h1:i2NuSEXw9cKW4zCT57AsL6v4VnX86dsxz4d9GQc4FwU= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1/go.mod h1:LLTXSn+ChGS/Ejt+akSlR0QBJ2VJVibiKQfp/IovK7Q= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2 h1:AccQsc7IIvDFoQ+ufWB04NQ1Ebgzf6rNAbN7fxkt57g= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2/go.mod h1:LLTXSn+ChGS/Ejt+akSlR0QBJ2VJVibiKQfp/IovK7Q= github.com/aws/aws-sdk-go-v2/service/waf v1.25.7 h1:QatDy5lb2iXs9GPxuPSRDogX2HesmmUXu0GCDCQ7exQ= github.com/aws/aws-sdk-go-v2/service/waf v1.25.7/go.mod h1:Jx83wxDXt4tq2UEhy4ODhqgpb6NBkQRs4TSkcHfBPcg= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.7 h1:9V+YZqYy+FvDzZF16xXE7IWYlNWJKurMay7HC+ZGm0A= @@ -2176,8 +2180,8 @@ github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= github.com/hashicorp/terraform-json v0.19.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= -github.com/hashicorp/terraform-json v0.23.0 h1:sniCkExU4iKtTADReHzACkk8fnpQXrdD2xoR+lppBkI= -github.com/hashicorp/terraform-json v0.23.0/go.mod h1:MHdXbBAbSg0GvzuWazEGKAn/cyNfIB7mN6y7KJN6y2c= +github.com/hashicorp/terraform-json v0.24.0 h1:rUiyF+x1kYawXeRth6fKFm/MdfBS6+lW4NbeATsYz8Q= +github.com/hashicorp/terraform-json v0.24.0/go.mod h1:Nfj5ubo9xbu9uiAoZVBsNOjvNKB66Oyrvtit74kC7ow= github.com/hashicorp/terraform-plugin-framework v1.13.0 h1:8OTG4+oZUfKgnfTdPTJwZ532Bh2BobF4H+yBiYJ/scw= github.com/hashicorp/terraform-plugin-framework v1.13.0/go.mod h1:j64rwMGpgM3NYXTKuxrCnyubQb/4VKldEKlcG8cvmjU= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 h1:SJXL5FfJJm17554Kpt9jFXngdM6fXbnUnZ6iT2IeiYA= @@ -2186,8 +2190,8 @@ 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-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0 h1:RXMmu7JgpFjnI1a5QjMCBb11usrW2OtAG+iOTIj5c9Y= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= +github.com/hashicorp/terraform-plugin-framework-validators v0.16.0 h1:O9QqGoYDzQT7lwTXUsZEtgabeWW96zUBh47Smn2lkFA= +github.com/hashicorp/terraform-plugin-framework-validators v0.16.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks= github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw= @@ -2456,6 +2460,8 @@ github.com/pulumi/providertest v0.1.3 h1:GpNKRy/haNjRHiUA9bi4diU4Op2zf3axYXbga5A github.com/pulumi/providertest v0.1.3/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= github.com/pulumi/pulumi-java/pkg v0.19.0 h1:T9kkGUQJV7UTxenw08m3txsgQkNVnZZxvn1zCcNjaE8= github.com/pulumi/pulumi-java/pkg v0.19.0/go.mod h1:YKYYFEb3Jvzf/dDJo0xOeEkIfBAMkkkdhXulauvEjmc= +github.com/pulumi/pulumi-terraform-bridge/pf v0.49.0 h1:GJ20wQxz5dYbOWdDyDp1E3SuuTuLVdBpnp70FJ+VVpQ= +github.com/pulumi/pulumi-terraform-bridge/pf v0.49.0/go.mod h1:zDdNBSsrNhUxyeX1MrXr/O71DBpWMFZ8dGIGV0Pbj0c= github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0 h1:FpoJNeqICq0p0IlSs1vOvHarp7uVPMMeTXF321T075k= github.com/pulumi/pulumi-terraform-bridge/v3 v3.98.0/go.mod h1:q0QIquTDad7QvzdLmT31bzISahN1XrnGF/w/vIsxlX0= github.com/pulumi/pulumi-yaml v1.12.0 h1:ThJP+EBqeJyCnS6w6/PwcEFOT5o112qv0lObhefmFCk= diff --git a/examples/provider_test.go b/examples/provider_test.go index a7e1d63b253..039b461d6ed 100644 --- a/examples/provider_test.go +++ b/examples/provider_test.go @@ -4,6 +4,7 @@ package examples import ( "bytes" "context" + _ "embed" "encoding/json" "fmt" "os" @@ -13,15 +14,21 @@ import ( "github.com/pulumi/providertest" "github.com/pulumi/providertest/optproviderupgrade" + "github.com/pulumi/providertest/providers" "github.com/pulumi/providertest/pulumitest" "github.com/pulumi/providertest/pulumitest/assertpreview" "github.com/pulumi/providertest/pulumitest/optnewstack" "github.com/pulumi/providertest/pulumitest/opttest" + pfbridge "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/pf/tfbridge" "github.com/pulumi/pulumi/sdk/v3/go/auto/optpreview" "github.com/pulumi/pulumi/sdk/v3/go/auto/optup" "github.com/pulumi/pulumi/sdk/v3/go/common/apitype" + pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + aws "github.com/pulumi/pulumi-aws/provider/v6" + "github.com/pulumi/pulumi-aws/provider/v6/pkg/version" ) func TestUpgradeCoverage(t *testing.T) { @@ -317,3 +324,32 @@ func planEqual(t *testing.T, firstPlan, secondPlan string) bool { return assert.Equal(t, firstPlanData, secondPlanData) } + +func inPlacePulumiTest(t *testing.T, dir string, opts ...opttest.Option) *pulumitest.PulumiTest { + t.Helper() + if testing.Short() { + t.Skipf("Skipping in testing.Short() mode, assuming this is a CI run without AWS creds") + return nil + } + rpFactory := providers.ResourceProviderFactory(providerServer) + + opts = append(opts, opttest.AttachProvider("aws", rpFactory)) + return pulumitest.NewPulumiTest(t, dir, opts...) +} + +func providerServer(_ providers.PulumiTest) (pulumirpc.ResourceProviderServer, error) { + ctx := context.Background() + // This is necessary for gRPC testing. It doesn't effect integration tests, since + // they use their own binary. + version.Version = "6.0.0" + info := *aws.Provider() + + return pfbridge.MakeMuxedServer(ctx, info.Name, info, + /* + * We leave the schema blank. This will result in incorrect calls to + * GetSchema, but otherwise does not effect the provider. It reduces the + * time to test start by minutes. + */ + []byte("{}"), + )(nil) +} diff --git a/examples/test-programs/elasticache-replication-group/Pulumi.yaml b/examples/test-programs/elasticache-replication-group/Pulumi.yaml new file mode 100644 index 00000000000..74f2373992d --- /dev/null +++ b/examples/test-programs/elasticache-replication-group/Pulumi.yaml @@ -0,0 +1,17 @@ +name: elasticache-replication-group +runtime: yaml +config: + pulumi:tags: + value: + pulumi:template: aws-yaml +outputs: + replicationGroupArn: ${replicationGroup.arn} +resources: + replicationGroup: + type: aws:elasticache:ReplicationGroup + properties: + description: Example Replication Group + atRestEncryptionEnabled: true + nodeType: cache.m4.large + numCacheClusters: 1 + port: 6379 diff --git a/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/grpc.json b/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/grpc.json new file mode 100644 index 00000000000..222c4be497c --- /dev/null +++ b/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/grpc.json @@ -0,0 +1,18 @@ +{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{}} +{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{}} +{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"info":{"entryPoint":".","options":{},"programDirectory":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group","rootDirectory":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group"},"program":".","project":"deprecated","pwd":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group"},"response":{"plugins":[{"kind":"resource","name":"aws"}]}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"invokeTransforms"},"response":{"hasSupport":true}} +{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"acceptResources":true,"acceptSecrets":true,"customTimeouts":{},"name":"elasticache-replication-group-test","object":{},"sourcePosition":{"line":195,"uri":"project://%2Fhome%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fserver%2Fserver.go"},"supportsResultReporting":true,"type":"pulumi:pulumi:Stack"},"response":{"object":{},"urn":"urn:pulumi:test::elasticache-replication-group::pulumi:pulumi:Stack::elasticache-replication-group-test"}} +{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"v5.42.0"}} +{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"name":"default","news":{},"olds":{},"type":"pulumi:providers:aws","urn":"urn:pulumi:test::elasticache-replication-group::pulumi:providers:aws::default"},"response":{"inputs":{}}} +{"method":"/pulumirpc.ResourceProvider/Configure","request":{"acceptResources":true,"acceptSecrets":true,"args":{},"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"supportsPreview":true}} +{"method":"/pulumirpc.ResourceProvider/Check","request":{"name":"replicationGroup","news":{"atRestEncryptionEnabled":true,"description":"Example Replication Group","nodeType":"cache.m4.large","numCacheClusters":1,"port":6379},"olds":{},"randomSeed":"fefUMF9ftDGSGZ9YAa9BrUVDMLh99HDFb/J/ql7xRl8=","type":"aws:elasticache/replicationGroup:ReplicationGroup","urn":"urn:pulumi:test::elasticache-replication-group::aws:elasticache/replicationGroup:ReplicationGroup::replicationGroup"},"response":{"inputs":{"__defaults":["automaticFailoverEnabled","engine","multiAzEnabled","replicationGroupId"],"atRestEncryptionEnabled":true,"automaticFailoverEnabled":false,"description":"Example Replication Group","engine":"redis","multiAzEnabled":false,"nodeType":"cache.m4.large","numCacheClusters":1,"port":6379,"replicationGroupId":"replicationgroup-f1113fa"}}} +{"method":"/pulumirpc.ResourceProvider/Create","request":{"name":"replicationGroup","properties":{"__defaults":["automaticFailoverEnabled","engine","multiAzEnabled","replicationGroupId"],"atRestEncryptionEnabled":true,"automaticFailoverEnabled":false,"description":"Example Replication Group","engine":"redis","multiAzEnabled":false,"nodeType":"cache.m4.large","numCacheClusters":1,"port":6379,"replicationGroupId":"replicationgroup-f1113fa"},"type":"aws:elasticache/replicationGroup:ReplicationGroup","urn":"urn:pulumi:test::elasticache-replication-group::aws:elasticache/replicationGroup:ReplicationGroup::replicationGroup"},"response":{"id":"replicationgroup-f1113fa","properties":{"__meta":"{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":3600000000000,\"delete\":2400000000000,\"update\":2400000000000},\"schema_version\":\"1\"}","arn":"arn:aws:elasticache:us-west-2:616138583583:replicationgroup:replicationgroup-f1113fa","atRestEncryptionEnabled":true,"authToken":{"4dabf18193072939515e22adb298388d":"1b47061264138c4ac30d75fd1eb44270","value":"REDACTED BY PROVIDERTEST"},"autoMinorVersionUpgrade":true,"automaticFailoverEnabled":false,"clusterEnabled":false,"clusterMode":{"numNodeGroups":1,"replicasPerNodeGroup":0},"dataTieringEnabled":false,"description":"Example Replication Group","engine":"redis","engineVersion":"7.1","engineVersionActual":"7.1.0","id":"replicationgroup-f1113fa","kmsKeyId":"","logDeliveryConfigurations":[],"maintenanceWindow":"thu:08:00-thu:09:00","memberClusters":["replicationgroup-f1113fa-001"],"multiAzEnabled":false,"nodeType":"cache.m4.large","numCacheClusters":1,"numNodeGroups":1,"numberCacheClusters":1,"parameterGroupName":"default.redis7","port":6379,"primaryEndpointAddress":"replicationgroup-f1113fa.01fu6p.ng.0001.usw2.cache.amazonaws.com","readerEndpointAddress":"replicationgroup-f1113fa-ro.01fu6p.ng.0001.usw2.cache.amazonaws.com","replicasPerNodeGroup":0,"replicationGroupDescription":"Example Replication Group","replicationGroupId":"replicationgroup-f1113fa","securityGroupIds":[],"securityGroupNames":[],"snapshotRetentionLimit":0,"snapshotWindow":"11:30-12:30","subnetGroupName":"default","tags":{},"tagsAll":{},"transitEncryptionEnabled":false,"userGroupIds":[]}}} +{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"acceptResources":true,"acceptSecrets":true,"additionalSecretOutputs":["authToken"],"custom":true,"customTimeouts":{},"name":"replicationGroup","object":{"atRestEncryptionEnabled":true,"description":"Example Replication Group","nodeType":"cache.m4.large","numCacheClusters":1,"port":6379},"parent":"urn:pulumi:test::elasticache-replication-group::pulumi:pulumi:Stack::elasticache-replication-group-test","propertyDependencies":{"atRestEncryptionEnabled":{},"description":{},"nodeType":{},"numCacheClusters":{},"port":{}},"sourcePosition":{"line":740,"uri":"project://%2Fhome%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go"},"supportsResultReporting":true,"type":"aws:elasticache/replicationGroup:ReplicationGroup"},"response":{"id":"replicationgroup-f1113fa","object":{"__meta":"{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":3600000000000,\"delete\":2400000000000,\"update\":2400000000000},\"schema_version\":\"1\"}","arn":"arn:aws:elasticache:us-west-2:616138583583:replicationgroup:replicationgroup-f1113fa","atRestEncryptionEnabled":true,"authToken":{"4dabf18193072939515e22adb298388d":"1b47061264138c4ac30d75fd1eb44270","value":"REDACTED BY PROVIDERTEST"},"autoMinorVersionUpgrade":true,"automaticFailoverEnabled":false,"clusterEnabled":false,"clusterMode":{"numNodeGroups":1,"replicasPerNodeGroup":0},"dataTieringEnabled":false,"description":"Example Replication Group","engine":"redis","engineVersion":"7.1","engineVersionActual":"7.1.0","id":"replicationgroup-f1113fa","kmsKeyId":"","logDeliveryConfigurations":[],"maintenanceWindow":"thu:08:00-thu:09:00","memberClusters":["replicationgroup-f1113fa-001"],"multiAzEnabled":false,"nodeType":"cache.m4.large","numCacheClusters":1,"numNodeGroups":1,"numberCacheClusters":1,"parameterGroupName":"default.redis7","port":6379,"primaryEndpointAddress":"replicationgroup-f1113fa.01fu6p.ng.0001.usw2.cache.amazonaws.com","readerEndpointAddress":"replicationgroup-f1113fa-ro.01fu6p.ng.0001.usw2.cache.amazonaws.com","replicasPerNodeGroup":0,"replicationGroupDescription":"Example Replication Group","replicationGroupId":"replicationgroup-f1113fa","securityGroupIds":[],"securityGroupNames":[],"snapshotRetentionLimit":0,"snapshotWindow":"11:30-12:30","subnetGroupName":"default","tags":{},"tagsAll":{},"transitEncryptionEnabled":false,"userGroupIds":[]},"urn":"urn:pulumi:test::elasticache-replication-group::aws:elasticache/replicationGroup:ReplicationGroup::replicationGroup"}} +{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"outputs":{"replicationGroupArn":"arn:aws:elasticache:us-west-2:616138583583:replicationgroup:replicationgroup-f1113fa"},"urn":"urn:pulumi:test::elasticache-replication-group::pulumi:pulumi:Stack::elasticache-replication-group-test"},"response":{}} +{"method":"/pulumirpc.LanguageRuntime/Run","request":{"config":{"pulumi:tags":"{\"pulumi:template\":\"aws-yaml\"}"},"configPropertyMap":{"pulumi:tags":{"pulumi:template":"aws-yaml"}},"info":{"entryPoint":".","options":{},"programDirectory":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group","rootDirectory":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group"},"loaderTarget":"127.0.0.1:59853","monitorAddress":"127.0.0.1:59852","organization":"organization","parallel":48,"program":".","project":"elasticache-replication-group","pwd":"/private/var/folders/qb/q9rbqmxn1jqdfps720v2s9h80000gn/T/TestElasticacheReplicationGroupUpgrade2140664671/007/elasticache-replication-group","stack":"test"},"response":{}} \ No newline at end of file diff --git a/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/stack.json b/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/stack.json new file mode 100644 index 00000000000..2fb7efcd866 --- /dev/null +++ b/examples/testdata/recorded/TestProviderUpgrade/elasticache-replication-group/5.42.0/stack.json @@ -0,0 +1,123 @@ +{ + "version": 3, + "deployment": { + "manifest": { + "time": "2024-12-20T13:46:26.187433+01:00", + "magic": "3b1911ae6e2d8d1f468975cdca7c3c6a48585f5e805330548231ecc6cfbc84ff", + "version": "v3.136.1" + }, + "secrets_providers": { + "type": "passphrase", + "state": { + "salt": "v1:oy5ax0JrJHw=:v1:uPbfPDSCG3f7S7Tc:xM0PIOYrlASy+hEOXlvtZF6vRhGylw==" + } + }, + "resources": [ + { + "urn": "urn:pulumi:test::elasticache-replication-group::pulumi:pulumi:Stack::elasticache-replication-group-test", + "custom": false, + "type": "pulumi:pulumi:Stack", + "outputs": { + "replicationGroupArn": "arn:aws:elasticache:us-west-2:616138583583:replicationgroup:replicationgroup-f1113fa" + }, + "created": "2024-12-20T12:38:08.439718Z", + "modified": "2024-12-20T12:38:08.439718Z" + }, + { + "urn": "urn:pulumi:test::elasticache-replication-group::pulumi:providers:aws::default", + "custom": true, + "id": "3594d271-89a2-49ba-abff-89e893f43a1e", + "type": "pulumi:providers:aws", + "created": "2024-12-20T12:38:15.234254Z", + "modified": "2024-12-20T12:38:15.234254Z" + }, + { + "urn": "urn:pulumi:test::elasticache-replication-group::aws:elasticache/replicationGroup:ReplicationGroup::replicationGroup", + "custom": true, + "id": "replicationgroup-f1113fa", + "type": "aws:elasticache/replicationGroup:ReplicationGroup", + "inputs": { + "__defaults": [ + "automaticFailoverEnabled", + "engine", + "multiAzEnabled", + "replicationGroupId" + ], + "atRestEncryptionEnabled": true, + "automaticFailoverEnabled": false, + "description": "Example Replication Group", + "engine": "redis", + "multiAzEnabled": false, + "nodeType": "cache.m4.large", + "numCacheClusters": 1, + "port": 6379, + "replicationGroupId": "replicationgroup-f1113fa" + }, + "outputs": { + "__meta": "{\"e2bfb730-ecaa-11e6-8f88-34363bc7c4c0\":{\"create\":3600000000000,\"delete\":2400000000000,\"update\":2400000000000},\"schema_version\":\"1\"}", + "arn": "arn:aws:elasticache:us-west-2:616138583583:replicationgroup:replicationgroup-f1113fa", + "atRestEncryptionEnabled": true, + "authToken": { + "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", + "plaintext": "\"REDACTED BY PROVIDERTEST\"" + }, + "autoMinorVersionUpgrade": true, + "automaticFailoverEnabled": false, + "clusterEnabled": false, + "clusterMode": { + "numNodeGroups": 1, + "replicasPerNodeGroup": 0 + }, + "dataTieringEnabled": false, + "description": "Example Replication Group", + "engine": "redis", + "engineVersion": "7.1", + "engineVersionActual": "7.1.0", + "id": "replicationgroup-f1113fa", + "kmsKeyId": "", + "logDeliveryConfigurations": [], + "maintenanceWindow": "thu:08:00-thu:09:00", + "memberClusters": [ + "replicationgroup-f1113fa-001" + ], + "multiAzEnabled": false, + "nodeType": "cache.m4.large", + "numCacheClusters": 1, + "numNodeGroups": 1, + "numberCacheClusters": 1, + "parameterGroupName": "default.redis7", + "port": 6379, + "primaryEndpointAddress": "replicationgroup-f1113fa.01fu6p.ng.0001.usw2.cache.amazonaws.com", + "readerEndpointAddress": "replicationgroup-f1113fa-ro.01fu6p.ng.0001.usw2.cache.amazonaws.com", + "replicasPerNodeGroup": 0, + "replicationGroupDescription": "Example Replication Group", + "replicationGroupId": "replicationgroup-f1113fa", + "securityGroupIds": [], + "securityGroupNames": [], + "snapshotRetentionLimit": 0, + "snapshotWindow": "11:30-12:30", + "subnetGroupName": "default", + "tags": {}, + "tagsAll": {}, + "transitEncryptionEnabled": false, + "userGroupIds": [] + }, + "parent": "urn:pulumi:test::elasticache-replication-group::pulumi:pulumi:Stack::elasticache-replication-group-test", + "provider": "urn:pulumi:test::elasticache-replication-group::pulumi:providers:aws::default::3594d271-89a2-49ba-abff-89e893f43a1e", + "propertyDependencies": { + "atRestEncryptionEnabled": [], + "description": [], + "nodeType": [], + "numCacheClusters": [], + "port": [] + }, + "additionalSecretOutputs": [ + "authToken" + ], + "created": "2024-12-20T12:46:26.168687Z", + "modified": "2024-12-20T12:46:26.168687Z" + } + ], + "metadata": {} + } +} \ No newline at end of file diff --git a/patches/0005-Remove-lakeformation-catalog_resource-default.patch b/patches/0005-Remove-lakeformation-catalog_resource-default.patch index 9e29aaf8882..c72ee876688 100644 --- a/patches/0005-Remove-lakeformation-catalog_resource-default.patch +++ b/patches/0005-Remove-lakeformation-catalog_resource-default.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove lakeformation catalog_resource default diff --git a/internal/service/lakeformation/permissions.go b/internal/service/lakeformation/permissions.go -index 48ff32d5a5..06523ef2da 100644 +index f05de48b13..f22ab6cb01 100644 --- a/internal/service/lakeformation/permissions.go +++ b/internal/service/lakeformation/permissions.go @@ -44,8 +44,8 @@ func ResourcePermissions() *schema.Resource { diff --git a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch index 988d61a1dd2..ceca2b707b0 100644 --- a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -122,7 +122,7 @@ index 961d1f0438..710fd0b998 100644 "hls_ingest": { Type: schema.TypeList, diff --git a/internal/service/memorydb/cluster.go b/internal/service/memorydb/cluster.go -index ec8b06cf70..2be5b88de3 100644 +index f3a35c84e5..1e3027048a 100644 --- a/internal/service/memorydb/cluster.go +++ b/internal/service/memorydb/cluster.go @@ -79,7 +79,7 @@ func resourceCluster() *schema.Resource { @@ -226,7 +226,7 @@ index d19358fa76..b13859ab8e 100644 names.AttrSkipDestroy: { Type: schema.TypeBool, diff --git a/internal/service/rds/parameter_group.go b/internal/service/rds/parameter_group.go -index 8c49d1133c..17c729d305 100644 +index 0e4ca3f870..c1e331f54f 100644 --- a/internal/service/rds/parameter_group.go +++ b/internal/service/rds/parameter_group.go @@ -53,7 +53,7 @@ func resourceParameterGroup() *schema.Resource { diff --git a/patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch b/patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch index 07c48d04537..d61d1eb3ab0 100644 --- a/patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch +++ b/patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch @@ -18,10 +18,10 @@ index 18133c7439..ea9f2d088f 100644 Blocks: map[string]schema.Block{ "export": schema.ListNestedBlock{ diff --git a/internal/service/bedrockagent/agent.go b/internal/service/bedrockagent/agent.go -index 4a983c9ca6..b596196ea6 100644 +index ffd7430856..2ddfed3ebd 100644 --- a/internal/service/bedrockagent/agent.go +++ b/internal/service/bedrockagent/agent.go -@@ -165,7 +165,7 @@ func (r *agentResource) Schema(ctx context.Context, request resource.SchemaReque +@@ -170,7 +170,7 @@ func (r *agentResource) Schema(ctx context.Context, request resource.SchemaReque }, }, names.AttrTags: tftags.TagsAttribute(), diff --git a/patches/0064-Adapt-gamelift-matchmaking-resources.patch b/patches/0064-Adapt-gamelift-matchmaking-resources.patch index e97bfc5cd42..e9c8dda6570 100644 --- a/patches/0064-Adapt-gamelift-matchmaking-resources.patch +++ b/patches/0064-Adapt-gamelift-matchmaking-resources.patch @@ -645,10 +645,10 @@ index 4295987ae6..7554a3029c 100644 return nil } diff --git a/names/data/names_data.hcl b/names/data/names_data.hcl -index d51897bf5a..c1d81088f2 100644 +index f1c599be53..79517f2f61 100644 --- a/names/data/names_data.hcl +++ b/names/data/names_data.hcl -@@ -3883,7 +3883,8 @@ service "fsx" { +@@ -3882,7 +3882,8 @@ service "fsx" { service "gamelift" { sdk { diff --git a/patches/0073-Restore-AWS-Go-SDK-v1-session.patch b/patches/0073-Restore-AWS-Go-SDK-v1-session.patch index eca6b8c1a86..a33d79e6d85 100644 --- a/patches/0073-Restore-AWS-Go-SDK-v1-session.patch +++ b/patches/0073-Restore-AWS-Go-SDK-v1-session.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Restore AWS Go SDK v1 session diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go -index 14395a7413..96197a1b56 100644 +index 0d4c6c6d6c..1adf9943c4 100644 --- a/internal/conns/awsclient.go +++ b/internal/conns/awsclient.go -@@ -295,6 +295,7 @@ func (c *AWSClient) apiClientConfig(ctx context.Context, servicePackageName stri +@@ -305,6 +305,7 @@ func (c *AWSClient) apiClientConfig(ctx context.Context, servicePackageName stri "aws_sdkv2_config": c.awsConfig, "endpoint": c.endpoints[servicePackageName], "partition": c.Partition(ctx), diff --git a/patches/0077-Fix-tags_all-Computed-for-CodeConnections-Host-and-C.patch b/patches/0077-Fix-tags_all-Computed-for-CodeConnections-Host-and-C.patch index 1c7fb02f9cd..c688586ec77 100644 --- a/patches/0077-Fix-tags_all-Computed-for-CodeConnections-Host-and-C.patch +++ b/patches/0077-Fix-tags_all-Computed-for-CodeConnections-Host-and-C.patch @@ -18,7 +18,7 @@ index 1beba6fd2c..0b8e5597e5 100644 Blocks: map[string]schema.Block{ names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ diff --git a/internal/service/codeconnections/host.go b/internal/service/codeconnections/host.go -index bcaee2c2d9..88bdbf102c 100644 +index 2f086c0465..d4adfd7f28 100644 --- a/internal/service/codeconnections/host.go +++ b/internal/service/codeconnections/host.go @@ -87,7 +87,7 @@ func (r *hostResource) Schema(ctx context.Context, req resource.SchemaRequest, r diff --git a/patches/0080-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0080-Fix-tags_all-Computed-for-PF-resources.patch new file mode 100644 index 00000000000..f4500544f65 --- /dev/null +++ b/patches/0080-Fix-tags_all-Computed-for-PF-resources.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Florian Stadler +Date: Fri, 20 Dec 2024 09:36:29 +0100 +Subject: [PATCH] Fix tags_all Computed for PF resources + + +diff --git a/internal/service/apigateway/domain_name_access_association.go b/internal/service/apigateway/domain_name_access_association.go +index c194533973..6b6c868158 100644 +--- a/internal/service/apigateway/domain_name_access_association.go ++++ b/internal/service/apigateway/domain_name_access_association.go +@@ -74,7 +74,7 @@ func (r *domainNameAccessAssociationResource) Schema(ctx context.Context, reques + }, + names.AttrID: framework.IDAttribute(), + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + } + } +diff --git a/internal/service/cloudfront/vpc_origin.go b/internal/service/cloudfront/vpc_origin.go +index c5ccae5b51..b3eb73bb75 100644 +--- a/internal/service/cloudfront/vpc_origin.go ++++ b/internal/service/cloudfront/vpc_origin.go +@@ -60,7 +60,7 @@ func (r *vpcOriginResource) Schema(ctx context.Context, request resource.SchemaR + Computed: true, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "vpc_origin_endpoint_config": schema.ListNestedBlock{ +diff --git a/internal/service/memorydb/multi_region_cluster.go b/internal/service/memorydb/multi_region_cluster.go +index 42b0fc1d42..e3b5b68ca0 100644 +--- a/internal/service/memorydb/multi_region_cluster.go ++++ b/internal/service/memorydb/multi_region_cluster.go +@@ -126,7 +126,7 @@ func (r *multiRegionClusterResource) Schema(ctx context.Context, request resourc + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + "tls_enabled": schema.BoolAttribute{ + Optional: true, + Computed: true, +diff --git a/internal/service/networkmanager/dx_gateway_attachment.go b/internal/service/networkmanager/dx_gateway_attachment.go +index 508ce646c3..23637d8c5e 100644 +--- a/internal/service/networkmanager/dx_gateway_attachment.go ++++ b/internal/service/networkmanager/dx_gateway_attachment.go +@@ -111,7 +111,7 @@ func (r *directConnectGatewayAttachmentResource) Schema(ctx context.Context, req + Computed: true, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ +diff --git a/internal/service/rds/cluster_snapshot_copy.go b/internal/service/rds/cluster_snapshot_copy.go +index f9044db1ed..db79f0c198 100644 +--- a/internal/service/rds/cluster_snapshot_copy.go ++++ b/internal/service/rds/cluster_snapshot_copy.go +@@ -146,7 +146,7 @@ func (r *resourceClusterSnapshotCopy) Schema(ctx context.Context, req resource.S + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + "target_db_cluster_snapshot_identifier": schema.StringAttribute{ + Required: true, + PlanModifiers: []planmodifier.String{ diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index ab2c96491f4..ac378905a34 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -508,6 +508,10 @@ } } }, + "aws_api_gateway_domain_name_access_association": { + "current": "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", + "majorVersion": 6 + }, "aws_api_gateway_gateway_response": { "current": "aws:apigateway/response:Response", "majorVersion": 6 @@ -3267,6 +3271,9 @@ "current": "aws:autoscaling/group:Group", "majorVersion": 6, "fields": { + "availability_zone_distribution": { + "maxItemsOne": true + }, "availability_zones": { "maxItemsOne": false }, @@ -6025,6 +6032,9 @@ }, "s3_origin_config": { "maxItemsOne": true + }, + "vpc_origin_config": { + "maxItemsOne": true } } } @@ -6402,6 +6412,29 @@ } } }, + "aws_cloudfront_vpc_origin": { + "current": "aws:cloudfront/vpcOrigin:VpcOrigin", + "majorVersion": 6, + "fields": { + "vpc_origin_endpoint_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "origin_ssl_protocols": { + "maxItemsOne": true, + "elem": { + "fields": { + "items": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + }, "aws_cloudfrontkeyvaluestore_key": { "current": "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", "majorVersion": 6 @@ -24456,6 +24489,10 @@ } } }, + "aws_memorydb_multi_region_cluster": { + "current": "aws:memorydb/multiRegionCluster:MultiRegionCluster", + "majorVersion": 6 + }, "aws_memorydb_parameter_group": { "current": "aws:memorydb/parameterGroup:ParameterGroup", "majorVersion": 6, @@ -25581,7 +25618,12 @@ }, "aws_networkmanager_attachment_accepter": { "current": "aws:networkmanager/attachmentAccepter:AttachmentAccepter", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "edge_locations": { + "maxItemsOne": false + } + } }, "aws_networkmanager_connect_attachment": { "current": "aws:networkmanager/connectAttachment:ConnectAttachment", @@ -25673,6 +25715,15 @@ } } }, + "aws_networkmanager_dx_gateway_attachment": { + "current": "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", + "majorVersion": 6, + "fields": { + "edge_locations": { + "maxItemsOne": false + } + } + }, "aws_networkmanager_global_network": { "current": "aws:networkmanager/globalNetwork:GlobalNetwork", "majorVersion": 6 @@ -155203,6 +155254,15 @@ "current": "aws:rds/clusterRoleAssociation:ClusterRoleAssociation", "majorVersion": 6 }, + "aws_rds_cluster_snapshot_copy": { + "current": "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", + "majorVersion": 6, + "fields": { + "shared_accounts": { + "maxItemsOne": false + } + } + }, "aws_rds_custom_db_engine_version": { "current": "aws:rds/customDbEngineVersion:CustomDbEngineVersion", "majorVersion": 6 @@ -274798,6 +274858,15 @@ "current": "aws:servicecatalog/getAppregistryAttributeGroup:getAppregistryAttributeGroup", "majorVersion": 6 }, + "aws_servicecatalogappregistry_attribute_group_associations": { + "current": "aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", + "majorVersion": 6, + "fields": { + "attribute_group_ids": { + "maxItemsOne": false + } + } + }, "aws_servicequotas_service": { "current": "aws:servicequotas/getService:getService", "majorVersion": 6 @@ -276105,6 +276174,7 @@ "aws:apigateway/documentationPart:DocumentationPart": 0, "aws:apigateway/documentationVersion:DocumentationVersion": 0, "aws:apigateway/domainName:DomainName": 0, + "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation": 1, "aws:apigateway/integration:Integration": 0, "aws:apigateway/integrationResponse:IntegrationResponse": 0, "aws:apigateway/method:Method": 0, @@ -276293,6 +276363,7 @@ "aws:cloudfront/publicKey:PublicKey": 0, "aws:cloudfront/realtimeLogConfig:RealtimeLogConfig": 0, "aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy": 0, + "aws:cloudfront/vpcOrigin:VpcOrigin": 1, "aws:cloudhsmv2/cluster:Cluster": 0, "aws:cloudhsmv2/hsm:Hsm": 0, "aws:cloudsearch/domain:Domain": 0, @@ -276980,6 +277051,7 @@ "aws:mediastore/containerPolicy:ContainerPolicy": 0, "aws:memorydb/acl:Acl": 0, "aws:memorydb/cluster:Cluster": 0, + "aws:memorydb/multiRegionCluster:MultiRegionCluster": 1, "aws:memorydb/parameterGroup:ParameterGroup": 0, "aws:memorydb/snapshot:Snapshot": 0, "aws:memorydb/subnetGroup:SubnetGroup": 0, @@ -277021,6 +277093,7 @@ "aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment": 0, "aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation": 0, "aws:networkmanager/device:Device": 0, + "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment": 1, "aws:networkmanager/globalNetwork:GlobalNetwork": 0, "aws:networkmanager/link:Link": 0, "aws:networkmanager/linkAssociation:LinkAssociation": 0, @@ -277128,6 +277201,7 @@ "aws:rds/clusterParameterGroup:ClusterParameterGroup": 0, "aws:rds/clusterRoleAssociation:ClusterRoleAssociation": 0, "aws:rds/clusterSnapshot:ClusterSnapshot": 0, + "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy": 1, "aws:rds/customDbEngineVersion:CustomDbEngineVersion": 0, "aws:rds/eventSubscription:EventSubscription": 0, "aws:rds/exportTask:ExportTask": 1, @@ -278054,6 +278128,7 @@ "aws:serverlessrepository/getApplication:getApplication": 0, "aws:servicecatalog/getAppregistryApplication:getAppregistryApplication": 1, "aws:servicecatalog/getAppregistryAttributeGroup:getAppregistryAttributeGroup": 1, + "aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations": 1, "aws:servicecatalog/getConstraint:getConstraint": 0, "aws:servicecatalog/getLaunchPaths:getLaunchPaths": 0, "aws:servicecatalog/getPortfolio:getPortfolio": 0, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index 023ee3bd242..ceea0f06773 100644 --- a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json @@ -1 +1 @@ -{"auto-settings":{"resources":{"aws_batch_job_definition":{"maxItemsOneOverrides":{"eks_properties.$.pod_properties.$.containers":true}},"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_lexv2models_slot_type":{"maxItemsOneOverrides":{"composite_slot_type_setting":true,"external_source_setting":true,"external_source_setting.$.grammar_slot_type_setting":true,"external_source_setting.$.grammar_slot_type_setting.$.source":true,"slot_type_values":true}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}},"aws_wafv2_web_acl":{"maxItemsOneOverrides":{"association_config.$.request_body.$.api_gateway":false,"association_config.$.request_body.$.app_runner_service":false,"association_config.$.request_body.$.cloudfront":false,"association_config.$.request_body.$.cognito_user_pool":false,"association_config.$.request_body.$.verified_access_instance":false}}},"datasources":{"aws_efs_file_system":{"maxItemsOneOverrides":{"lifecycle_policy":true}},"aws_quicksight_analysis":{"renames":["aws:quicksight/getAnalysis:getAnalysis"]},"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":1,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/sourceApiAssociation:SourceApiAssociation":1,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault":1,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/restoreTestingPlan:RestoreTestingPlan":1,"aws:backup/restoreTestingSelection:RestoreTestingSelection":1,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/guardrail:Guardrail":1,"aws:bedrock/guardrailVersion:GuardrailVersion":1,"aws:bedrock/inferenceProfile:InferenceProfile":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chatbot/slackChannelConfiguration:SlackChannelConfiguration":1,"aws:chatbot/teamsChannelConfiguration:TeamsChannelConfiguration":1,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackInstances:StackInstances":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount":1,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logAnomalyDetector:LogAnomalyDetector":1,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/fleet:Fleet":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codeconnections/connection:Connection":1,"aws:codeconnections/host:Host":1,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:computeoptimizer/enrollmentStatus:EnrollmentStatus":1,"aws:computeoptimizer/recommendationPreferences:RecommendationPreferences":1,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:costoptimizationhub/enrollmentStatus:EnrollmentStatus":1,"aws:costoptimizationhub/preferences:Preferences":1,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/assetType:AssetType":1,"aws:datazone/domain:Domain":1,"aws:datazone/environment:Environment":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:datazone/environmentProfile:EnvironmentProfile":1,"aws:datazone/formType:FormType":1,"aws:datazone/glossary:Glossary":1,"aws:datazone/glossaryTerm:GlossaryTerm":1,"aws:datazone/project:Project":1,"aws:datazone/userProfile:UserProfile":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcBlockPublicAccessExclusion:VpcBlockPublicAccessExclusion":1,"aws:ec2/vpcBlockPublicAccessOptions:VpcBlockPublicAccessOptions":1,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation":1,"aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation":1,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/accountSetting:AccountSetting":1,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryCreationTemplate:RepositoryCreationTemplate":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/reservedCacheNode:ReservedCacheNode":1,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/catalogTableOptimizer:CatalogTableOptimizer":1,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount":1,"aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken":1,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive":1,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/groupPolicyAttachmentsExclusive:GroupPolicyAttachmentsExclusive":1,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/organizationsFeatures:OrganizationsFeatures":1,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePoliciesExclusive:RolePoliciesExclusive":1,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/rolePolicyAttachmentsExclusive:RolePolicyAttachmentsExclusive":1,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPoliciesExclusive:UserPoliciesExclusive":1,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/userPolicyAttachmentsExclusive:UserPolicyAttachmentsExclusive":1,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/lifecyclePolicy:LifecyclePolicy":1,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":1,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionRecursionConfig:FunctionRecursionConfig":1,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/singleScramSecretAssociation:SingleScramSecretAssociation":1,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/authorizeVpcEndpointAccess:AuthorizeVpcEndpointAccess":1,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/emailTemplate:EmailTemplate":1,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pinpoint/smsvoicev2ConfigurationSet:Smsvoicev2ConfigurationSet":1,"aws:pinpoint/smsvoicev2OptOutList:Smsvoicev2OptOutList":1,"aws:pinpoint/smsvoicev2PhoneNumber:Smsvoicev2PhoneNumber":1,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/instanceDesiredState:InstanceDesiredState":1,"aws:rds/integration:Integration":1,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/profilesAssociation:ProfilesAssociation":1,"aws:route53/profilesProfile:ProfilesProfile":1,"aws:route53/profilesResourceAssociation:ProfilesResourceAssociation":1,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:s3tables/namespace:Namespace":1,"aws:s3tables/table:Table":1,"aws:s3tables/tableBucket:TableBucket":1,"aws:s3tables/tableBucketPolicy:TableBucketPolicy":1,"aws:s3tables/tablePolicy:TablePolicy":1,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/hub:Hub":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsControlAssociation:StandardsControlAssociation":1,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/appregistryAttributeGroup:AppregistryAttributeGroup":1,"aws:servicecatalog/appregistryAttributeGroupAssociation:AppregistryAttributeGroupAssociation":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountSuppressionAttributes:AccountSuppressionAttributes":1,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:shield/subscription:Subscription":1,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/quicksetupConfigurationManager:QuicksetupConfigurationManager":1,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreaminfluxdb/dbInstance:DbInstance":1,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpc/securityGroupVpcAssociation:SecurityGroupVpcAssociation":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getDefaultScraperConfiguration:getDefaultScraperConfiguration":1,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getAgentAgentVersions:getAgentAgentVersions":1,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrock/getInferenceProfile:getInferenceProfile":1,"aws:bedrock/getInferenceProfiles:getInferenceProfiles":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codebuild/getFleet:getFleet":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotDatafeedSubscription:getSpotDatafeedSubscription":1,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getReservedCacheNodeOffering:getReservedCacheNodeOffering":1,"aws:elasticache/getServerlessCache:getServerlessCache":1,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getRegistry:getRegistry":1,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getListenerRule:getListenerRule":1,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnitDescendantOrganizationalUnits:getOrganizationalUnitDescendantOrganizationalUnits":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getAnalysis:getAnalysis":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightAnalysis:getQuicksightAnalysis":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getProfilesProfiles:getProfilesProfiles":1,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:route53/getZones:getZones":1,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations":1,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getAppregistryAttributeGroup:getAppregistryAttributeGroup":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:shield/getProtection:getProtection":1,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssm/getPatchBaselines:getPatchBaselines":1,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPermissionSets:getPermissionSets":1,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:synthetics/getRuntimeVersion:getRuntimeVersion":1,"aws:synthetics/getRuntimeVersions:getRuntimeVersions":1,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file +{"auto-settings":{"resources":{"aws_batch_job_definition":{"maxItemsOneOverrides":{"eks_properties.$.pod_properties.$.containers":true}},"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_lexv2models_slot_type":{"maxItemsOneOverrides":{"composite_slot_type_setting":true,"external_source_setting":true,"external_source_setting.$.grammar_slot_type_setting":true,"external_source_setting.$.grammar_slot_type_setting.$.source":true,"slot_type_values":true}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}},"aws_wafv2_web_acl":{"maxItemsOneOverrides":{"association_config.$.request_body.$.api_gateway":false,"association_config.$.request_body.$.app_runner_service":false,"association_config.$.request_body.$.cloudfront":false,"association_config.$.request_body.$.cognito_user_pool":false,"association_config.$.request_body.$.verified_access_instance":false}}},"datasources":{"aws_efs_file_system":{"maxItemsOneOverrides":{"lifecycle_policy":true}},"aws_quicksight_analysis":{"renames":["aws:quicksight/getAnalysis:getAnalysis"]},"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":1,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation":1,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/sourceApiAssociation:SourceApiAssociation":1,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault":1,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/restoreTestingPlan:RestoreTestingPlan":1,"aws:backup/restoreTestingSelection:RestoreTestingSelection":1,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/guardrail:Guardrail":1,"aws:bedrock/guardrailVersion:GuardrailVersion":1,"aws:bedrock/inferenceProfile:InferenceProfile":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chatbot/slackChannelConfiguration:SlackChannelConfiguration":1,"aws:chatbot/teamsChannelConfiguration:TeamsChannelConfiguration":1,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackInstances:StackInstances":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudfront/vpcOrigin:VpcOrigin":1,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount":1,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logAnomalyDetector:LogAnomalyDetector":1,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/fleet:Fleet":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codeconnections/connection:Connection":1,"aws:codeconnections/host:Host":1,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:computeoptimizer/enrollmentStatus:EnrollmentStatus":1,"aws:computeoptimizer/recommendationPreferences:RecommendationPreferences":1,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:costoptimizationhub/enrollmentStatus:EnrollmentStatus":1,"aws:costoptimizationhub/preferences:Preferences":1,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/assetType:AssetType":1,"aws:datazone/domain:Domain":1,"aws:datazone/environment:Environment":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:datazone/environmentProfile:EnvironmentProfile":1,"aws:datazone/formType:FormType":1,"aws:datazone/glossary:Glossary":1,"aws:datazone/glossaryTerm:GlossaryTerm":1,"aws:datazone/project:Project":1,"aws:datazone/userProfile:UserProfile":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcBlockPublicAccessExclusion:VpcBlockPublicAccessExclusion":1,"aws:ec2/vpcBlockPublicAccessOptions:VpcBlockPublicAccessOptions":1,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation":1,"aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation":1,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/accountSetting:AccountSetting":1,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryCreationTemplate:RepositoryCreationTemplate":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/reservedCacheNode:ReservedCacheNode":1,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/catalogTableOptimizer:CatalogTableOptimizer":1,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount":1,"aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken":1,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive":1,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/groupPolicyAttachmentsExclusive:GroupPolicyAttachmentsExclusive":1,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/organizationsFeatures:OrganizationsFeatures":1,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePoliciesExclusive:RolePoliciesExclusive":1,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/rolePolicyAttachmentsExclusive:RolePolicyAttachmentsExclusive":1,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPoliciesExclusive:UserPoliciesExclusive":1,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/userPolicyAttachmentsExclusive:UserPolicyAttachmentsExclusive":1,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/lifecyclePolicy:LifecyclePolicy":1,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":1,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionRecursionConfig:FunctionRecursionConfig":1,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/multiRegionCluster:MultiRegionCluster":1,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/singleScramSecretAssociation:SingleScramSecretAssociation":1,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment":1,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/authorizeVpcEndpointAccess:AuthorizeVpcEndpointAccess":1,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/emailTemplate:EmailTemplate":1,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pinpoint/smsvoicev2ConfigurationSet:Smsvoicev2ConfigurationSet":1,"aws:pinpoint/smsvoicev2OptOutList:Smsvoicev2OptOutList":1,"aws:pinpoint/smsvoicev2PhoneNumber:Smsvoicev2PhoneNumber":1,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy":1,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/instanceDesiredState:InstanceDesiredState":1,"aws:rds/integration:Integration":1,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/profilesAssociation:ProfilesAssociation":1,"aws:route53/profilesProfile:ProfilesProfile":1,"aws:route53/profilesResourceAssociation:ProfilesResourceAssociation":1,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:s3tables/namespace:Namespace":1,"aws:s3tables/table:Table":1,"aws:s3tables/tableBucket:TableBucket":1,"aws:s3tables/tableBucketPolicy:TableBucketPolicy":1,"aws:s3tables/tablePolicy:TablePolicy":1,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/hub:Hub":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsControlAssociation:StandardsControlAssociation":1,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/appregistryAttributeGroup:AppregistryAttributeGroup":1,"aws:servicecatalog/appregistryAttributeGroupAssociation:AppregistryAttributeGroupAssociation":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountSuppressionAttributes:AccountSuppressionAttributes":1,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:shield/subscription:Subscription":1,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/quicksetupConfigurationManager:QuicksetupConfigurationManager":1,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreaminfluxdb/dbInstance:DbInstance":1,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpc/securityGroupVpcAssociation:SecurityGroupVpcAssociation":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getDefaultScraperConfiguration:getDefaultScraperConfiguration":1,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getAgentAgentVersions:getAgentAgentVersions":1,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrock/getInferenceProfile:getInferenceProfile":1,"aws:bedrock/getInferenceProfiles:getInferenceProfiles":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codebuild/getFleet:getFleet":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotDatafeedSubscription:getSpotDatafeedSubscription":1,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getReservedCacheNodeOffering:getReservedCacheNodeOffering":1,"aws:elasticache/getServerlessCache:getServerlessCache":1,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getRegistry:getRegistry":1,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getListenerRule:getListenerRule":1,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnitDescendantOrganizationalUnits:getOrganizationalUnitDescendantOrganizationalUnits":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getAnalysis:getAnalysis":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightAnalysis:getQuicksightAnalysis":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getProfilesProfiles:getProfilesProfiles":1,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:route53/getZones:getZones":1,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations":1,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getAppregistryAttributeGroup:getAppregistryAttributeGroup":1,"aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:shield/getProtection:getProtection":1,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssm/getPatchBaselines:getPatchBaselines":1,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPermissionSets:getPermissionSets":1,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:synthetics/getRuntimeVersion:getRuntimeVersion":1,"aws:synthetics/getRuntimeVersions:getRuntimeVersions":1,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 2002c74d940..ab3860afa49 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -1156,6 +1156,10 @@ }, "aws:alb/ListenerMutualAuthentication:ListenerMutualAuthentication": { "properties": { + "advertiseTrustStoreCaNames": { + "type": "string", + "description": "Valid values are `off` and `on`.\n" + }, "ignoreClientCertificateExpiry": { "type": "boolean", "description": "Whether client certificate expiry is ignored. Default is `false`.\n" @@ -1172,7 +1176,15 @@ "type": "object", "required": [ "mode" - ] + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "advertiseTrustStoreCaNames", + "mode" + ] + } + } }, "aws:alb/ListenerRuleAction:ListenerRuleAction": { "properties": { @@ -2510,11 +2522,11 @@ }, "customCertificateArn": { "type": "string", - "description": "The Amazon resource name (ARN) for the custom certificate.\n" + "description": "The Amazon resource name (ARN) for the custom certificate.\nRequired when `type` is `CUSTOM`.\n" }, "type": { "type": "string", - "description": "The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`.\n" + "description": "The certificate type.\nValid values are `AMPLIFY_MANAGED` and `CUSTOM`.\n" } }, "type": "object", @@ -15141,7 +15153,7 @@ "properties": { "action": { "type": "string", - "description": "Action that is enabled or disabled.\nValid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`.\n" + "description": "Action that is enabled or disabled.\nValid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`.\n" }, "permission": { "type": "string", @@ -16339,6 +16351,15 @@ } } }, + "aws:autoscaling/GroupAvailabilityZoneDistribution:GroupAvailabilityZoneDistribution": { + "properties": { + "capacityDistributionStrategy": { + "type": "string", + "description": "The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`.\n" + } + }, + "type": "object" + }, "aws:autoscaling/GroupInitialLifecycleHook:GroupInitialLifecycleHook": { "properties": { "defaultResult": { @@ -26247,6 +26268,10 @@ "s3OriginConfig": { "$ref": "#/types/aws:cloudfront/DistributionOriginS3OriginConfig:DistributionOriginS3OriginConfig", "description": "CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead.\n" + }, + "vpcOriginConfig": { + "$ref": "#/types/aws:cloudfront/DistributionOriginVpcOriginConfig:DistributionOriginVpcOriginConfig", + "description": "The VPC origin configuration.\n" } }, "type": "object", @@ -26281,16 +26306,14 @@ "description": "HTTPS port the custom origin listens on.\n" }, "originKeepaliveTimeout": { - "type": "integer", - "description": "The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`.\n" + "type": "integer" }, "originProtocolPolicy": { "type": "string", "description": "Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`.\n" }, "originReadTimeout": { - "type": "integer", - "description": "The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`.\n" + "type": "integer" }, "originSslProtocols": { "type": "array", @@ -26386,6 +26409,24 @@ "originAccessIdentity" ] }, + "aws:cloudfront/DistributionOriginVpcOriginConfig:DistributionOriginVpcOriginConfig": { + "properties": { + "originKeepaliveTimeout": { + "type": "integer" + }, + "originReadTimeout": { + "type": "integer" + }, + "vpcOriginId": { + "type": "string", + "description": "The VPC origin ID.\n" + } + }, + "type": "object", + "required": [ + "vpcOriginId" + ] + }, "aws:cloudfront/DistributionRestrictions:DistributionRestrictions": { "properties": { "geoRestriction": { @@ -27118,6 +27159,77 @@ "samplingRate" ] }, + "aws:cloudfront/VpcOriginTimeouts:VpcOriginTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, + "aws:cloudfront/VpcOriginVpcOriginEndpointConfig:VpcOriginVpcOriginEndpointConfig": { + "properties": { + "arn": { + "type": "string", + "description": "The VPC origin ARN.\n" + }, + "httpPort": { + "type": "integer", + "description": "The HTTP port for the CloudFront VPC origin endpoint configuration.\n" + }, + "httpsPort": { + "type": "integer", + "description": "The HTTPS port for the CloudFront VPC origin endpoint configuration.\n" + }, + "name": { + "type": "string", + "description": "The name of the CloudFront VPC origin endpoint configuration.\n" + }, + "originProtocolPolicy": { + "type": "string", + "description": "The origin protocol policy for the CloudFront VPC origin endpoint configuration.\n" + }, + "originSslProtocols": { + "$ref": "#/types/aws:cloudfront/VpcOriginVpcOriginEndpointConfigOriginSslProtocols:VpcOriginVpcOriginEndpointConfigOriginSslProtocols", + "description": "A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin.\n" + } + }, + "type": "object", + "required": [ + "arn", + "httpPort", + "httpsPort", + "name", + "originProtocolPolicy" + ] + }, + "aws:cloudfront/VpcOriginVpcOriginEndpointConfigOriginSslProtocols:VpcOriginVpcOriginEndpointConfigOriginSslProtocols": { + "properties": { + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "quantity": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "items", + "quantity" + ] + }, "aws:cloudfront/getCachePolicyParametersInCacheKeyAndForwardedToOrigin:getCachePolicyParametersInCacheKeyAndForwardedToOrigin": { "properties": { "cookiesConfigs": { @@ -30433,7 +30545,6 @@ "required": [ "securityGroupIds", "subnetIds", - "tlsCertificate", "vpcId" ] }, @@ -34239,6 +34350,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "mgn": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "mq": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -34611,6 +34726,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "timestreamquery": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "timestreamwrite": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -82511,6 +82630,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "mgn": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "mq": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -82883,6 +83006,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "timestreamquery": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "timestreamwrite": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -93074,6 +93201,10 @@ }, "aws:lb/ListenerMutualAuthentication:ListenerMutualAuthentication": { "properties": { + "advertiseTrustStoreCaNames": { + "type": "string", + "description": "Valid values are `off` and `on`.\n" + }, "ignoreClientCertificateExpiry": { "type": "boolean", "description": "Whether client certificate expiry is ignored. Default is `false`.\n" @@ -93090,7 +93221,15 @@ "type": "object", "required": [ "mode" - ] + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "advertiseTrustStoreCaNames", + "mode" + ] + } + } }, "aws:lb/ListenerRuleAction:ListenerRuleAction": { "properties": { @@ -113778,6 +113917,10 @@ "type": "string", "description": "The key name.\n" }, + "overage": { + "type": "boolean", + "description": "Indicates whether overages are allowed.\n" + }, "unit": { "type": "string", "description": "Entitlement unit.\n" @@ -113792,6 +113935,7 @@ "allowCheckIn", "maxCount", "name", + "overage", "unit", "value" ], @@ -119998,6 +120142,23 @@ } } }, + "aws:memorydb/MultiRegionClusterTimeouts:MultiRegionClusterTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:memorydb/ParameterGroupParameter:ParameterGroupParameter": { "properties": { "name": { @@ -124251,6 +124412,23 @@ }, "type": "object" }, + "aws:networkmanager/DxGatewayAttachmentTimeouts:DxGatewayAttachmentTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:networkmanager/LinkBandwidth:LinkBandwidth": { "properties": { "downloadSpeed": { @@ -134246,6 +134424,15 @@ } } }, + "aws:rds/ClusterSnapshotCopyTimeouts:ClusterSnapshotCopyTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:rds/EngineMode:EngineMode": { "type": "string", "enum": [ @@ -155973,7 +156160,8 @@ "aws:verifiedaccess/GroupSseConfiguration:GroupSseConfiguration": { "properties": { "customerManagedKeyEnabled": { - "type": "boolean" + "type": "boolean", + "description": "Boolean flag to indicate that the CMK should be used.\n" }, "kmsKeyArn": { "type": "string", @@ -175643,6 +175831,7 @@ "required": [ "appId", "arn", + "certificateSettings", "certificateVerificationDnsRecord", "domainName", "subDomains" @@ -177030,96 +177219,202 @@ "type": "object" } }, - "aws:apigateway/integration:Integration": { - "description": "Provides an HTTP Method Integration for an API Gateway Integration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n cacheKeyParameters: [\"method.request.path.param\"],\n cacheNamespace: \"foobar\",\n timeoutMilliseconds: 29000,\n requestParameters: {\n \"integration.request.header.X-Authorization\": \"'static'\",\n },\n requestTemplates: {\n \"application/xml\": `{\n \"body\" : input.json('')\n}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\",\n cache_key_parameters=[\"method.request.path.param\"],\n cache_namespace=\"foobar\",\n timeout_milliseconds=29000,\n request_parameters={\n \"integration.request.header.X-Authorization\": \"'static'\",\n },\n request_templates={\n \"application/xml\": \"\"\"{\n \"body\" : $input.json('$')\n}\n\"\"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n CacheKeyParameters = new[]\n {\n \"method.request.path.param\",\n },\n CacheNamespace = \"foobar\",\n TimeoutMilliseconds = 29000,\n RequestParameters = \n {\n { \"integration.request.header.X-Authorization\", \"'static'\" },\n },\n RequestTemplates = \n {\n { \"application/xml\", @\"{\n \"\"body\"\" : $input.json('$')\n}\n\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t\tCacheKeyParameters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"method.request.path.param\"),\n\t\t\t},\n\t\t\tCacheNamespace: pulumi.String(\"foobar\"),\n\t\t\tTimeoutMilliseconds: pulumi.Int(29000),\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"integration.request.header.X-Authorization\": pulumi.String(\"'static'\"),\n\t\t\t},\n\t\t\tRequestTemplates: pulumi.StringMap{\n\t\t\t\t\"application/xml\": pulumi.String(\"{\\n \\\"body\\\" : $input.json('$')\\n}\\n\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder()\n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder()\n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder()\n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder()\n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .cacheKeyParameters(\"method.request.path.param\")\n .cacheNamespace(\"foobar\")\n .timeoutMilliseconds(29000)\n .requestParameters(Map.of(\"integration.request.header.X-Authorization\", \"'static'\"))\n .requestTemplates(Map.of(\"application/xml\", \"\"\"\n{\n \"body\" : $input.json('$')\n}\n \"\"\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n cacheKeyParameters:\n - method.request.path.param\n cacheNamespace: foobar\n timeoutMilliseconds: 29000\n requestParameters:\n integration.request.header.X-Authorization: '''static'''\n requestTemplates:\n application/xml: |\n {\n \"body\" : $input.json('$')\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Lambda integration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst myregion = config.requireObject(\"myregion\");\nconst accountId = config.requireObject(\"accountId\");\n// API Gateway\nconst api = new aws.apigateway.RestApi(\"api\", {name: \"myapi\"});\nconst resource = new aws.apigateway.Resource(\"resource\", {\n pathPart: \"resource\",\n parentId: api.rootResourceId,\n restApi: api.id,\n});\nconst method = new aws.apigateway.Method(\"method\", {\n restApi: api.id,\n resourceId: resource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\n// IAM\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"lambda.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {\n name: \"myrole\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst lambda = new aws.lambda.Function(\"lambda\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n name: \"mylambda\",\n role: role.arn,\n handler: \"lambda.lambda_handler\",\n runtime: aws.lambda.Runtime.Python3d12,\n sourceCodeHash: std.filebase64sha256({\n input: \"lambda.zip\",\n }).then(invoke =\u003e invoke.result),\n});\nconst integration = new aws.apigateway.Integration(\"integration\", {\n restApi: api.id,\n resourceId: resource.id,\n httpMethod: method.httpMethod,\n integrationHttpMethod: \"POST\",\n type: \"AWS_PROXY\",\n uri: lambda.invokeArn,\n});\n// Lambda\nconst apigwLambda = new aws.lambda.Permission(\"apigw_lambda\", {\n statementId: \"AllowExecutionFromAPIGateway\",\n action: \"lambda:InvokeFunction\",\n \"function\": lambda.name,\n principal: \"apigateway.amazonaws.com\",\n sourceArn: pulumi.interpolate`arn:aws:execute-api:${myregion}:${accountId}:${api.id}/*/${method.httpMethod}${resource.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nmyregion = config.require_object(\"myregion\")\naccount_id = config.require_object(\"accountId\")\n# API Gateway\napi = aws.apigateway.RestApi(\"api\", name=\"myapi\")\nresource = aws.apigateway.Resource(\"resource\",\n path_part=\"resource\",\n parent_id=api.root_resource_id,\n rest_api=api.id)\nmethod = aws.apigateway.Method(\"method\",\n rest_api=api.id,\n resource_id=resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\n# IAM\nassume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"lambda.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\nrole = aws.iam.Role(\"role\",\n name=\"myrole\",\n assume_role_policy=assume_role.json)\nlambda_ = aws.lambda_.Function(\"lambda\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n name=\"mylambda\",\n role=role.arn,\n handler=\"lambda.lambda_handler\",\n runtime=aws.lambda_.Runtime.PYTHON3D12,\n source_code_hash=std.filebase64sha256(input=\"lambda.zip\").result)\nintegration = aws.apigateway.Integration(\"integration\",\n rest_api=api.id,\n resource_id=resource.id,\n http_method=method.http_method,\n integration_http_method=\"POST\",\n type=\"AWS_PROXY\",\n uri=lambda_.invoke_arn)\n# Lambda\napigw_lambda = aws.lambda_.Permission(\"apigw_lambda\",\n statement_id=\"AllowExecutionFromAPIGateway\",\n action=\"lambda:InvokeFunction\",\n function=lambda_.name,\n principal=\"apigateway.amazonaws.com\",\n source_arn=pulumi.Output.all(\n id=api.id,\n http_method=method.http_method,\n path=resource.path\n).apply(lambda resolved_outputs: f\"arn:aws:execute-api:{myregion}:{account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}\")\n)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var myregion = config.RequireObject\u003cdynamic\u003e(\"myregion\");\n var accountId = config.RequireObject\u003cdynamic\u003e(\"accountId\");\n // API Gateway\n var api = new Aws.ApiGateway.RestApi(\"api\", new()\n {\n Name = \"myapi\",\n });\n\n var resource = new Aws.ApiGateway.Resource(\"resource\", new()\n {\n PathPart = \"resource\",\n ParentId = api.RootResourceId,\n RestApi = api.Id,\n });\n\n var method = new Aws.ApiGateway.Method(\"method\", new()\n {\n RestApi = api.Id,\n ResourceId = resource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n // IAM\n var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"lambda.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n Name = \"myrole\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambda = new Aws.Lambda.Function(\"lambda\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Name = \"mylambda\",\n Role = role.Arn,\n Handler = \"lambda.lambda_handler\",\n Runtime = Aws.Lambda.Runtime.Python3d12,\n SourceCodeHash = Std.Filebase64sha256.Invoke(new()\n {\n Input = \"lambda.zip\",\n }).Apply(invoke =\u003e invoke.Result),\n });\n\n var integration = new Aws.ApiGateway.Integration(\"integration\", new()\n {\n RestApi = api.Id,\n ResourceId = resource.Id,\n HttpMethod = method.HttpMethod,\n IntegrationHttpMethod = \"POST\",\n Type = \"AWS_PROXY\",\n Uri = lambda.InvokeArn,\n });\n\n // Lambda\n var apigwLambda = new Aws.Lambda.Permission(\"apigw_lambda\", new()\n {\n StatementId = \"AllowExecutionFromAPIGateway\",\n Action = \"lambda:InvokeFunction\",\n Function = lambda.Name,\n Principal = \"apigateway.amazonaws.com\",\n SourceArn = Output.Tuple(api.Id, method.HttpMethod, resource.Path).Apply(values =\u003e\n {\n var id = values.Item1;\n var httpMethod = values.Item2;\n var path = values.Item3;\n return $\"arn:aws:execute-api:{myregion}:{accountId}:{id}/*/{httpMethod}{path}\";\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmyregion := cfg.RequireObject(\"myregion\")\n\t\taccountId := cfg.RequireObject(\"accountId\")\n\t\t// API Gateway\n\t\tapi, err := apigateway.NewRestApi(ctx, \"api\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"myapi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresource, err := apigateway.NewResource(ctx, \"resource\", \u0026apigateway.ResourceArgs{\n\t\t\tPathPart: pulumi.String(\"resource\"),\n\t\t\tParentId: api.RootResourceId,\n\t\t\tRestApi: api.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmethod, err := apigateway.NewMethod(ctx, \"method\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: api.ID(),\n\t\t\tResourceId: resource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM\n\t\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"lambda.amazonaws.com\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"myrole\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilebase64sha256, err := std.Filebase64sha256(ctx, \u0026std.Filebase64sha256Args{\n\t\t\tInput: \"lambda.zip\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambda, err := lambda.NewFunction(ctx, \"lambda\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tName: pulumi.String(\"mylambda\"),\n\t\t\tRole: role.Arn,\n\t\t\tHandler: pulumi.String(\"lambda.lambda_handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d12),\n\t\t\tSourceCodeHash: pulumi.String(invokeFilebase64sha256.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"integration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: api.ID(),\n\t\t\tResourceId: resource.ID(),\n\t\t\tHttpMethod: method.HttpMethod,\n\t\t\tIntegrationHttpMethod: pulumi.String(\"POST\"),\n\t\t\tType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tUri: lambda.InvokeArn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Lambda\n\t\t_, err = lambda.NewPermission(ctx, \"apigw_lambda\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromAPIGateway\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: lambda.Name,\n\t\t\tPrincipal: pulumi.String(\"apigateway.amazonaws.com\"),\n\t\t\tSourceArn: pulumi.All(api.ID(), method.HttpMethod, resource.Path).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\thttpMethod := _args[1].(string)\n\t\t\t\tpath := _args[2].(string)\n\t\t\t\treturn fmt.Sprintf(\"arn:aws:execute-api:%v:%v:%v/*/%v%v\", myregion, accountId, id, httpMethod, path), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.asset.FileArchive;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var myregion = config.get(\"myregion\");\n final var accountId = config.get(\"accountId\");\n // API Gateway\n var api = new RestApi(\"api\", RestApiArgs.builder()\n .name(\"myapi\")\n .build());\n\n var resource = new Resource(\"resource\", ResourceArgs.builder()\n .pathPart(\"resource\")\n .parentId(api.rootResourceId())\n .restApi(api.id())\n .build());\n\n var method = new Method(\"method\", MethodArgs.builder()\n .restApi(api.id())\n .resourceId(resource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n // IAM\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"lambda.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder()\n .name(\"myrole\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambda = new Function(\"lambda\", FunctionArgs.builder()\n .code(new FileArchive(\"lambda.zip\"))\n .name(\"mylambda\")\n .role(role.arn())\n .handler(\"lambda.lambda_handler\")\n .runtime(\"python3.12\")\n .sourceCodeHash(StdFunctions.filebase64sha256(Filebase64sha256Args.builder()\n .input(\"lambda.zip\")\n .build()).result())\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder()\n .restApi(api.id())\n .resourceId(resource.id())\n .httpMethod(method.httpMethod())\n .integrationHttpMethod(\"POST\")\n .type(\"AWS_PROXY\")\n .uri(lambda.invokeArn())\n .build());\n\n // Lambda\n var apigwLambda = new Permission(\"apigwLambda\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromAPIGateway\")\n .action(\"lambda:InvokeFunction\")\n .function(lambda.name())\n .principal(\"apigateway.amazonaws.com\")\n .sourceArn(Output.tuple(api.id(), method.httpMethod(), resource.path()).applyValue(values -\u003e {\n var id = values.t1;\n var httpMethod = values.t2;\n var path = values.t3;\n return String.format(\"arn:aws:execute-api:%s:%s:%s/*/%s%s\", myregion,accountId,id,httpMethod,path);\n }))\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n # Variables\n myregion:\n type: dynamic\n accountId:\n type: dynamic\nresources:\n # API Gateway\n api:\n type: aws:apigateway:RestApi\n properties:\n name: myapi\n resource:\n type: aws:apigateway:Resource\n properties:\n pathPart: resource\n parentId: ${api.rootResourceId}\n restApi: ${api.id}\n method:\n type: aws:apigateway:Method\n properties:\n restApi: ${api.id}\n resourceId: ${resource.id}\n httpMethod: GET\n authorization: NONE\n integration:\n type: aws:apigateway:Integration\n properties:\n restApi: ${api.id}\n resourceId: ${resource.id}\n httpMethod: ${method.httpMethod}\n integrationHttpMethod: POST\n type: AWS_PROXY\n uri: ${lambda.invokeArn}\n # Lambda\n apigwLambda:\n type: aws:lambda:Permission\n name: apigw_lambda\n properties:\n statementId: AllowExecutionFromAPIGateway\n action: lambda:InvokeFunction\n function: ${lambda.name}\n principal: apigateway.amazonaws.com\n sourceArn: arn:aws:execute-api:${myregion}:${accountId}:${api.id}/*/${method.httpMethod}${resource.path}\n lambda:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambda.zip\n name: mylambda\n role: ${role.arn}\n handler: lambda.lambda_handler\n runtime: python3.12\n sourceCodeHash:\n fn::invoke:\n function: std:filebase64sha256\n arguments:\n input: lambda.zip\n return: result\n role:\n type: aws:iam:Role\n properties:\n name: myrole\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n # IAM\n assumeRole:\n fn::invoke:\n function: aws:iam:getPolicyDocument\n arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - lambda.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## VPC Link\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst test = new aws.lb.LoadBalancer(\"test\", {\n name: name,\n internal: true,\n loadBalancerType: \"network\",\n subnets: [subnetId],\n});\nconst testVpcLink = new aws.apigateway.VpcLink(\"test\", {\n name: name,\n targetArn: test.arn,\n});\nconst testRestApi = new aws.apigateway.RestApi(\"test\", {name: name});\nconst testResource = new aws.apigateway.Resource(\"test\", {\n restApi: testRestApi.id,\n parentId: testRestApi.rootResourceId,\n pathPart: \"test\",\n});\nconst testMethod = new aws.apigateway.Method(\"test\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n requestModels: {\n \"application/json\": \"Error\",\n },\n});\nconst testIntegration = new aws.apigateway.Integration(\"test\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: testMethod.httpMethod,\n requestTemplates: {\n \"application/json\": \"\",\n \"application/xml\": `#set(inputRoot = input.path(''))\n{ }`,\n },\n requestParameters: {\n \"integration.request.header.X-Authorization\": \"'static'\",\n \"integration.request.header.X-Foo\": \"'Bar'\",\n },\n type: \"HTTP\",\n uri: \"https://www.google.de\",\n integrationHttpMethod: \"GET\",\n passthroughBehavior: \"WHEN_NO_MATCH\",\n contentHandling: \"CONVERT_TO_TEXT\",\n connectionType: \"VPC_LINK\",\n connectionId: testVpcLink.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nsubnet_id = config.require_object(\"subnetId\")\ntest = aws.lb.LoadBalancer(\"test\",\n name=name,\n internal=True,\n load_balancer_type=\"network\",\n subnets=[subnet_id])\ntest_vpc_link = aws.apigateway.VpcLink(\"test\",\n name=name,\n target_arn=test.arn)\ntest_rest_api = aws.apigateway.RestApi(\"test\", name=name)\ntest_resource = aws.apigateway.Resource(\"test\",\n rest_api=test_rest_api.id,\n parent_id=test_rest_api.root_resource_id,\n path_part=\"test\")\ntest_method = aws.apigateway.Method(\"test\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\",\n request_models={\n \"application/json\": \"Error\",\n })\ntest_integration = aws.apigateway.Integration(\"test\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=test_method.http_method,\n request_templates={\n \"application/json\": \"\",\n \"application/xml\": \"\"\"#set($inputRoot = $input.path('$'))\n{ }\"\"\",\n },\n request_parameters={\n \"integration.request.header.X-Authorization\": \"'static'\",\n \"integration.request.header.X-Foo\": \"'Bar'\",\n },\n type=\"HTTP\",\n uri=\"https://www.google.de\",\n integration_http_method=\"GET\",\n passthrough_behavior=\"WHEN_NO_MATCH\",\n content_handling=\"CONVERT_TO_TEXT\",\n connection_type=\"VPC_LINK\",\n connection_id=test_vpc_link.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var name = config.RequireObject\u003cdynamic\u003e(\"name\");\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var test = new Aws.LB.LoadBalancer(\"test\", new()\n {\n Name = name,\n Internal = true,\n LoadBalancerType = \"network\",\n Subnets = new[]\n {\n subnetId,\n },\n });\n\n var testVpcLink = new Aws.ApiGateway.VpcLink(\"test\", new()\n {\n Name = name,\n TargetArn = test.Arn,\n });\n\n var testRestApi = new Aws.ApiGateway.RestApi(\"test\", new()\n {\n Name = name,\n });\n\n var testResource = new Aws.ApiGateway.Resource(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ParentId = testRestApi.RootResourceId,\n PathPart = \"test\",\n });\n\n var testMethod = new Aws.ApiGateway.Method(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n RequestModels = \n {\n { \"application/json\", \"Error\" },\n },\n });\n\n var testIntegration = new Aws.ApiGateway.Integration(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = testMethod.HttpMethod,\n RequestTemplates = \n {\n { \"application/json\", \"\" },\n { \"application/xml\", @\"#set($inputRoot = $input.path('$'))\n{ }\" },\n },\n RequestParameters = \n {\n { \"integration.request.header.X-Authorization\", \"'static'\" },\n { \"integration.request.header.X-Foo\", \"'Bar'\" },\n },\n Type = \"HTTP\",\n Uri = \"https://www.google.de\",\n IntegrationHttpMethod = \"GET\",\n PassthroughBehavior = \"WHEN_NO_MATCH\",\n ContentHandling = \"CONVERT_TO_TEXT\",\n ConnectionType = \"VPC_LINK\",\n ConnectionId = testVpcLink.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\ttest, err := lb.NewLoadBalancer(ctx, \"test\", \u0026lb.LoadBalancerArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t\tInternal: pulumi.Bool(true),\n\t\t\tLoadBalancerType: pulumi.String(\"network\"),\n\t\t\tSubnets: pulumi.StringArray{\n\t\t\t\tsubnetId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestVpcLink, err := apigateway.NewVpcLink(ctx, \"test\", \u0026apigateway.VpcLinkArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t\tTargetArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRestApi, err := apigateway.NewRestApi(ctx, \"test\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestResource, err := apigateway.NewResource(ctx, \"test\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tParentId: testRestApi.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestMethod, err := apigateway.NewMethod(ctx, \"test\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t\tRequestModels: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(\"Error\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"test\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: testMethod.HttpMethod,\n\t\t\tRequestTemplates: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(\"\"),\n\t\t\t\t\"application/xml\": pulumi.String(\"#set($inputRoot = $input.path('$'))\\n{ }\"),\n\t\t\t},\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"integration.request.header.X-Authorization\": pulumi.String(\"'static'\"),\n\t\t\t\t\"integration.request.header.X-Foo\": pulumi.String(\"'Bar'\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"HTTP\"),\n\t\t\tUri: pulumi.String(\"https://www.google.de\"),\n\t\t\tIntegrationHttpMethod: pulumi.String(\"GET\"),\n\t\t\tPassthroughBehavior: pulumi.String(\"WHEN_NO_MATCH\"),\n\t\t\tContentHandling: pulumi.String(\"CONVERT_TO_TEXT\"),\n\t\t\tConnectionType: pulumi.String(\"VPC_LINK\"),\n\t\t\tConnectionId: testVpcLink.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.apigateway.VpcLink;\nimport com.pulumi.aws.apigateway.VpcLinkArgs;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var name = config.get(\"name\");\n final var subnetId = config.get(\"subnetId\");\n var test = new LoadBalancer(\"test\", LoadBalancerArgs.builder()\n .name(name)\n .internal(true)\n .loadBalancerType(\"network\")\n .subnets(subnetId)\n .build());\n\n var testVpcLink = new VpcLink(\"testVpcLink\", VpcLinkArgs.builder()\n .name(name)\n .targetArn(test.arn())\n .build());\n\n var testRestApi = new RestApi(\"testRestApi\", RestApiArgs.builder()\n .name(name)\n .build());\n\n var testResource = new Resource(\"testResource\", ResourceArgs.builder()\n .restApi(testRestApi.id())\n .parentId(testRestApi.rootResourceId())\n .pathPart(\"test\")\n .build());\n\n var testMethod = new Method(\"testMethod\", MethodArgs.builder()\n .restApi(testRestApi.id())\n .resourceId(testResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .requestModels(Map.of(\"application/json\", \"Error\"))\n .build());\n\n var testIntegration = new Integration(\"testIntegration\", IntegrationArgs.builder()\n .restApi(testRestApi.id())\n .resourceId(testResource.id())\n .httpMethod(testMethod.httpMethod())\n .requestTemplates(Map.ofEntries(\n Map.entry(\"application/json\", \"\"),\n Map.entry(\"application/xml\", \"\"\"\n#set($inputRoot = $input.path('$'))\n{ } \"\"\")\n ))\n .requestParameters(Map.ofEntries(\n Map.entry(\"integration.request.header.X-Authorization\", \"'static'\"),\n Map.entry(\"integration.request.header.X-Foo\", \"'Bar'\")\n ))\n .type(\"HTTP\")\n .uri(\"https://www.google.de\")\n .integrationHttpMethod(\"GET\")\n .passthroughBehavior(\"WHEN_NO_MATCH\")\n .contentHandling(\"CONVERT_TO_TEXT\")\n .connectionType(\"VPC_LINK\")\n .connectionId(testVpcLink.id())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n name:\n type: dynamic\n subnetId:\n type: dynamic\nresources:\n test:\n type: aws:lb:LoadBalancer\n properties:\n name: ${name}\n internal: true\n loadBalancerType: network\n subnets:\n - ${subnetId}\n testVpcLink:\n type: aws:apigateway:VpcLink\n name: test\n properties:\n name: ${name}\n targetArn: ${test.arn}\n testRestApi:\n type: aws:apigateway:RestApi\n name: test\n properties:\n name: ${name}\n testResource:\n type: aws:apigateway:Resource\n name: test\n properties:\n restApi: ${testRestApi.id}\n parentId: ${testRestApi.rootResourceId}\n pathPart: test\n testMethod:\n type: aws:apigateway:Method\n name: test\n properties:\n restApi: ${testRestApi.id}\n resourceId: ${testResource.id}\n httpMethod: GET\n authorization: NONE\n requestModels:\n application/json: Error\n testIntegration:\n type: aws:apigateway:Integration\n name: test\n properties:\n restApi: ${testRestApi.id}\n resourceId: ${testResource.id}\n httpMethod: ${testMethod.httpMethod}\n requestTemplates:\n application/json: \"\"\n application/xml: |-\n #set($inputRoot = $input.path('$'))\n { }\n requestParameters:\n integration.request.header.X-Authorization: '''static'''\n integration.request.header.X-Foo: '''Bar'''\n type: HTTP\n uri: https://www.google.de\n integrationHttpMethod: GET\n passthroughBehavior: WHEN_NO_MATCH\n contentHandling: CONVERT_TO_TEXT\n connectionType: VPC_LINK\n connectionId: ${testVpcLink.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_api_gateway_integration` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example:\n\n```sh\n$ pulumi import aws:apigateway/integration:Integration example 12345abcde/67890fghij/GET\n```\n", + "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation": { + "description": "Creates a domain name access association resource between an access association source and a private custom domain name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.apigateway.DomainNameAccessAssociation(\"example\", {\n accessAssociationSource: exampleAwsVpcEndpoint.id,\n accessAssociationSourceType: \"VPCE\",\n domainNameArn: exampleAwsApiGatewayDomainName.domainNameArn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigateway.DomainNameAccessAssociation(\"example\",\n access_association_source=example_aws_vpc_endpoint[\"id\"],\n access_association_source_type=\"VPCE\",\n domain_name_arn=example_aws_api_gateway_domain_name[\"domainNameArn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ApiGateway.DomainNameAccessAssociation(\"example\", new()\n {\n AccessAssociationSource = exampleAwsVpcEndpoint.Id,\n AccessAssociationSourceType = \"VPCE\",\n DomainNameArn = exampleAwsApiGatewayDomainName.DomainNameArn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.NewDomainNameAccessAssociation(ctx, \"example\", \u0026apigateway.DomainNameAccessAssociationArgs{\n\t\t\tAccessAssociationSource: pulumi.Any(exampleAwsVpcEndpoint.Id),\n\t\t\tAccessAssociationSourceType: pulumi.String(\"VPCE\"),\n\t\t\tDomainNameArn: pulumi.Any(exampleAwsApiGatewayDomainName.DomainNameArn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.apigateway.DomainNameAccessAssociation;\nimport com.pulumi.aws.apigateway.DomainNameAccessAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DomainNameAccessAssociation(\"example\", DomainNameAccessAssociationArgs.builder()\n .accessAssociationSource(exampleAwsVpcEndpoint.id())\n .accessAssociationSourceType(\"VPCE\")\n .domainNameArn(exampleAwsApiGatewayDomainName.domainNameArn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigateway:DomainNameAccessAssociation\n properties:\n accessAssociationSource: ${exampleAwsVpcEndpoint.id}\n accessAssociationSourceType: VPCE\n domainNameArn: ${exampleAwsApiGatewayDomainName.domainNameArn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example:\n\n```sh\n$ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748\n```\n", "properties": { - "cacheKeyParameters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of cache key parameters for the integration.\n" - }, - "cacheNamespace": { - "type": "string", - "description": "Integration's cache namespace.\n" - }, - "connectionId": { - "type": "string", - "description": "ID of the VpcLink used for the integration. **Required** if `connection_type` is `VPC_LINK`\n" - }, - "connectionType": { - "type": "string", - "description": "Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC).\n" - }, - "contentHandling": { + "accessAssociationSource": { "type": "string", - "description": "How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through.\n" + "description": "The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID.\n" }, - "credentials": { + "accessAssociationSourceType": { "type": "string", - "description": "Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\\*:user/\\*`.\n" + "description": "The type of the domain name access association source. Valid values are `VPCE`.\n" }, - "httpMethod": { - "type": "string", - "description": "HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`)\nwhen calling the associated resource.\n" - }, - "integrationHttpMethod": { + "arn": { "type": "string", - "description": "Integration HTTP method\n(`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end.\n**Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.\nNot all methods are compatible with all `AWS` integrations.\ne.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.\n" + "description": "ARN of the domain name access association.\n" }, - "passthroughBehavior": { + "domainNameArn": { "type": "string", - "description": "Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `request_templates` is used.\n" + "description": "The ARN of the domain name.\n" }, - "requestParameters": { + "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "Map of request query string parameters and headers that should be passed to the backend responder.\nFor example: `request_parameters = { \"integration.request.header.X-Some-Other-Header\" = \"method.request.header.X-Some-Header\" }`\n" + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" }, - "requestTemplates": { + "tagsAll": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "Map of the integration's request templates.\n" - }, - "resourceId": { + "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + } + }, + "required": [ + "accessAssociationSource", + "accessAssociationSourceType", + "arn", + "domainNameArn", + "tagsAll" + ], + "inputProperties": { + "accessAssociationSource": { "type": "string", - "description": "API resource ID.\n" + "description": "The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID.\n" }, - "restApi": { + "accessAssociationSourceType": { "type": "string", - "description": "ID of the associated REST API.\n" - }, - "timeoutMilliseconds": { - "type": "integer", - "description": "Custom timeout between 50 and 300,000 milliseconds. The default value is 29,000 milliseconds. You need to raise a [Service Quota Ticket](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) to increase time beyond 29,000 milliseconds.\n" + "description": "The type of the domain name access association source. Valid values are `VPCE`.\n" }, - "tlsConfig": { - "$ref": "#/types/aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig", - "description": "TLS configuration. See below.\n" - }, - "type": { + "domainNameArn": { "type": "string", - "description": "Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.\n" + "description": "The ARN of the domain name.\n" }, - "uri": { - "type": "string", - "description": "Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.\nFor HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint.\ne.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:123456789012:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation.\n" + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" } }, - "required": [ - "cacheNamespace", - "httpMethod", - "passthroughBehavior", - "resourceId", - "restApi", - "type" + "requiredInputs": [ + "accessAssociationSource", + "accessAssociationSourceType", + "domainNameArn" ], - "inputProperties": { + "stateInputs": { + "description": "Input properties used for looking up and filtering DomainNameAccessAssociation resources.\n", + "properties": { + "accessAssociationSource": { + "type": "string", + "description": "The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID.\n" + }, + "accessAssociationSourceType": { + "type": "string", + "description": "The type of the domain name access association source. Valid values are `VPCE`.\n" + }, + "arn": { + "type": "string", + "description": "ARN of the domain name access association.\n" + }, + "domainNameArn": { + "type": "string", + "description": "The ARN of the domain name.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + } + }, + "type": "object" + } + }, + "aws:apigateway/integration:Integration": { + "description": "Provides an HTTP Method Integration for an API Gateway Integration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n cacheKeyParameters: [\"method.request.path.param\"],\n cacheNamespace: \"foobar\",\n timeoutMilliseconds: 29000,\n requestParameters: {\n \"integration.request.header.X-Authorization\": \"'static'\",\n },\n requestTemplates: {\n \"application/xml\": `{\n \"body\" : input.json('')\n}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\",\n cache_key_parameters=[\"method.request.path.param\"],\n cache_namespace=\"foobar\",\n timeout_milliseconds=29000,\n request_parameters={\n \"integration.request.header.X-Authorization\": \"'static'\",\n },\n request_templates={\n \"application/xml\": \"\"\"{\n \"body\" : $input.json('$')\n}\n\"\"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n CacheKeyParameters = new[]\n {\n \"method.request.path.param\",\n },\n CacheNamespace = \"foobar\",\n TimeoutMilliseconds = 29000,\n RequestParameters = \n {\n { \"integration.request.header.X-Authorization\", \"'static'\" },\n },\n RequestTemplates = \n {\n { \"application/xml\", @\"{\n \"\"body\"\" : $input.json('$')\n}\n\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t\tCacheKeyParameters: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"method.request.path.param\"),\n\t\t\t},\n\t\t\tCacheNamespace: pulumi.String(\"foobar\"),\n\t\t\tTimeoutMilliseconds: pulumi.Int(29000),\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"integration.request.header.X-Authorization\": pulumi.String(\"'static'\"),\n\t\t\t},\n\t\t\tRequestTemplates: pulumi.StringMap{\n\t\t\t\t\"application/xml\": pulumi.String(\"{\\n \\\"body\\\" : $input.json('$')\\n}\\n\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder()\n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder()\n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder()\n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder()\n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .cacheKeyParameters(\"method.request.path.param\")\n .cacheNamespace(\"foobar\")\n .timeoutMilliseconds(29000)\n .requestParameters(Map.of(\"integration.request.header.X-Authorization\", \"'static'\"))\n .requestTemplates(Map.of(\"application/xml\", \"\"\"\n{\n \"body\" : $input.json('$')\n}\n \"\"\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n cacheKeyParameters:\n - method.request.path.param\n cacheNamespace: foobar\n timeoutMilliseconds: 29000\n requestParameters:\n integration.request.header.X-Authorization: '''static'''\n requestTemplates:\n application/xml: |\n {\n \"body\" : $input.json('$')\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Lambda integration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst myregion = config.requireObject(\"myregion\");\nconst accountId = config.requireObject(\"accountId\");\n// API Gateway\nconst api = new aws.apigateway.RestApi(\"api\", {name: \"myapi\"});\nconst resource = new aws.apigateway.Resource(\"resource\", {\n pathPart: \"resource\",\n parentId: api.rootResourceId,\n restApi: api.id,\n});\nconst method = new aws.apigateway.Method(\"method\", {\n restApi: api.id,\n resourceId: resource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\n// IAM\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"lambda.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {\n name: \"myrole\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst lambda = new aws.lambda.Function(\"lambda\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n name: \"mylambda\",\n role: role.arn,\n handler: \"lambda.lambda_handler\",\n runtime: aws.lambda.Runtime.Python3d12,\n sourceCodeHash: std.filebase64sha256({\n input: \"lambda.zip\",\n }).then(invoke =\u003e invoke.result),\n});\nconst integration = new aws.apigateway.Integration(\"integration\", {\n restApi: api.id,\n resourceId: resource.id,\n httpMethod: method.httpMethod,\n integrationHttpMethod: \"POST\",\n type: \"AWS_PROXY\",\n uri: lambda.invokeArn,\n});\n// Lambda\nconst apigwLambda = new aws.lambda.Permission(\"apigw_lambda\", {\n statementId: \"AllowExecutionFromAPIGateway\",\n action: \"lambda:InvokeFunction\",\n \"function\": lambda.name,\n principal: \"apigateway.amazonaws.com\",\n sourceArn: pulumi.interpolate`arn:aws:execute-api:${myregion}:${accountId}:${api.id}/*/${method.httpMethod}${resource.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nmyregion = config.require_object(\"myregion\")\naccount_id = config.require_object(\"accountId\")\n# API Gateway\napi = aws.apigateway.RestApi(\"api\", name=\"myapi\")\nresource = aws.apigateway.Resource(\"resource\",\n path_part=\"resource\",\n parent_id=api.root_resource_id,\n rest_api=api.id)\nmethod = aws.apigateway.Method(\"method\",\n rest_api=api.id,\n resource_id=resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\n# IAM\nassume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"lambda.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\nrole = aws.iam.Role(\"role\",\n name=\"myrole\",\n assume_role_policy=assume_role.json)\nlambda_ = aws.lambda_.Function(\"lambda\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n name=\"mylambda\",\n role=role.arn,\n handler=\"lambda.lambda_handler\",\n runtime=aws.lambda_.Runtime.PYTHON3D12,\n source_code_hash=std.filebase64sha256(input=\"lambda.zip\").result)\nintegration = aws.apigateway.Integration(\"integration\",\n rest_api=api.id,\n resource_id=resource.id,\n http_method=method.http_method,\n integration_http_method=\"POST\",\n type=\"AWS_PROXY\",\n uri=lambda_.invoke_arn)\n# Lambda\napigw_lambda = aws.lambda_.Permission(\"apigw_lambda\",\n statement_id=\"AllowExecutionFromAPIGateway\",\n action=\"lambda:InvokeFunction\",\n function=lambda_.name,\n principal=\"apigateway.amazonaws.com\",\n source_arn=pulumi.Output.all(\n id=api.id,\n http_method=method.http_method,\n path=resource.path\n).apply(lambda resolved_outputs: f\"arn:aws:execute-api:{myregion}:{account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}\")\n)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var myregion = config.RequireObject\u003cdynamic\u003e(\"myregion\");\n var accountId = config.RequireObject\u003cdynamic\u003e(\"accountId\");\n // API Gateway\n var api = new Aws.ApiGateway.RestApi(\"api\", new()\n {\n Name = \"myapi\",\n });\n\n var resource = new Aws.ApiGateway.Resource(\"resource\", new()\n {\n PathPart = \"resource\",\n ParentId = api.RootResourceId,\n RestApi = api.Id,\n });\n\n var method = new Aws.ApiGateway.Method(\"method\", new()\n {\n RestApi = api.Id,\n ResourceId = resource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n // IAM\n var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"lambda.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n Name = \"myrole\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambda = new Aws.Lambda.Function(\"lambda\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Name = \"mylambda\",\n Role = role.Arn,\n Handler = \"lambda.lambda_handler\",\n Runtime = Aws.Lambda.Runtime.Python3d12,\n SourceCodeHash = Std.Filebase64sha256.Invoke(new()\n {\n Input = \"lambda.zip\",\n }).Apply(invoke =\u003e invoke.Result),\n });\n\n var integration = new Aws.ApiGateway.Integration(\"integration\", new()\n {\n RestApi = api.Id,\n ResourceId = resource.Id,\n HttpMethod = method.HttpMethod,\n IntegrationHttpMethod = \"POST\",\n Type = \"AWS_PROXY\",\n Uri = lambda.InvokeArn,\n });\n\n // Lambda\n var apigwLambda = new Aws.Lambda.Permission(\"apigw_lambda\", new()\n {\n StatementId = \"AllowExecutionFromAPIGateway\",\n Action = \"lambda:InvokeFunction\",\n Function = lambda.Name,\n Principal = \"apigateway.amazonaws.com\",\n SourceArn = Output.Tuple(api.Id, method.HttpMethod, resource.Path).Apply(values =\u003e\n {\n var id = values.Item1;\n var httpMethod = values.Item2;\n var path = values.Item3;\n return $\"arn:aws:execute-api:{myregion}:{accountId}:{id}/*/{httpMethod}{path}\";\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tmyregion := cfg.RequireObject(\"myregion\")\n\t\taccountId := cfg.RequireObject(\"accountId\")\n\t\t// API Gateway\n\t\tapi, err := apigateway.NewRestApi(ctx, \"api\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"myapi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresource, err := apigateway.NewResource(ctx, \"resource\", \u0026apigateway.ResourceArgs{\n\t\t\tPathPart: pulumi.String(\"resource\"),\n\t\t\tParentId: api.RootResourceId,\n\t\t\tRestApi: api.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmethod, err := apigateway.NewMethod(ctx, \"method\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: api.ID(),\n\t\t\tResourceId: resource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM\n\t\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"lambda.amazonaws.com\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"myrole\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilebase64sha256, err := std.Filebase64sha256(ctx, \u0026std.Filebase64sha256Args{\n\t\t\tInput: \"lambda.zip\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambda, err := lambda.NewFunction(ctx, \"lambda\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tName: pulumi.String(\"mylambda\"),\n\t\t\tRole: role.Arn,\n\t\t\tHandler: pulumi.String(\"lambda.lambda_handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d12),\n\t\t\tSourceCodeHash: pulumi.String(invokeFilebase64sha256.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"integration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: api.ID(),\n\t\t\tResourceId: resource.ID(),\n\t\t\tHttpMethod: method.HttpMethod,\n\t\t\tIntegrationHttpMethod: pulumi.String(\"POST\"),\n\t\t\tType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tUri: lambda.InvokeArn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Lambda\n\t\t_, err = lambda.NewPermission(ctx, \"apigw_lambda\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromAPIGateway\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: lambda.Name,\n\t\t\tPrincipal: pulumi.String(\"apigateway.amazonaws.com\"),\n\t\t\tSourceArn: pulumi.All(api.ID(), method.HttpMethod, resource.Path).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\thttpMethod := _args[1].(string)\n\t\t\t\tpath := _args[2].(string)\n\t\t\t\treturn fmt.Sprintf(\"arn:aws:execute-api:%v:%v:%v/*/%v%v\", myregion, accountId, id, httpMethod, path), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.asset.FileArchive;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var myregion = config.get(\"myregion\");\n final var accountId = config.get(\"accountId\");\n // API Gateway\n var api = new RestApi(\"api\", RestApiArgs.builder()\n .name(\"myapi\")\n .build());\n\n var resource = new Resource(\"resource\", ResourceArgs.builder()\n .pathPart(\"resource\")\n .parentId(api.rootResourceId())\n .restApi(api.id())\n .build());\n\n var method = new Method(\"method\", MethodArgs.builder()\n .restApi(api.id())\n .resourceId(resource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n // IAM\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"lambda.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder()\n .name(\"myrole\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambda = new Function(\"lambda\", FunctionArgs.builder()\n .code(new FileArchive(\"lambda.zip\"))\n .name(\"mylambda\")\n .role(role.arn())\n .handler(\"lambda.lambda_handler\")\n .runtime(\"python3.12\")\n .sourceCodeHash(StdFunctions.filebase64sha256(Filebase64sha256Args.builder()\n .input(\"lambda.zip\")\n .build()).result())\n .build());\n\n var integration = new Integration(\"integration\", IntegrationArgs.builder()\n .restApi(api.id())\n .resourceId(resource.id())\n .httpMethod(method.httpMethod())\n .integrationHttpMethod(\"POST\")\n .type(\"AWS_PROXY\")\n .uri(lambda.invokeArn())\n .build());\n\n // Lambda\n var apigwLambda = new Permission(\"apigwLambda\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromAPIGateway\")\n .action(\"lambda:InvokeFunction\")\n .function(lambda.name())\n .principal(\"apigateway.amazonaws.com\")\n .sourceArn(Output.tuple(api.id(), method.httpMethod(), resource.path()).applyValue(values -\u003e {\n var id = values.t1;\n var httpMethod = values.t2;\n var path = values.t3;\n return String.format(\"arn:aws:execute-api:%s:%s:%s/*/%s%s\", myregion,accountId,id,httpMethod,path);\n }))\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n # Variables\n myregion:\n type: dynamic\n accountId:\n type: dynamic\nresources:\n # API Gateway\n api:\n type: aws:apigateway:RestApi\n properties:\n name: myapi\n resource:\n type: aws:apigateway:Resource\n properties:\n pathPart: resource\n parentId: ${api.rootResourceId}\n restApi: ${api.id}\n method:\n type: aws:apigateway:Method\n properties:\n restApi: ${api.id}\n resourceId: ${resource.id}\n httpMethod: GET\n authorization: NONE\n integration:\n type: aws:apigateway:Integration\n properties:\n restApi: ${api.id}\n resourceId: ${resource.id}\n httpMethod: ${method.httpMethod}\n integrationHttpMethod: POST\n type: AWS_PROXY\n uri: ${lambda.invokeArn}\n # Lambda\n apigwLambda:\n type: aws:lambda:Permission\n name: apigw_lambda\n properties:\n statementId: AllowExecutionFromAPIGateway\n action: lambda:InvokeFunction\n function: ${lambda.name}\n principal: apigateway.amazonaws.com\n sourceArn: arn:aws:execute-api:${myregion}:${accountId}:${api.id}/*/${method.httpMethod}${resource.path}\n lambda:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambda.zip\n name: mylambda\n role: ${role.arn}\n handler: lambda.lambda_handler\n runtime: python3.12\n sourceCodeHash:\n fn::invoke:\n function: std:filebase64sha256\n arguments:\n input: lambda.zip\n return: result\n role:\n type: aws:iam:Role\n properties:\n name: myrole\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n # IAM\n assumeRole:\n fn::invoke:\n function: aws:iam:getPolicyDocument\n arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - lambda.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## VPC Link\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst config = new pulumi.Config();\nconst name = config.requireObject(\"name\");\nconst subnetId = config.requireObject(\"subnetId\");\nconst test = new aws.lb.LoadBalancer(\"test\", {\n name: name,\n internal: true,\n loadBalancerType: \"network\",\n subnets: [subnetId],\n});\nconst testVpcLink = new aws.apigateway.VpcLink(\"test\", {\n name: name,\n targetArn: test.arn,\n});\nconst testRestApi = new aws.apigateway.RestApi(\"test\", {name: name});\nconst testResource = new aws.apigateway.Resource(\"test\", {\n restApi: testRestApi.id,\n parentId: testRestApi.rootResourceId,\n pathPart: \"test\",\n});\nconst testMethod = new aws.apigateway.Method(\"test\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n requestModels: {\n \"application/json\": \"Error\",\n },\n});\nconst testIntegration = new aws.apigateway.Integration(\"test\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: testMethod.httpMethod,\n requestTemplates: {\n \"application/json\": \"\",\n \"application/xml\": `#set(inputRoot = input.path(''))\n{ }`,\n },\n requestParameters: {\n \"integration.request.header.X-Authorization\": \"'static'\",\n \"integration.request.header.X-Foo\": \"'Bar'\",\n },\n type: \"HTTP\",\n uri: \"https://www.google.de\",\n integrationHttpMethod: \"GET\",\n passthroughBehavior: \"WHEN_NO_MATCH\",\n contentHandling: \"CONVERT_TO_TEXT\",\n connectionType: \"VPC_LINK\",\n connectionId: testVpcLink.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nname = config.require_object(\"name\")\nsubnet_id = config.require_object(\"subnetId\")\ntest = aws.lb.LoadBalancer(\"test\",\n name=name,\n internal=True,\n load_balancer_type=\"network\",\n subnets=[subnet_id])\ntest_vpc_link = aws.apigateway.VpcLink(\"test\",\n name=name,\n target_arn=test.arn)\ntest_rest_api = aws.apigateway.RestApi(\"test\", name=name)\ntest_resource = aws.apigateway.Resource(\"test\",\n rest_api=test_rest_api.id,\n parent_id=test_rest_api.root_resource_id,\n path_part=\"test\")\ntest_method = aws.apigateway.Method(\"test\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\",\n request_models={\n \"application/json\": \"Error\",\n })\ntest_integration = aws.apigateway.Integration(\"test\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=test_method.http_method,\n request_templates={\n \"application/json\": \"\",\n \"application/xml\": \"\"\"#set($inputRoot = $input.path('$'))\n{ }\"\"\",\n },\n request_parameters={\n \"integration.request.header.X-Authorization\": \"'static'\",\n \"integration.request.header.X-Foo\": \"'Bar'\",\n },\n type=\"HTTP\",\n uri=\"https://www.google.de\",\n integration_http_method=\"GET\",\n passthrough_behavior=\"WHEN_NO_MATCH\",\n content_handling=\"CONVERT_TO_TEXT\",\n connection_type=\"VPC_LINK\",\n connection_id=test_vpc_link.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var name = config.RequireObject\u003cdynamic\u003e(\"name\");\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var test = new Aws.LB.LoadBalancer(\"test\", new()\n {\n Name = name,\n Internal = true,\n LoadBalancerType = \"network\",\n Subnets = new[]\n {\n subnetId,\n },\n });\n\n var testVpcLink = new Aws.ApiGateway.VpcLink(\"test\", new()\n {\n Name = name,\n TargetArn = test.Arn,\n });\n\n var testRestApi = new Aws.ApiGateway.RestApi(\"test\", new()\n {\n Name = name,\n });\n\n var testResource = new Aws.ApiGateway.Resource(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ParentId = testRestApi.RootResourceId,\n PathPart = \"test\",\n });\n\n var testMethod = new Aws.ApiGateway.Method(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n RequestModels = \n {\n { \"application/json\", \"Error\" },\n },\n });\n\n var testIntegration = new Aws.ApiGateway.Integration(\"test\", new()\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = testMethod.HttpMethod,\n RequestTemplates = \n {\n { \"application/json\", \"\" },\n { \"application/xml\", @\"#set($inputRoot = $input.path('$'))\n{ }\" },\n },\n RequestParameters = \n {\n { \"integration.request.header.X-Authorization\", \"'static'\" },\n { \"integration.request.header.X-Foo\", \"'Bar'\" },\n },\n Type = \"HTTP\",\n Uri = \"https://www.google.de\",\n IntegrationHttpMethod = \"GET\",\n PassthroughBehavior = \"WHEN_NO_MATCH\",\n ContentHandling = \"CONVERT_TO_TEXT\",\n ConnectionType = \"VPC_LINK\",\n ConnectionId = testVpcLink.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := cfg.RequireObject(\"name\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\ttest, err := lb.NewLoadBalancer(ctx, \"test\", \u0026lb.LoadBalancerArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t\tInternal: pulumi.Bool(true),\n\t\t\tLoadBalancerType: pulumi.String(\"network\"),\n\t\t\tSubnets: pulumi.StringArray{\n\t\t\t\tsubnetId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestVpcLink, err := apigateway.NewVpcLink(ctx, \"test\", \u0026apigateway.VpcLinkArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t\tTargetArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRestApi, err := apigateway.NewRestApi(ctx, \"test\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestResource, err := apigateway.NewResource(ctx, \"test\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tParentId: testRestApi.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestMethod, err := apigateway.NewMethod(ctx, \"test\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t\tRequestModels: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(\"Error\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"test\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: testMethod.HttpMethod,\n\t\t\tRequestTemplates: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(\"\"),\n\t\t\t\t\"application/xml\": pulumi.String(\"#set($inputRoot = $input.path('$'))\\n{ }\"),\n\t\t\t},\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"integration.request.header.X-Authorization\": pulumi.String(\"'static'\"),\n\t\t\t\t\"integration.request.header.X-Foo\": pulumi.String(\"'Bar'\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"HTTP\"),\n\t\t\tUri: pulumi.String(\"https://www.google.de\"),\n\t\t\tIntegrationHttpMethod: pulumi.String(\"GET\"),\n\t\t\tPassthroughBehavior: pulumi.String(\"WHEN_NO_MATCH\"),\n\t\t\tContentHandling: pulumi.String(\"CONVERT_TO_TEXT\"),\n\t\t\tConnectionType: pulumi.String(\"VPC_LINK\"),\n\t\t\tConnectionId: testVpcLink.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.apigateway.VpcLink;\nimport com.pulumi.aws.apigateway.VpcLinkArgs;\nimport com.pulumi.aws.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var name = config.get(\"name\");\n final var subnetId = config.get(\"subnetId\");\n var test = new LoadBalancer(\"test\", LoadBalancerArgs.builder()\n .name(name)\n .internal(true)\n .loadBalancerType(\"network\")\n .subnets(subnetId)\n .build());\n\n var testVpcLink = new VpcLink(\"testVpcLink\", VpcLinkArgs.builder()\n .name(name)\n .targetArn(test.arn())\n .build());\n\n var testRestApi = new RestApi(\"testRestApi\", RestApiArgs.builder()\n .name(name)\n .build());\n\n var testResource = new Resource(\"testResource\", ResourceArgs.builder()\n .restApi(testRestApi.id())\n .parentId(testRestApi.rootResourceId())\n .pathPart(\"test\")\n .build());\n\n var testMethod = new Method(\"testMethod\", MethodArgs.builder()\n .restApi(testRestApi.id())\n .resourceId(testResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .requestModels(Map.of(\"application/json\", \"Error\"))\n .build());\n\n var testIntegration = new Integration(\"testIntegration\", IntegrationArgs.builder()\n .restApi(testRestApi.id())\n .resourceId(testResource.id())\n .httpMethod(testMethod.httpMethod())\n .requestTemplates(Map.ofEntries(\n Map.entry(\"application/json\", \"\"),\n Map.entry(\"application/xml\", \"\"\"\n#set($inputRoot = $input.path('$'))\n{ } \"\"\")\n ))\n .requestParameters(Map.ofEntries(\n Map.entry(\"integration.request.header.X-Authorization\", \"'static'\"),\n Map.entry(\"integration.request.header.X-Foo\", \"'Bar'\")\n ))\n .type(\"HTTP\")\n .uri(\"https://www.google.de\")\n .integrationHttpMethod(\"GET\")\n .passthroughBehavior(\"WHEN_NO_MATCH\")\n .contentHandling(\"CONVERT_TO_TEXT\")\n .connectionType(\"VPC_LINK\")\n .connectionId(testVpcLink.id())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n name:\n type: dynamic\n subnetId:\n type: dynamic\nresources:\n test:\n type: aws:lb:LoadBalancer\n properties:\n name: ${name}\n internal: true\n loadBalancerType: network\n subnets:\n - ${subnetId}\n testVpcLink:\n type: aws:apigateway:VpcLink\n name: test\n properties:\n name: ${name}\n targetArn: ${test.arn}\n testRestApi:\n type: aws:apigateway:RestApi\n name: test\n properties:\n name: ${name}\n testResource:\n type: aws:apigateway:Resource\n name: test\n properties:\n restApi: ${testRestApi.id}\n parentId: ${testRestApi.rootResourceId}\n pathPart: test\n testMethod:\n type: aws:apigateway:Method\n name: test\n properties:\n restApi: ${testRestApi.id}\n resourceId: ${testResource.id}\n httpMethod: GET\n authorization: NONE\n requestModels:\n application/json: Error\n testIntegration:\n type: aws:apigateway:Integration\n name: test\n properties:\n restApi: ${testRestApi.id}\n resourceId: ${testResource.id}\n httpMethod: ${testMethod.httpMethod}\n requestTemplates:\n application/json: \"\"\n application/xml: |-\n #set($inputRoot = $input.path('$'))\n { }\n requestParameters:\n integration.request.header.X-Authorization: '''static'''\n integration.request.header.X-Foo: '''Bar'''\n type: HTTP\n uri: https://www.google.de\n integrationHttpMethod: GET\n passthroughBehavior: WHEN_NO_MATCH\n contentHandling: CONVERT_TO_TEXT\n connectionType: VPC_LINK\n connectionId: ${testVpcLink.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_api_gateway_integration` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD`. For example:\n\n```sh\n$ pulumi import aws:apigateway/integration:Integration example 12345abcde/67890fghij/GET\n```\n", + "properties": { + "cacheKeyParameters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of cache key parameters for the integration.\n" + }, + "cacheNamespace": { + "type": "string", + "description": "Integration's cache namespace.\n" + }, + "connectionId": { + "type": "string", + "description": "ID of the VpcLink used for the integration. **Required** if `connection_type` is `VPC_LINK`\n" + }, + "connectionType": { + "type": "string", + "description": "Integration input's [connectionType](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#connectionType). Valid values are `INTERNET` (default for connections through the public routable internet), and `VPC_LINK` (for private connections between API Gateway and a network load balancer in a VPC).\n" + }, + "contentHandling": { + "type": "string", + "description": "How to handle request payload content type conversions. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors is configured to support payload pass-through.\n" + }, + "credentials": { + "type": "string", + "description": "Credentials required for the integration. For `AWS` integrations, 2 options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's ARN. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\\*:user/\\*`.\n" + }, + "httpMethod": { + "type": "string", + "description": "HTTP method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTION`, `ANY`)\nwhen calling the associated resource.\n" + }, + "integrationHttpMethod": { + "type": "string", + "description": "Integration HTTP method\n(`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONs`, `ANY`, `PATCH`) specifying how API Gateway will interact with the back end.\n**Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.\nNot all methods are compatible with all `AWS` integrations.\ne.g., Lambda function [can only be invoked](https://github.com/awslabs/aws-apigateway-importer/issues/9#issuecomment-129651005) via `POST`.\n" + }, + "passthroughBehavior": { + "type": "string", + "description": "Integration passthrough behavior (`WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`). **Required** if `request_templates` is used.\n" + }, + "requestParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of request query string parameters and headers that should be passed to the backend responder.\nFor example: `request_parameters = { \"integration.request.header.X-Some-Other-Header\" = \"method.request.header.X-Some-Header\" }`\n" + }, + "requestTemplates": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of the integration's request templates.\n" + }, + "resourceId": { + "type": "string", + "description": "API resource ID.\n" + }, + "restApi": { + "type": "string", + "description": "ID of the associated REST API.\n" + }, + "timeoutMilliseconds": { + "type": "integer", + "description": "Custom timeout between 50 and 300,000 milliseconds. The default value is 29,000 milliseconds. You need to raise a [Service Quota Ticket](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) to increase time beyond 29,000 milliseconds.\n" + }, + "tlsConfig": { + "$ref": "#/types/aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig", + "description": "TLS configuration. See below.\n" + }, + "type": { + "type": "string", + "description": "Integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.\n" + }, + "uri": { + "type": "string", + "description": "Input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`.\nFor HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint.\ne.g., `arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:123456789012:function:my-func/invocations`. For private integrations, the URI parameter is not used for routing requests to your endpoint, but is used for setting the Host header and for certificate validation.\n" + } + }, + "required": [ + "cacheNamespace", + "httpMethod", + "passthroughBehavior", + "resourceId", + "restApi", + "type" + ], + "inputProperties": { "cacheKeyParameters": { "type": "array", "items": { @@ -186755,7 +187050,7 @@ } }, "aws:appstream/stack:Stack": { - "description": "Provides an AppStream stack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.appstream.Stack(\"example\", {\n name: \"stack name\",\n description: \"stack description\",\n displayName: \"stack display name\",\n feedbackUrl: \"http://your-domain/feedback\",\n redirectUrl: \"http://your-domain/redirect\",\n storageConnectors: [{\n connectorType: \"HOMEFOLDERS\",\n }],\n userSettings: [\n {\n action: \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n {\n action: \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n {\n action: \"DOMAIN_PASSWORD_SIGNIN\",\n permission: \"ENABLED\",\n },\n {\n action: \"DOMAIN_SMART_CARD_SIGNIN\",\n permission: \"DISABLED\",\n },\n {\n action: \"FILE_DOWNLOAD\",\n permission: \"ENABLED\",\n },\n {\n action: \"FILE_UPLOAD\",\n permission: \"ENABLED\",\n },\n {\n action: \"PRINTING_TO_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n ],\n applicationSettings: {\n enabled: true,\n settingsGroup: \"SettingsGroup\",\n },\n tags: {\n TagName: \"TagValue\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.appstream.Stack(\"example\",\n name=\"stack name\",\n description=\"stack description\",\n display_name=\"stack display name\",\n feedback_url=\"http://your-domain/feedback\",\n redirect_url=\"http://your-domain/redirect\",\n storage_connectors=[{\n \"connector_type\": \"HOMEFOLDERS\",\n }],\n user_settings=[\n {\n \"action\": \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"DOMAIN_PASSWORD_SIGNIN\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"DOMAIN_SMART_CARD_SIGNIN\",\n \"permission\": \"DISABLED\",\n },\n {\n \"action\": \"FILE_DOWNLOAD\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"FILE_UPLOAD\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"PRINTING_TO_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n ],\n application_settings={\n \"enabled\": True,\n \"settings_group\": \"SettingsGroup\",\n },\n tags={\n \"TagName\": \"TagValue\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.AppStream.Stack(\"example\", new()\n {\n Name = \"stack name\",\n Description = \"stack description\",\n DisplayName = \"stack display name\",\n FeedbackUrl = \"http://your-domain/feedback\",\n RedirectUrl = \"http://your-domain/redirect\",\n StorageConnectors = new[]\n {\n new Aws.AppStream.Inputs.StackStorageConnectorArgs\n {\n ConnectorType = \"HOMEFOLDERS\",\n },\n },\n UserSettings = new[]\n {\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"DOMAIN_PASSWORD_SIGNIN\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"DOMAIN_SMART_CARD_SIGNIN\",\n Permission = \"DISABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"FILE_DOWNLOAD\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"FILE_UPLOAD\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"PRINTING_TO_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n },\n ApplicationSettings = new Aws.AppStream.Inputs.StackApplicationSettingsArgs\n {\n Enabled = true,\n SettingsGroup = \"SettingsGroup\",\n },\n Tags = \n {\n { \"TagName\", \"TagValue\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appstream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appstream.NewStack(ctx, \"example\", \u0026appstream.StackArgs{\n\t\t\tName: pulumi.String(\"stack name\"),\n\t\t\tDescription: pulumi.String(\"stack description\"),\n\t\t\tDisplayName: pulumi.String(\"stack display name\"),\n\t\t\tFeedbackUrl: pulumi.String(\"http://your-domain/feedback\"),\n\t\t\tRedirectUrl: pulumi.String(\"http://your-domain/redirect\"),\n\t\t\tStorageConnectors: appstream.StackStorageConnectorArray{\n\t\t\t\t\u0026appstream.StackStorageConnectorArgs{\n\t\t\t\t\tConnectorType: pulumi.String(\"HOMEFOLDERS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserSettings: appstream.StackUserSettingArray{\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"CLIPBOARD_COPY_TO_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"DOMAIN_PASSWORD_SIGNIN\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"DOMAIN_SMART_CARD_SIGNIN\"),\n\t\t\t\t\tPermission: pulumi.String(\"DISABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"FILE_DOWNLOAD\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"FILE_UPLOAD\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"PRINTING_TO_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tApplicationSettings: \u0026appstream.StackApplicationSettingsArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tSettingsGroup: pulumi.String(\"SettingsGroup\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"TagName\": pulumi.String(\"TagValue\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.appstream.Stack;\nimport com.pulumi.aws.appstream.StackArgs;\nimport com.pulumi.aws.appstream.inputs.StackStorageConnectorArgs;\nimport com.pulumi.aws.appstream.inputs.StackUserSettingArgs;\nimport com.pulumi.aws.appstream.inputs.StackApplicationSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Stack(\"example\", StackArgs.builder()\n .name(\"stack name\")\n .description(\"stack description\")\n .displayName(\"stack display name\")\n .feedbackUrl(\"http://your-domain/feedback\")\n .redirectUrl(\"http://your-domain/redirect\")\n .storageConnectors(StackStorageConnectorArgs.builder()\n .connectorType(\"HOMEFOLDERS\")\n .build())\n .userSettings( \n StackUserSettingArgs.builder()\n .action(\"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"CLIPBOARD_COPY_TO_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"DOMAIN_PASSWORD_SIGNIN\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"DOMAIN_SMART_CARD_SIGNIN\")\n .permission(\"DISABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"FILE_DOWNLOAD\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"FILE_UPLOAD\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"PRINTING_TO_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build())\n .applicationSettings(StackApplicationSettingsArgs.builder()\n .enabled(true)\n .settingsGroup(\"SettingsGroup\")\n .build())\n .tags(Map.of(\"TagName\", \"TagValue\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:appstream:Stack\n properties:\n name: stack name\n description: stack description\n displayName: stack display name\n feedbackUrl: http://your-domain/feedback\n redirectUrl: http://your-domain/redirect\n storageConnectors:\n - connectorType: HOMEFOLDERS\n userSettings:\n - action: CLIPBOARD_COPY_FROM_LOCAL_DEVICE\n permission: ENABLED\n - action: CLIPBOARD_COPY_TO_LOCAL_DEVICE\n permission: ENABLED\n - action: DOMAIN_PASSWORD_SIGNIN\n permission: ENABLED\n - action: DOMAIN_SMART_CARD_SIGNIN\n permission: DISABLED\n - action: FILE_DOWNLOAD\n permission: ENABLED\n - action: FILE_UPLOAD\n permission: ENABLED\n - action: PRINTING_TO_LOCAL_DEVICE\n permission: ENABLED\n applicationSettings:\n enabled: true\n settingsGroup: SettingsGroup\n tags:\n TagName: TagValue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_appstream_stack` using the id. For example:\n\n```sh\n$ pulumi import aws:appstream/stack:Stack example stackID\n```\n", + "description": "Provides an AppStream stack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.appstream.Stack(\"example\", {\n name: \"stack name\",\n description: \"stack description\",\n displayName: \"stack display name\",\n feedbackUrl: \"http://your-domain/feedback\",\n redirectUrl: \"http://your-domain/redirect\",\n storageConnectors: [{\n connectorType: \"HOMEFOLDERS\",\n }],\n userSettings: [\n {\n action: \"AUTO_TIME_ZONE_REDIRECTION\",\n permission: \"DISABLED\",\n },\n {\n action: \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n {\n action: \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n {\n action: \"DOMAIN_PASSWORD_SIGNIN\",\n permission: \"ENABLED\",\n },\n {\n action: \"DOMAIN_SMART_CARD_SIGNIN\",\n permission: \"DISABLED\",\n },\n {\n action: \"FILE_DOWNLOAD\",\n permission: \"ENABLED\",\n },\n {\n action: \"FILE_UPLOAD\",\n permission: \"ENABLED\",\n },\n {\n action: \"PRINTING_TO_LOCAL_DEVICE\",\n permission: \"ENABLED\",\n },\n ],\n applicationSettings: {\n enabled: true,\n settingsGroup: \"SettingsGroup\",\n },\n tags: {\n TagName: \"TagValue\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.appstream.Stack(\"example\",\n name=\"stack name\",\n description=\"stack description\",\n display_name=\"stack display name\",\n feedback_url=\"http://your-domain/feedback\",\n redirect_url=\"http://your-domain/redirect\",\n storage_connectors=[{\n \"connector_type\": \"HOMEFOLDERS\",\n }],\n user_settings=[\n {\n \"action\": \"AUTO_TIME_ZONE_REDIRECTION\",\n \"permission\": \"DISABLED\",\n },\n {\n \"action\": \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"DOMAIN_PASSWORD_SIGNIN\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"DOMAIN_SMART_CARD_SIGNIN\",\n \"permission\": \"DISABLED\",\n },\n {\n \"action\": \"FILE_DOWNLOAD\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"FILE_UPLOAD\",\n \"permission\": \"ENABLED\",\n },\n {\n \"action\": \"PRINTING_TO_LOCAL_DEVICE\",\n \"permission\": \"ENABLED\",\n },\n ],\n application_settings={\n \"enabled\": True,\n \"settings_group\": \"SettingsGroup\",\n },\n tags={\n \"TagName\": \"TagValue\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.AppStream.Stack(\"example\", new()\n {\n Name = \"stack name\",\n Description = \"stack description\",\n DisplayName = \"stack display name\",\n FeedbackUrl = \"http://your-domain/feedback\",\n RedirectUrl = \"http://your-domain/redirect\",\n StorageConnectors = new[]\n {\n new Aws.AppStream.Inputs.StackStorageConnectorArgs\n {\n ConnectorType = \"HOMEFOLDERS\",\n },\n },\n UserSettings = new[]\n {\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"AUTO_TIME_ZONE_REDIRECTION\",\n Permission = \"DISABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"CLIPBOARD_COPY_TO_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"DOMAIN_PASSWORD_SIGNIN\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"DOMAIN_SMART_CARD_SIGNIN\",\n Permission = \"DISABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"FILE_DOWNLOAD\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"FILE_UPLOAD\",\n Permission = \"ENABLED\",\n },\n new Aws.AppStream.Inputs.StackUserSettingArgs\n {\n Action = \"PRINTING_TO_LOCAL_DEVICE\",\n Permission = \"ENABLED\",\n },\n },\n ApplicationSettings = new Aws.AppStream.Inputs.StackApplicationSettingsArgs\n {\n Enabled = true,\n SettingsGroup = \"SettingsGroup\",\n },\n Tags = \n {\n { \"TagName\", \"TagValue\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appstream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appstream.NewStack(ctx, \"example\", \u0026appstream.StackArgs{\n\t\t\tName: pulumi.String(\"stack name\"),\n\t\t\tDescription: pulumi.String(\"stack description\"),\n\t\t\tDisplayName: pulumi.String(\"stack display name\"),\n\t\t\tFeedbackUrl: pulumi.String(\"http://your-domain/feedback\"),\n\t\t\tRedirectUrl: pulumi.String(\"http://your-domain/redirect\"),\n\t\t\tStorageConnectors: appstream.StackStorageConnectorArray{\n\t\t\t\t\u0026appstream.StackStorageConnectorArgs{\n\t\t\t\t\tConnectorType: pulumi.String(\"HOMEFOLDERS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUserSettings: appstream.StackUserSettingArray{\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"AUTO_TIME_ZONE_REDIRECTION\"),\n\t\t\t\t\tPermission: pulumi.String(\"DISABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"CLIPBOARD_COPY_TO_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"DOMAIN_PASSWORD_SIGNIN\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"DOMAIN_SMART_CARD_SIGNIN\"),\n\t\t\t\t\tPermission: pulumi.String(\"DISABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"FILE_DOWNLOAD\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"FILE_UPLOAD\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t\t\u0026appstream.StackUserSettingArgs{\n\t\t\t\t\tAction: pulumi.String(\"PRINTING_TO_LOCAL_DEVICE\"),\n\t\t\t\t\tPermission: pulumi.String(\"ENABLED\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tApplicationSettings: \u0026appstream.StackApplicationSettingsArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tSettingsGroup: pulumi.String(\"SettingsGroup\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"TagName\": pulumi.String(\"TagValue\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.appstream.Stack;\nimport com.pulumi.aws.appstream.StackArgs;\nimport com.pulumi.aws.appstream.inputs.StackStorageConnectorArgs;\nimport com.pulumi.aws.appstream.inputs.StackUserSettingArgs;\nimport com.pulumi.aws.appstream.inputs.StackApplicationSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Stack(\"example\", StackArgs.builder()\n .name(\"stack name\")\n .description(\"stack description\")\n .displayName(\"stack display name\")\n .feedbackUrl(\"http://your-domain/feedback\")\n .redirectUrl(\"http://your-domain/redirect\")\n .storageConnectors(StackStorageConnectorArgs.builder()\n .connectorType(\"HOMEFOLDERS\")\n .build())\n .userSettings( \n StackUserSettingArgs.builder()\n .action(\"AUTO_TIME_ZONE_REDIRECTION\")\n .permission(\"DISABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"CLIPBOARD_COPY_FROM_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"CLIPBOARD_COPY_TO_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"DOMAIN_PASSWORD_SIGNIN\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"DOMAIN_SMART_CARD_SIGNIN\")\n .permission(\"DISABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"FILE_DOWNLOAD\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"FILE_UPLOAD\")\n .permission(\"ENABLED\")\n .build(),\n StackUserSettingArgs.builder()\n .action(\"PRINTING_TO_LOCAL_DEVICE\")\n .permission(\"ENABLED\")\n .build())\n .applicationSettings(StackApplicationSettingsArgs.builder()\n .enabled(true)\n .settingsGroup(\"SettingsGroup\")\n .build())\n .tags(Map.of(\"TagName\", \"TagValue\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:appstream:Stack\n properties:\n name: stack name\n description: stack description\n displayName: stack display name\n feedbackUrl: http://your-domain/feedback\n redirectUrl: http://your-domain/redirect\n storageConnectors:\n - connectorType: HOMEFOLDERS\n userSettings:\n - action: AUTO_TIME_ZONE_REDIRECTION\n permission: DISABLED\n - action: CLIPBOARD_COPY_FROM_LOCAL_DEVICE\n permission: ENABLED\n - action: CLIPBOARD_COPY_TO_LOCAL_DEVICE\n permission: ENABLED\n - action: DOMAIN_PASSWORD_SIGNIN\n permission: ENABLED\n - action: DOMAIN_SMART_CARD_SIGNIN\n permission: DISABLED\n - action: FILE_DOWNLOAD\n permission: ENABLED\n - action: FILE_UPLOAD\n permission: ENABLED\n - action: PRINTING_TO_LOCAL_DEVICE\n permission: ENABLED\n applicationSettings:\n enabled: true\n settingsGroup: SettingsGroup\n tags:\n TagName: TagValue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_appstream_stack` using the id. For example:\n\n```sh\n$ pulumi import aws:appstream/stack:Stack example stackID\n```\n", "properties": { "accessEndpoints": { "type": "array", @@ -189989,223 +190284,232 @@ "type": "string", "description": "ARN for this Auto Scaling Group\n" }, - "availabilityZones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`.\n" - }, - "capacityRebalance": { - "type": "boolean", - "description": "Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.\n" - }, - "context": { - "type": "string", - "description": "Reserved.\n" - }, - "defaultCooldown": { - "type": "integer", - "description": "Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.\n" - }, - "defaultInstanceWarmup": { - "type": "integer", - "description": "Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See [Set the default instance warmup for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html))\n" - }, - "desiredCapacity": { - "type": "integer", - "description": "Number of Amazon EC2 instances that\nshould be running in the group. (See also Waiting for\nCapacity below.)\n" - }, - "desiredCapacityType": { - "type": "string", - "description": "The unit of measurement for the value specified for `desired_capacity`. Supported for attribute-based instance type selection only. Valid values: `\"units\"`, `\"vcpu\"`, `\"memory-mib\"`.\n" - }, - "enabledMetrics": { - "type": "array", - "items": { - "type": "string", - "$ref": "#/types/aws:autoscaling/metrics:Metric" - }, - "description": "List of metrics to collect. The allowed values are defined by the [underlying AWS API](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html).\n" - }, - "forceDelete": { - "type": "boolean", - "description": "Allows deleting the Auto Scaling Group without waiting\nfor all instances in the pool to terminate. You can force an Auto Scaling Group to delete\neven if it's in the process of scaling a resource. Normally, this provider\ndrains all the instances before deleting the group. This bypasses that\nbehavior and potentially leaves resources dangling.\n" - }, - "forceDeleteWarmPool": { - "type": "boolean", - "description": "Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.\n" - }, - "healthCheckGracePeriod": { - "type": "integer", - "description": "Time (in seconds) after instance comes into service before checking health.\n" - }, - "healthCheckType": { - "type": "string", - "description": "\"EC2\" or \"ELB\". Controls how health checking is done.\n" - }, - "ignoreFailedScalingActivities": { - "type": "boolean", - "description": "Whether to ignore failed [Auto Scaling scaling activities](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) while waiting for capacity. The default is `false` -- failed scaling activities cause errors to be returned.\n" - }, - "initialLifecycleHooks": { - "type": "array", - "items": { - "$ref": "#/types/aws:autoscaling/GroupInitialLifecycleHook:GroupInitialLifecycleHook" - }, - "description": "One or more\n[Lifecycle Hooks](http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html)\nto attach to the Auto Scaling Group **before** instances are launched. The\nsyntax is exactly the same as the separate\n`aws.autoscaling.LifecycleHook`\nresource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating\na new Auto Scaling Group. For all other use-cases, please use `aws.autoscaling.LifecycleHook` resource.\n" + "availabilityZoneDistribution": { + "$ref": "#/types/aws:autoscaling/GroupAvailabilityZoneDistribution:GroupAvailabilityZoneDistribution", + "description": "The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details.\n" + }, + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`.\n" + }, + "capacityRebalance": { + "type": "boolean", + "description": "Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.\n" + }, + "context": { + "type": "string", + "description": "Reserved.\n" + }, + "defaultCooldown": { + "type": "integer", + "description": "Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.\n" + }, + "defaultInstanceWarmup": { + "type": "integer", + "description": "Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See [Set the default instance warmup for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html))\n" + }, + "desiredCapacity": { + "type": "integer", + "description": "Number of Amazon EC2 instances that\nshould be running in the group. (See also Waiting for\nCapacity below.)\n" + }, + "desiredCapacityType": { + "type": "string", + "description": "The unit of measurement for the value specified for `desired_capacity`. Supported for attribute-based instance type selection only. Valid values: `\"units\"`, `\"vcpu\"`, `\"memory-mib\"`.\n" + }, + "enabledMetrics": { + "type": "array", + "items": { + "type": "string", + "$ref": "#/types/aws:autoscaling/metrics:Metric" + }, + "description": "List of metrics to collect. The allowed values are defined by the [underlying AWS API](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html).\n" + }, + "forceDelete": { + "type": "boolean", + "description": "Allows deleting the Auto Scaling Group without waiting\nfor all instances in the pool to terminate. You can force an Auto Scaling Group to delete\neven if it's in the process of scaling a resource. Normally, this provider\ndrains all the instances before deleting the group. This bypasses that\nbehavior and potentially leaves resources dangling.\n" + }, + "forceDeleteWarmPool": { + "type": "boolean", + "description": "Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.\n" + }, + "healthCheckGracePeriod": { + "type": "integer", + "description": "Time (in seconds) after instance comes into service before checking health.\n" + }, + "healthCheckType": { + "type": "string", + "description": "\"EC2\" or \"ELB\". Controls how health checking is done.\n" + }, + "ignoreFailedScalingActivities": { + "type": "boolean", + "description": "Whether to ignore failed [Auto Scaling scaling activities](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) while waiting for capacity. The default is `false` -- failed scaling activities cause errors to be returned.\n" + }, + "initialLifecycleHooks": { + "type": "array", + "items": { + "$ref": "#/types/aws:autoscaling/GroupInitialLifecycleHook:GroupInitialLifecycleHook" + }, + "description": "One or more\n[Lifecycle Hooks](http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html)\nto attach to the Auto Scaling Group **before** instances are launched. The\nsyntax is exactly the same as the separate\n`aws.autoscaling.LifecycleHook`\nresource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating\na new Auto Scaling Group. For all other use-cases, please use `aws.autoscaling.LifecycleHook` resource.\n" + }, + "instanceMaintenancePolicy": { + "$ref": "#/types/aws:autoscaling/GroupInstanceMaintenancePolicy:GroupInstanceMaintenancePolicy", + "description": "If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.\n" + }, + "instanceRefresh": { + "$ref": "#/types/aws:autoscaling/GroupInstanceRefresh:GroupInstanceRefresh", + "description": "If this block is configured, start an\n[Instance Refresh](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html)\nwhen this Auto Scaling Group is updated. Defined below.\n" + }, + "launchConfiguration": { + "type": "string", + "description": "Name of the launch configuration to use.\n" + }, + "launchTemplate": { + "$ref": "#/types/aws:autoscaling/GroupLaunchTemplate:GroupLaunchTemplate", + "description": "Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.\n" + }, + "loadBalancers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of elastic load balancer names to add to the autoscaling\ngroup names. Only valid for classic load balancers. For ALBs, use `target_group_arns` instead. To remove all load balancer attachments an empty list should be specified.\n" + }, + "maxInstanceLifetime": { + "type": "integer", + "description": "Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.\n" + }, + "maxSize": { + "type": "integer", + "description": "Maximum size of the Auto Scaling Group.\n" + }, + "metricsGranularity": { + "type": "string", + "description": "Granularity to associate with the metrics to collect. The only valid value is `1Minute`. Default is `1Minute`.\n" + }, + "minElbCapacity": { + "type": "integer", + "description": "Setting this causes Pulumi to wait for\nthis number of instances from this Auto Scaling Group to show up healthy in the\nELB only on creation. Updates will not wait on ELB instance number changes.\n(See also Waiting for Capacity below.)\n" + }, + "minSize": { + "type": "integer", + "description": "Minimum size of the Auto Scaling Group.\n(See also Waiting for Capacity below.)\n" + }, + "mixedInstancesPolicy": { + "$ref": "#/types/aws:autoscaling/GroupMixedInstancesPolicy:GroupMixedInstancesPolicy", + "description": "Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.\n" + }, + "name": { + "type": "string", + "description": "Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with `name_prefix`.\n" + }, + "namePrefix": { + "type": "string", + "description": "Creates a unique name beginning with the specified\nprefix. Conflicts with `name`.\n" + }, + "placementGroup": { + "type": "string", + "description": "Name of the placement group into which you'll launch your instances, if any.\n" + }, + "predictedCapacity": { + "type": "integer", + "description": "Predicted capacity of the group.\n" + }, + "protectFromScaleIn": { + "type": "boolean", + "description": "Whether newly launched instances\nare automatically protected from termination by Amazon EC2 Auto Scaling when\nscaling in. For more information about preventing instances from terminating\non scale in, see [Using instance scale-in protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html)\nin the Amazon EC2 Auto Scaling User Guide.\n" + }, + "serviceLinkedRoleArn": { + "type": "string", + "description": "ARN of the service-linked role that the ASG will use to call other AWS services\n" + }, + "suspendedProcesses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of processes to suspend for the Auto Scaling Group. The allowed values are `Launch`, `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledActions`, `AddToLoadBalancer`, `InstanceRefresh`.\nNote that if you suspend either the `Launch` or `Terminate` process types, it can prevent your Auto Scaling Group from functioning properly.\n" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws:autoscaling/GroupTag:GroupTag" + }, + "description": "Configuration block(s) containing resource tags. See Tag below for more details.\n" + }, + "targetGroupArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of `aws.alb.TargetGroup` ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.\n" + }, + "terminationPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are `OldestInstance`, `NewestInstance`, `OldestLaunchConfiguration`, `ClosestToNextInstanceHour`, `OldestLaunchTemplate`, `AllocationStrategy`, `Default`. Additionally, the ARN of a Lambda function can be specified for custom termination policies.\n" + }, + "trafficSources": { + "type": "array", + "items": { + "$ref": "#/types/aws:autoscaling/GroupTrafficSource:GroupTrafficSource" + }, + "description": "Attaches one or more traffic sources to the specified Auto Scaling group.\n" + }, + "vpcZoneIdentifiers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with `availability_zones`.\n" + }, + "waitForCapacityTimeout": { + "type": "string", + "description": "Maximum\n[duration](https://golang.org/pkg/time/#ParseDuration) that the provider should\nwait for ASG instances to be healthy before timing out. (See also Waiting\nfor Capacity below.) Setting this to \"0\" causes\nthe provider to skip all Capacity Waiting behavior.\n" + }, + "waitForElbCapacity": { + "type": "integer", + "description": "Setting this will cause Pulumi to wait\nfor exactly this number of healthy instances from this Auto Scaling Group in\nall attached load balancers on both create and update operations. (Takes\nprecedence over `min_elb_capacity` behavior.)\n(See also Waiting for Capacity below.)\n" + }, + "warmPool": { + "$ref": "#/types/aws:autoscaling/GroupWarmPool:GroupWarmPool", + "description": "If this block is configured, add a [Warm Pool](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)\nto the specified Auto Scaling group. Defined below\n" + }, + "warmPoolSize": { + "type": "integer", + "description": "Current size of the warm pool.\n" + } + }, + "required": [ + "arn", + "availabilityZoneDistribution", + "availabilityZones", + "defaultCooldown", + "desiredCapacity", + "healthCheckType", + "launchTemplate", + "loadBalancers", + "maxSize", + "minSize", + "mixedInstancesPolicy", + "name", + "namePrefix", + "predictedCapacity", + "serviceLinkedRoleArn", + "targetGroupArns", + "trafficSources", + "vpcZoneIdentifiers", + "warmPoolSize" + ], + "inputProperties": { + "availabilityZoneDistribution": { + "$ref": "#/types/aws:autoscaling/GroupAvailabilityZoneDistribution:GroupAvailabilityZoneDistribution", + "description": "The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details.\n" }, - "instanceMaintenancePolicy": { - "$ref": "#/types/aws:autoscaling/GroupInstanceMaintenancePolicy:GroupInstanceMaintenancePolicy", - "description": "If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.\n" - }, - "instanceRefresh": { - "$ref": "#/types/aws:autoscaling/GroupInstanceRefresh:GroupInstanceRefresh", - "description": "If this block is configured, start an\n[Instance Refresh](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html)\nwhen this Auto Scaling Group is updated. Defined below.\n" - }, - "launchConfiguration": { - "type": "string", - "description": "Name of the launch configuration to use.\n" - }, - "launchTemplate": { - "$ref": "#/types/aws:autoscaling/GroupLaunchTemplate:GroupLaunchTemplate", - "description": "Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.\n" - }, - "loadBalancers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of elastic load balancer names to add to the autoscaling\ngroup names. Only valid for classic load balancers. For ALBs, use `target_group_arns` instead. To remove all load balancer attachments an empty list should be specified.\n" - }, - "maxInstanceLifetime": { - "type": "integer", - "description": "Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.\n" - }, - "maxSize": { - "type": "integer", - "description": "Maximum size of the Auto Scaling Group.\n" - }, - "metricsGranularity": { - "type": "string", - "description": "Granularity to associate with the metrics to collect. The only valid value is `1Minute`. Default is `1Minute`.\n" - }, - "minElbCapacity": { - "type": "integer", - "description": "Setting this causes Pulumi to wait for\nthis number of instances from this Auto Scaling Group to show up healthy in the\nELB only on creation. Updates will not wait on ELB instance number changes.\n(See also Waiting for Capacity below.)\n" - }, - "minSize": { - "type": "integer", - "description": "Minimum size of the Auto Scaling Group.\n(See also Waiting for Capacity below.)\n" - }, - "mixedInstancesPolicy": { - "$ref": "#/types/aws:autoscaling/GroupMixedInstancesPolicy:GroupMixedInstancesPolicy", - "description": "Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.\n" - }, - "name": { - "type": "string", - "description": "Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with `name_prefix`.\n" - }, - "namePrefix": { - "type": "string", - "description": "Creates a unique name beginning with the specified\nprefix. Conflicts with `name`.\n" - }, - "placementGroup": { - "type": "string", - "description": "Name of the placement group into which you'll launch your instances, if any.\n" - }, - "predictedCapacity": { - "type": "integer", - "description": "Predicted capacity of the group.\n" - }, - "protectFromScaleIn": { - "type": "boolean", - "description": "Whether newly launched instances\nare automatically protected from termination by Amazon EC2 Auto Scaling when\nscaling in. For more information about preventing instances from terminating\non scale in, see [Using instance scale-in protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html)\nin the Amazon EC2 Auto Scaling User Guide.\n" - }, - "serviceLinkedRoleArn": { - "type": "string", - "description": "ARN of the service-linked role that the ASG will use to call other AWS services\n" - }, - "suspendedProcesses": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of processes to suspend for the Auto Scaling Group. The allowed values are `Launch`, `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledActions`, `AddToLoadBalancer`, `InstanceRefresh`.\nNote that if you suspend either the `Launch` or `Terminate` process types, it can prevent your Auto Scaling Group from functioning properly.\n" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/types/aws:autoscaling/GroupTag:GroupTag" - }, - "description": "Configuration block(s) containing resource tags. See Tag below for more details.\n" - }, - "targetGroupArns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Set of `aws.alb.TargetGroup` ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.\n" - }, - "terminationPolicies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are `OldestInstance`, `NewestInstance`, `OldestLaunchConfiguration`, `ClosestToNextInstanceHour`, `OldestLaunchTemplate`, `AllocationStrategy`, `Default`. Additionally, the ARN of a Lambda function can be specified for custom termination policies.\n" - }, - "trafficSources": { - "type": "array", - "items": { - "$ref": "#/types/aws:autoscaling/GroupTrafficSource:GroupTrafficSource" - }, - "description": "Attaches one or more traffic sources to the specified Auto Scaling group.\n" - }, - "vpcZoneIdentifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with `availability_zones`.\n" - }, - "waitForCapacityTimeout": { - "type": "string", - "description": "Maximum\n[duration](https://golang.org/pkg/time/#ParseDuration) that the provider should\nwait for ASG instances to be healthy before timing out. (See also Waiting\nfor Capacity below.) Setting this to \"0\" causes\nthe provider to skip all Capacity Waiting behavior.\n" - }, - "waitForElbCapacity": { - "type": "integer", - "description": "Setting this will cause Pulumi to wait\nfor exactly this number of healthy instances from this Auto Scaling Group in\nall attached load balancers on both create and update operations. (Takes\nprecedence over `min_elb_capacity` behavior.)\n(See also Waiting for Capacity below.)\n" - }, - "warmPool": { - "$ref": "#/types/aws:autoscaling/GroupWarmPool:GroupWarmPool", - "description": "If this block is configured, add a [Warm Pool](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)\nto the specified Auto Scaling group. Defined below\n" - }, - "warmPoolSize": { - "type": "integer", - "description": "Current size of the warm pool.\n" - } - }, - "required": [ - "arn", - "availabilityZones", - "defaultCooldown", - "desiredCapacity", - "healthCheckType", - "launchTemplate", - "loadBalancers", - "maxSize", - "minSize", - "mixedInstancesPolicy", - "name", - "namePrefix", - "predictedCapacity", - "serviceLinkedRoleArn", - "targetGroupArns", - "trafficSources", - "vpcZoneIdentifiers", - "warmPoolSize" - ], - "inputProperties": { "availabilityZones": { "type": "array", "items": { @@ -190435,6 +190739,10 @@ "type": "string", "description": "ARN for this Auto Scaling Group\n" }, + "availabilityZoneDistribution": { + "$ref": "#/types/aws:autoscaling/GroupAvailabilityZoneDistribution:GroupAvailabilityZoneDistribution", + "description": "The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details.\n" + }, "availabilityZones": { "type": "array", "items": { @@ -193636,6 +193944,10 @@ "type": "string", "description": "ARN of the agent.\n" }, + "agentCollaboration": { + "type": "string", + "description": "Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`.\n" + }, "agentId": { "type": "string", "description": "Unique identifier of the agent.\n" @@ -193715,6 +194027,7 @@ }, "required": [ "agentArn", + "agentCollaboration", "agentId", "agentName", "agentResourceRoleArn", @@ -193728,6 +194041,10 @@ "tagsAll" ], "inputProperties": { + "agentCollaboration": { + "type": "string", + "description": "Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`.\n" + }, "agentName": { "type": "string", "description": "Name of the agent.\n" @@ -193801,6 +194118,10 @@ "type": "string", "description": "ARN of the agent.\n" }, + "agentCollaboration": { + "type": "string", + "description": "Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`.\n" + }, "agentId": { "type": "string", "description": "Unique identifier of the agent.\n" @@ -202488,6 +202809,92 @@ "type": "object" } }, + "aws:cloudfront/vpcOrigin:VpcOrigin": { + "description": "Creates an Amazon CloudFront VPC origin.\n\nFor information about CloudFront VPC origins, see\n[Amazon CloudFront Developer Guide - Restrict access with VPC origins][1].\n\n## Example Usage\n\n### Application Load Balancer\n\nThe following example below creates a CloudFront VPC origin for a Application Load Balancer.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb = new aws.cloudfront.VpcOrigin(\"alb\", {vpcOriginEndpointConfig: {\n name: \"Example VPC Origin\",\n arn: _this.arn,\n httpPort: 8080,\n httpsPort: 8443,\n originProtocolPolicy: \"https-only\",\n originSslProtocols: {\n items: [\"TLSv1.2\"],\n quantity: 1,\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb = aws.cloudfront.VpcOrigin(\"alb\", vpc_origin_endpoint_config={\n \"name\": \"Example VPC Origin\",\n \"arn\": this[\"arn\"],\n \"http_port\": 8080,\n \"https_port\": 8443,\n \"origin_protocol_policy\": \"https-only\",\n \"origin_ssl_protocols\": {\n \"items\": [\"TLSv1.2\"],\n \"quantity\": 1,\n },\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb = new Aws.CloudFront.VpcOrigin(\"alb\", new()\n {\n VpcOriginEndpointConfig = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigArgs\n {\n Name = \"Example VPC Origin\",\n Arn = @this.Arn,\n HttpPort = 8080,\n HttpsPort = 8443,\n OriginProtocolPolicy = \"https-only\",\n OriginSslProtocols = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs\n {\n Items = new[]\n {\n \"TLSv1.2\",\n },\n Quantity = 1,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.NewVpcOrigin(ctx, \"alb\", \u0026cloudfront.VpcOriginArgs{\n\t\t\tVpcOriginEndpointConfig: \u0026cloudfront.VpcOriginVpcOriginEndpointConfigArgs{\n\t\t\t\tName: pulumi.String(\"Example VPC Origin\"),\n\t\t\t\tArn: pulumi.Any(this.Arn),\n\t\t\t\tHttpPort: pulumi.Int(8080),\n\t\t\t\tHttpsPort: pulumi.Int(8443),\n\t\t\t\tOriginProtocolPolicy: pulumi.String(\"https-only\"),\n\t\t\t\tOriginSslProtocols: \u0026cloudfront.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{\n\t\t\t\t\tItems: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t\t\t},\n\t\t\t\t\tQuantity: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.VpcOrigin;\nimport com.pulumi.aws.cloudfront.VpcOriginArgs;\nimport com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb = new VpcOrigin(\"alb\", VpcOriginArgs.builder()\n .vpcOriginEndpointConfig(VpcOriginVpcOriginEndpointConfigArgs.builder()\n .name(\"Example VPC Origin\")\n .arn(this_.arn())\n .httpPort(8080)\n .httpsPort(8443)\n .originProtocolPolicy(\"https-only\")\n .originSslProtocols(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.builder()\n .items(\"TLSv1.2\")\n .quantity(1)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb:\n type: aws:cloudfront:VpcOrigin\n properties:\n vpcOriginEndpointConfig:\n name: Example VPC Origin\n arn: ${this.arn}\n httpPort: 8080\n httpsPort: 8443\n originProtocolPolicy: https-only\n originSslProtocols:\n items:\n - TLSv1.2\n quantity: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nterraform\n\nimport {\n\n to = aws_cloudfront_vpc_origin.origin\n\n id = vo_JQEa410sssUFoY6wMkx69j\n\n}\n\nUsing `pulumi import`, import Cloudfront VPC origins using the `id`. For example:\n\nconsole\n\n% pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j\n\n", + "properties": { + "arn": { + "type": "string", + "description": "The VPC origin ARN.\n" + }, + "etag": { + "type": "string", + "description": "The current version of the origin.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:cloudfront/VpcOriginTimeouts:VpcOriginTimeouts" + }, + "vpcOriginEndpointConfig": { + "$ref": "#/types/aws:cloudfront/VpcOriginVpcOriginEndpointConfig:VpcOriginVpcOriginEndpointConfig" + } + }, + "required": [ + "arn", + "etag", + "tagsAll" + ], + "inputProperties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "timeouts": { + "$ref": "#/types/aws:cloudfront/VpcOriginTimeouts:VpcOriginTimeouts" + }, + "vpcOriginEndpointConfig": { + "$ref": "#/types/aws:cloudfront/VpcOriginVpcOriginEndpointConfig:VpcOriginVpcOriginEndpointConfig" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering VpcOrigin resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The VPC origin ARN.\n" + }, + "etag": { + "type": "string", + "description": "The current version of the origin.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:cloudfront/VpcOriginTimeouts:VpcOriginTimeouts" + }, + "vpcOriginEndpointConfig": { + "$ref": "#/types/aws:cloudfront/VpcOriginVpcOriginEndpointConfig:VpcOriginVpcOriginEndpointConfig" + } + }, + "type": "object" + } + }, "aws:cloudhsmv2/cluster:Cluster": { "description": "Creates an Amazon CloudHSM v2 cluster.\n\nFor information about CloudHSM v2, see the\n[AWS CloudHSM User Guide](https://docs.aws.amazon.com/cloudhsm/latest/userguide/introduction.html) and the [Amazon\nCloudHSM API Reference][2].\n\n\u003e **NOTE:** A CloudHSM Cluster can take several minutes to set up.\nPractically no single attribute can be updated, except for `tags`.\nIf you need to delete a cluster, you have to remove its HSM modules first.\nTo initialize cluster, you have to add an HSM instance to the cluster, then sign CSR and upload it.\n\n## Import\n\nUsing `pulumi import`, import CloudHSM v2 Clusters using the cluster `id`. For example:\n\n```sh\n$ pulumi import aws:cloudhsmv2/cluster:Cluster test_cluster cluster-aeb282a201\n```\n", "properties": { @@ -205026,7 +205433,7 @@ } }, "aws:cloudwatch/logAccountPolicy:LogAccountPolicy": { - "description": "Provides a CloudWatch Log Account Policy resource.\n\n## Example Usage\n\n### Account Data Protection Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dataProtection = new aws.cloudwatch.LogAccountPolicy(\"data_protection\", {\n policyName: \"data-protection\",\n policyType: \"DATA_PROTECTION_POLICY\",\n policyDocument: JSON.stringify({\n Name: \"DataProtection\",\n Version: \"2021-06-01\",\n Statement: [\n {\n Sid: \"Audit\",\n DataIdentifier: [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n Operation: {\n Audit: {\n FindingsDestination: {},\n },\n },\n },\n {\n Sid: \"Redact\",\n DataIdentifier: [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n Operation: {\n Deidentify: {\n MaskConfig: {},\n },\n },\n },\n ],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndata_protection = aws.cloudwatch.LogAccountPolicy(\"data_protection\",\n policy_name=\"data-protection\",\n policy_type=\"DATA_PROTECTION_POLICY\",\n policy_document=json.dumps({\n \"Name\": \"DataProtection\",\n \"Version\": \"2021-06-01\",\n \"Statement\": [\n {\n \"Sid\": \"Audit\",\n \"DataIdentifier\": [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n \"Operation\": {\n \"Audit\": {\n \"FindingsDestination\": {},\n },\n },\n },\n {\n \"Sid\": \"Redact\",\n \"DataIdentifier\": [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n \"Operation\": {\n \"Deidentify\": {\n \"MaskConfig\": {},\n },\n },\n },\n ],\n }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dataProtection = new Aws.CloudWatch.LogAccountPolicy(\"data_protection\", new()\n {\n PolicyName = \"data-protection\",\n PolicyType = \"DATA_PROTECTION_POLICY\",\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Name\"] = \"DataProtection\",\n [\"Version\"] = \"2021-06-01\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Audit\",\n [\"DataIdentifier\"] = new[]\n {\n \"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n },\n [\"Operation\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Audit\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"FindingsDestination\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Redact\",\n [\"DataIdentifier\"] = new[]\n {\n \"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n },\n [\"Operation\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Deidentify\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"MaskConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n },\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Name\": \"DataProtection\",\n\t\t\t\"Version\": \"2021-06-01\",\n\t\t\t\"Statement\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Audit\",\n\t\t\t\t\t\"DataIdentifier\": []string{\n\t\t\t\t\t\t\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Operation\": map[string]interface{}{\n\t\t\t\t\t\t\"Audit\": map[string]interface{}{\n\t\t\t\t\t\t\t\"FindingsDestination\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Redact\",\n\t\t\t\t\t\"DataIdentifier\": []string{\n\t\t\t\t\t\t\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Operation\": map[string]interface{}{\n\t\t\t\t\t\t\"Deidentify\": map[string]interface{}{\n\t\t\t\t\t\t\t\"MaskConfig\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudwatch.NewLogAccountPolicy(ctx, \"data_protection\", \u0026cloudwatch.LogAccountPolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"data-protection\"),\n\t\t\tPolicyType: pulumi.String(\"DATA_PROTECTION_POLICY\"),\n\t\t\tPolicyDocument: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicy;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var dataProtection = new LogAccountPolicy(\"dataProtection\", LogAccountPolicyArgs.builder()\n .policyName(\"data-protection\")\n .policyType(\"DATA_PROTECTION_POLICY\")\n .policyDocument(serializeJson(\n jsonObject(\n jsonProperty(\"Name\", \"DataProtection\"),\n jsonProperty(\"Version\", \"2021-06-01\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Sid\", \"Audit\"),\n jsonProperty(\"DataIdentifier\", jsonArray(\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\")),\n jsonProperty(\"Operation\", jsonObject(\n jsonProperty(\"Audit\", jsonObject(\n jsonProperty(\"FindingsDestination\", jsonObject(\n\n ))\n ))\n ))\n ), \n jsonObject(\n jsonProperty(\"Sid\", \"Redact\"),\n jsonProperty(\"DataIdentifier\", jsonArray(\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\")),\n jsonProperty(\"Operation\", jsonObject(\n jsonProperty(\"Deidentify\", jsonObject(\n jsonProperty(\"MaskConfig\", jsonObject(\n\n ))\n ))\n ))\n )\n ))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n dataProtection:\n type: aws:cloudwatch:LogAccountPolicy\n name: data_protection\n properties:\n policyName: data-protection\n policyType: DATA_PROTECTION_POLICY\n policyDocument:\n fn::toJSON:\n Name: DataProtection\n Version: 2021-06-01\n Statement:\n - Sid: Audit\n DataIdentifier:\n - arn:aws:dataprotection::aws:data-identifier/EmailAddress\n Operation:\n Audit:\n FindingsDestination: {}\n - Sid: Redact\n DataIdentifier:\n - arn:aws:dataprotection::aws:data-identifier/EmailAddress\n Operation:\n Deidentify:\n MaskConfig: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Subscription Filter Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst subscriptionFilter = new aws.cloudwatch.LogAccountPolicy(\"subscription_filter\", {\n policyName: \"subscription-filter\",\n policyType: \"SUBSCRIPTION_FILTER_POLICY\",\n policyDocument: JSON.stringify({\n DestinationArn: test.arn,\n FilterPattern: \"test\",\n }),\n selectionCriteria: \"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nsubscription_filter = aws.cloudwatch.LogAccountPolicy(\"subscription_filter\",\n policy_name=\"subscription-filter\",\n policy_type=\"SUBSCRIPTION_FILTER_POLICY\",\n policy_document=json.dumps({\n \"DestinationArn\": test[\"arn\"],\n \"FilterPattern\": \"test\",\n }),\n selection_criteria=\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subscriptionFilter = new Aws.CloudWatch.LogAccountPolicy(\"subscription_filter\", new()\n {\n PolicyName = \"subscription-filter\",\n PolicyType = \"SUBSCRIPTION_FILTER_POLICY\",\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"DestinationArn\"] = test.Arn,\n [\"FilterPattern\"] = \"test\",\n }),\n SelectionCriteria = \"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"DestinationArn\": test.Arn,\n\t\t\t\"FilterPattern\": \"test\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudwatch.NewLogAccountPolicy(ctx, \"subscription_filter\", \u0026cloudwatch.LogAccountPolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"subscription-filter\"),\n\t\t\tPolicyType: pulumi.String(\"SUBSCRIPTION_FILTER_POLICY\"),\n\t\t\tPolicyDocument: pulumi.String(json0),\n\t\t\tSelectionCriteria: pulumi.String(\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicy;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var subscriptionFilter = new LogAccountPolicy(\"subscriptionFilter\", LogAccountPolicyArgs.builder()\n .policyName(\"subscription-filter\")\n .policyType(\"SUBSCRIPTION_FILTER_POLICY\")\n .policyDocument(serializeJson(\n jsonObject(\n jsonProperty(\"DestinationArn\", test.arn()),\n jsonProperty(\"FilterPattern\", \"test\")\n )))\n .selectionCriteria(\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subscriptionFilter:\n type: aws:cloudwatch:LogAccountPolicy\n name: subscription_filter\n properties:\n policyName: subscription-filter\n policyType: SUBSCRIPTION_FILTER_POLICY\n policyDocument:\n fn::toJSON:\n DestinationArn: ${test.arn}\n FilterPattern: test\n selectionCriteria: LogGroupName NOT IN [\"excluded_log_group_name\"]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example:\n\n```sh\n$ pulumi import aws:cloudwatch/logAccountPolicy:LogAccountPolicy example \"my-account-policy:SUBSCRIPTION_FILTER_POLICY\"\n```\n", + "description": "Provides a CloudWatch Log Account Policy resource.\n\n## Example Usage\n\n### Account Data Protection Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dataProtection = new aws.cloudwatch.LogAccountPolicy(\"data_protection\", {\n policyName: \"data-protection\",\n policyType: \"DATA_PROTECTION_POLICY\",\n policyDocument: JSON.stringify({\n Name: \"DataProtection\",\n Version: \"2021-06-01\",\n Statement: [\n {\n Sid: \"Audit\",\n DataIdentifier: [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n Operation: {\n Audit: {\n FindingsDestination: {},\n },\n },\n },\n {\n Sid: \"Redact\",\n DataIdentifier: [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n Operation: {\n Deidentify: {\n MaskConfig: {},\n },\n },\n },\n ],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndata_protection = aws.cloudwatch.LogAccountPolicy(\"data_protection\",\n policy_name=\"data-protection\",\n policy_type=\"DATA_PROTECTION_POLICY\",\n policy_document=json.dumps({\n \"Name\": \"DataProtection\",\n \"Version\": \"2021-06-01\",\n \"Statement\": [\n {\n \"Sid\": \"Audit\",\n \"DataIdentifier\": [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n \"Operation\": {\n \"Audit\": {\n \"FindingsDestination\": {},\n },\n },\n },\n {\n \"Sid\": \"Redact\",\n \"DataIdentifier\": [\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\"],\n \"Operation\": {\n \"Deidentify\": {\n \"MaskConfig\": {},\n },\n },\n },\n ],\n }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dataProtection = new Aws.CloudWatch.LogAccountPolicy(\"data_protection\", new()\n {\n PolicyName = \"data-protection\",\n PolicyType = \"DATA_PROTECTION_POLICY\",\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Name\"] = \"DataProtection\",\n [\"Version\"] = \"2021-06-01\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Audit\",\n [\"DataIdentifier\"] = new[]\n {\n \"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n },\n [\"Operation\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Audit\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"FindingsDestination\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Sid\"] = \"Redact\",\n [\"DataIdentifier\"] = new[]\n {\n \"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n },\n [\"Operation\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Deidentify\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"MaskConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n },\n },\n },\n },\n },\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Name\": \"DataProtection\",\n\t\t\t\"Version\": \"2021-06-01\",\n\t\t\t\"Statement\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Audit\",\n\t\t\t\t\t\"DataIdentifier\": []string{\n\t\t\t\t\t\t\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Operation\": map[string]interface{}{\n\t\t\t\t\t\t\"Audit\": map[string]interface{}{\n\t\t\t\t\t\t\t\"FindingsDestination\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\": \"Redact\",\n\t\t\t\t\t\"DataIdentifier\": []string{\n\t\t\t\t\t\t\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Operation\": map[string]interface{}{\n\t\t\t\t\t\t\"Deidentify\": map[string]interface{}{\n\t\t\t\t\t\t\t\"MaskConfig\": map[string]interface{}{},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudwatch.NewLogAccountPolicy(ctx, \"data_protection\", \u0026cloudwatch.LogAccountPolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"data-protection\"),\n\t\t\tPolicyType: pulumi.String(\"DATA_PROTECTION_POLICY\"),\n\t\t\tPolicyDocument: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicy;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var dataProtection = new LogAccountPolicy(\"dataProtection\", LogAccountPolicyArgs.builder()\n .policyName(\"data-protection\")\n .policyType(\"DATA_PROTECTION_POLICY\")\n .policyDocument(serializeJson(\n jsonObject(\n jsonProperty(\"Name\", \"DataProtection\"),\n jsonProperty(\"Version\", \"2021-06-01\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Sid\", \"Audit\"),\n jsonProperty(\"DataIdentifier\", jsonArray(\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\")),\n jsonProperty(\"Operation\", jsonObject(\n jsonProperty(\"Audit\", jsonObject(\n jsonProperty(\"FindingsDestination\", jsonObject(\n\n ))\n ))\n ))\n ), \n jsonObject(\n jsonProperty(\"Sid\", \"Redact\"),\n jsonProperty(\"DataIdentifier\", jsonArray(\"arn:aws:dataprotection::aws:data-identifier/EmailAddress\")),\n jsonProperty(\"Operation\", jsonObject(\n jsonProperty(\"Deidentify\", jsonObject(\n jsonProperty(\"MaskConfig\", jsonObject(\n\n ))\n ))\n ))\n )\n ))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n dataProtection:\n type: aws:cloudwatch:LogAccountPolicy\n name: data_protection\n properties:\n policyName: data-protection\n policyType: DATA_PROTECTION_POLICY\n policyDocument:\n fn::toJSON:\n Name: DataProtection\n Version: 2021-06-01\n Statement:\n - Sid: Audit\n DataIdentifier:\n - arn:aws:dataprotection::aws:data-identifier/EmailAddress\n Operation:\n Audit:\n FindingsDestination: {}\n - Sid: Redact\n DataIdentifier:\n - arn:aws:dataprotection::aws:data-identifier/EmailAddress\n Operation:\n Deidentify:\n MaskConfig: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Subscription Filter Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst subscriptionFilter = new aws.cloudwatch.LogAccountPolicy(\"subscription_filter\", {\n policyName: \"subscription-filter\",\n policyType: \"SUBSCRIPTION_FILTER_POLICY\",\n policyDocument: JSON.stringify({\n DestinationArn: test.arn,\n FilterPattern: \"test\",\n }),\n selectionCriteria: \"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nsubscription_filter = aws.cloudwatch.LogAccountPolicy(\"subscription_filter\",\n policy_name=\"subscription-filter\",\n policy_type=\"SUBSCRIPTION_FILTER_POLICY\",\n policy_document=json.dumps({\n \"DestinationArn\": test[\"arn\"],\n \"FilterPattern\": \"test\",\n }),\n selection_criteria=\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subscriptionFilter = new Aws.CloudWatch.LogAccountPolicy(\"subscription_filter\", new()\n {\n PolicyName = \"subscription-filter\",\n PolicyType = \"SUBSCRIPTION_FILTER_POLICY\",\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"DestinationArn\"] = test.Arn,\n [\"FilterPattern\"] = \"test\",\n }),\n SelectionCriteria = \"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"DestinationArn\": test.Arn,\n\t\t\t\"FilterPattern\": \"test\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudwatch.NewLogAccountPolicy(ctx, \"subscription_filter\", \u0026cloudwatch.LogAccountPolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"subscription-filter\"),\n\t\t\tPolicyType: pulumi.String(\"SUBSCRIPTION_FILTER_POLICY\"),\n\t\t\tPolicyDocument: pulumi.String(json0),\n\t\t\tSelectionCriteria: pulumi.String(\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicy;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var subscriptionFilter = new LogAccountPolicy(\"subscriptionFilter\", LogAccountPolicyArgs.builder()\n .policyName(\"subscription-filter\")\n .policyType(\"SUBSCRIPTION_FILTER_POLICY\")\n .policyDocument(serializeJson(\n jsonObject(\n jsonProperty(\"DestinationArn\", test.arn()),\n jsonProperty(\"FilterPattern\", \"test\")\n )))\n .selectionCriteria(\"LogGroupName NOT IN [\\\"excluded_log_group_name\\\"]\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subscriptionFilter:\n type: aws:cloudwatch:LogAccountPolicy\n name: subscription_filter\n properties:\n policyName: subscription-filter\n policyType: SUBSCRIPTION_FILTER_POLICY\n policyDocument:\n fn::toJSON:\n DestinationArn: ${test.arn}\n FilterPattern: test\n selectionCriteria: LogGroupName NOT IN [\"excluded_log_group_name\"]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Field Index Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fieldIndex = new aws.cloudwatch.LogAccountPolicy(\"field_index\", {\n policyName: \"field-index\",\n policyType: \"FIELD_INDEX_POLICY\",\n policyDocument: JSON.stringify({\n Fields: [\n \"field1\",\n \"field2\",\n ],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nfield_index = aws.cloudwatch.LogAccountPolicy(\"field_index\",\n policy_name=\"field-index\",\n policy_type=\"FIELD_INDEX_POLICY\",\n policy_document=json.dumps({\n \"Fields\": [\n \"field1\",\n \"field2\",\n ],\n }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fieldIndex = new Aws.CloudWatch.LogAccountPolicy(\"field_index\", new()\n {\n PolicyName = \"field-index\",\n PolicyType = \"FIELD_INDEX_POLICY\",\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Fields\"] = new[]\n {\n \"field1\",\n \"field2\",\n },\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Fields\": []string{\n\t\t\t\t\"field1\",\n\t\t\t\t\"field2\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cloudwatch.NewLogAccountPolicy(ctx, \"field_index\", \u0026cloudwatch.LogAccountPolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"field-index\"),\n\t\t\tPolicyType: pulumi.String(\"FIELD_INDEX_POLICY\"),\n\t\t\tPolicyDocument: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicy;\nimport com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fieldIndex = new LogAccountPolicy(\"fieldIndex\", LogAccountPolicyArgs.builder()\n .policyName(\"field-index\")\n .policyType(\"FIELD_INDEX_POLICY\")\n .policyDocument(serializeJson(\n jsonObject(\n jsonProperty(\"Fields\", jsonArray(\n \"field1\", \n \"field2\"\n ))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fieldIndex:\n type: aws:cloudwatch:LogAccountPolicy\n name: field_index\n properties:\n policyName: field-index\n policyType: FIELD_INDEX_POLICY\n policyDocument:\n fn::toJSON:\n Fields:\n - field1\n - field2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example:\n\n```sh\n$ pulumi import aws:cloudwatch/logAccountPolicy:LogAccountPolicy example \"my-account-policy:SUBSCRIPTION_FILTER_POLICY\"\n```\n", "properties": { "policyDocument": { "type": "string", @@ -205038,7 +205445,7 @@ }, "policyType": { "type": "string", - "description": "Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account.\n" + "description": "Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account.\n" }, "scope": { "type": "string", @@ -205066,7 +205473,7 @@ }, "policyType": { "type": "string", - "description": "Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account.\n", + "description": "Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account.\n", "willReplaceOnChanges": true }, "scope": { @@ -205098,7 +205505,7 @@ }, "policyType": { "type": "string", - "description": "Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account.\n", + "description": "Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account.\n", "willReplaceOnChanges": true }, "scope": { @@ -223854,6 +224261,10 @@ "type": "string", "description": "The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294.\n" }, + "arn": { + "type": "string", + "description": "The ARN of the gateway.\n" + }, "name": { "type": "string", "description": "The name of the connection.\n" @@ -223865,6 +224276,7 @@ }, "required": [ "amazonSideAsn", + "arn", "name", "ownerAccountId" ], @@ -223890,6 +224302,10 @@ "description": "The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294.\n", "willReplaceOnChanges": true }, + "arn": { + "type": "string", + "description": "The ARN of the gateway.\n" + }, "name": { "type": "string", "description": "The name of the connection.\n" @@ -246899,6 +247315,10 @@ "type": "string", "description": "The service name. For AWS services the service name is usually in the form `com.amazonaws.\u003cregion\u003e.\u003cservice\u003e` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.\u003cregion\u003e.notebook`).\n" }, + "serviceRegion": { + "type": "string", + "description": "The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`.\n" + }, "state": { "type": "string", "description": "The state of the VPC endpoint.\n" @@ -246956,6 +247376,7 @@ "routeTableIds", "securityGroupIds", "serviceName", + "serviceRegion", "state", "subnetConfigurations", "subnetIds", @@ -247002,6 +247423,11 @@ "description": "The service name. For AWS services the service name is usually in the form `com.amazonaws.\u003cregion\u003e.\u003cservice\u003e` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.\u003cregion\u003e.notebook`).\n", "willReplaceOnChanges": true }, + "serviceRegion": { + "type": "string", + "description": "The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`.\n", + "willReplaceOnChanges": true + }, "subnetConfigurations": { "type": "array", "items": { @@ -247117,6 +247543,11 @@ "description": "The service name. For AWS services the service name is usually in the form `com.amazonaws.\u003cregion\u003e.\u003cservice\u003e` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.\u003cregion\u003e.notebook`).\n", "willReplaceOnChanges": true }, + "serviceRegion": { + "type": "string", + "description": "The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`.\n", + "willReplaceOnChanges": true + }, "state": { "type": "string", "description": "The state of the VPC endpoint.\n" @@ -257564,7 +257995,7 @@ } }, "aws:eks/cluster:Cluster": { - "description": "Manages an EKS Cluster.\n\n## Example Usage\n\n### EKS Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"eks.amazonaws.com\",\n },\n }],\n }),\n});\nconst clusterAmazonEKSClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role: cluster.name,\n});\nconst example = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"API\",\n },\n roleArn: exampleAwsIamRole.arn,\n version: \"1.31\",\n vpcConfig: {\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n}, {\n dependsOn: [clusterAmazonEKSClusterPolicy],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks.amazonaws.com\",\n },\n }],\n }))\ncluster_amazon_eks_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role=cluster.name)\nexample = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"API\",\n },\n role_arn=example_aws_iam_role[\"arn\"],\n version=\"1.31\",\n vpc_config={\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[cluster_amazon_eks_cluster_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n Role = cluster.Name,\n });\n\n var example = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"API\",\n },\n RoleArn = exampleAwsIamRole.Arn,\n Version = \"1.31\",\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSClusterPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"API\"),\n\t\t\t},\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSClusterPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"API\")\n .build())\n .roleArn(exampleAwsIamRole.arn())\n .version(\"1.31\")\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(clusterAmazonEKSClusterPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${exampleAwsIamRole.arn}\n version: '1.31'\n vpcConfig:\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EKS Cluster with EKS Auto Mode\n\n\u003e **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst node = new aws.iam.Role(\"node\", {\n name: \"eks-auto-node-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"sts:AssumeRole\"],\n Effect: \"Allow\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"eks.amazonaws.com\",\n },\n }],\n }),\n});\nconst clusterAmazonEKSClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSComputePolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSBlockStoragePolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSLoadBalancingPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSNetworkingPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n role: cluster.name,\n});\nconst example = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"API\",\n },\n roleArn: cluster.arn,\n version: \"1.31\",\n computeConfig: {\n enabled: true,\n nodePools: [\"general-purpose\"],\n nodeRoleArn: node.arn,\n },\n kubernetesNetworkConfig: {\n elasticLoadBalancing: {\n enabled: true,\n },\n },\n storageConfig: {\n blockStorage: {\n enabled: true,\n },\n },\n vpcConfig: {\n endpointPrivateAccess: true,\n endpointPublicAccess: true,\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n}, {\n dependsOn: [\n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy,\n ],\n});\nconst nodeAmazonEKSWorkerNodeMinimalPolicy = new aws.iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n role: node.name,\n});\nconst nodeAmazonEC2ContainerRegistryPullOnly = new aws.iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n role: node.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nnode = aws.iam.Role(\"node\",\n name=\"eks-auto-node-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"sts:AssumeRole\"],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks.amazonaws.com\",\n },\n }],\n }))\ncluster_amazon_eks_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role=cluster.name)\ncluster_amazon_eks_compute_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n role=cluster.name)\ncluster_amazon_eks_block_storage_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n role=cluster.name)\ncluster_amazon_eks_load_balancing_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n role=cluster.name)\ncluster_amazon_eks_networking_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n role=cluster.name)\nexample = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"API\",\n },\n role_arn=cluster.arn,\n version=\"1.31\",\n compute_config={\n \"enabled\": True,\n \"node_pools\": [\"general-purpose\"],\n \"node_role_arn\": node.arn,\n },\n kubernetes_network_config={\n \"elastic_load_balancing\": {\n \"enabled\": True,\n },\n },\n storage_config={\n \"block_storage\": {\n \"enabled\": True,\n },\n },\n vpc_config={\n \"endpoint_private_access\": True,\n \"endpoint_public_access\": True,\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n cluster_amazon_eks_cluster_policy,\n cluster_amazon_eks_compute_policy,\n cluster_amazon_eks_block_storage_policy,\n cluster_amazon_eks_load_balancing_policy,\n cluster_amazon_eks_networking_policy,\n ]))\nnode_amazon_eks_worker_node_minimal_policy = aws.iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n role=node.name)\nnode_amazon_ec2_container_registry_pull_only = aws.iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n role=node.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = new Aws.Iam.Role(\"node\", new()\n {\n Name = \"eks-auto-node-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSComputePolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSBlockStoragePolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSLoadBalancingPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSNetworkingPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n Role = cluster.Name,\n });\n\n var example = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"API\",\n },\n RoleArn = cluster.Arn,\n Version = \"1.31\",\n ComputeConfig = new Aws.Eks.Inputs.ClusterComputeConfigArgs\n {\n Enabled = true,\n NodePools = new[]\n {\n \"general-purpose\",\n },\n NodeRoleArn = node.Arn,\n },\n KubernetesNetworkConfig = new Aws.Eks.Inputs.ClusterKubernetesNetworkConfigArgs\n {\n ElasticLoadBalancing = new Aws.Eks.Inputs.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs\n {\n Enabled = true,\n },\n },\n StorageConfig = new Aws.Eks.Inputs.ClusterStorageConfigArgs\n {\n BlockStorage = new Aws.Eks.Inputs.ClusterStorageConfigBlockStorageArgs\n {\n Enabled = true,\n },\n },\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n EndpointPrivateAccess = true,\n EndpointPublicAccess = true,\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy,\n },\n });\n\n var nodeAmazonEKSWorkerNodeMinimalPolicy = new Aws.Iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n Role = node.Name,\n });\n\n var nodeAmazonEC2ContainerRegistryPullOnly = new Aws.Iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n Role = node.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tnode, err := iam.NewRole(ctx, \"node\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-auto-node-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSComputePolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSComputePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSBlockStoragePolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSBlockStoragePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSLoadBalancingPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSLoadBalancingPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSNetworkingPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSNetworkingPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"API\"),\n\t\t\t},\n\t\t\tRoleArn: cluster.Arn,\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tComputeConfig: \u0026eks.ClusterComputeConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tNodePools: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"general-purpose\"),\n\t\t\t\t},\n\t\t\t\tNodeRoleArn: node.Arn,\n\t\t\t},\n\t\t\tKubernetesNetworkConfig: \u0026eks.ClusterKubernetesNetworkConfigArgs{\n\t\t\t\tElasticLoadBalancing: \u0026eks.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageConfig: \u0026eks.ClusterStorageConfigArgs{\n\t\t\t\tBlockStorage: \u0026eks.ClusterStorageConfigBlockStorageArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tEndpointPrivateAccess: pulumi.Bool(true),\n\t\t\t\tEndpointPublicAccess: pulumi.Bool(true),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSClusterPolicy,\n\t\t\tclusterAmazonEKSComputePolicy,\n\t\t\tclusterAmazonEKSBlockStoragePolicy,\n\t\t\tclusterAmazonEKSLoadBalancingPolicy,\n\t\t\tclusterAmazonEKSNetworkingPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"node_AmazonEKSWorkerNodeMinimalPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\"),\n\t\t\tRole: node.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"node_AmazonEC2ContainerRegistryPullOnly\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\"),\n\t\t\tRole: node.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterComputeConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterKubernetesNetworkConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs;\nimport com.pulumi.aws.eks.inputs.ClusterStorageConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterStorageConfigBlockStorageArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var node = new Role(\"node\", RoleArgs.builder()\n .name(\"eks-auto-node-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"sts:AssumeRole\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSComputePolicy = new RolePolicyAttachment(\"clusterAmazonEKSComputePolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSBlockStoragePolicy = new RolePolicyAttachment(\"clusterAmazonEKSBlockStoragePolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSLoadBalancingPolicy = new RolePolicyAttachment(\"clusterAmazonEKSLoadBalancingPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSNetworkingPolicy = new RolePolicyAttachment(\"clusterAmazonEKSNetworkingPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\")\n .role(cluster.name())\n .build());\n\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"API\")\n .build())\n .roleArn(cluster.arn())\n .version(\"1.31\")\n .computeConfig(ClusterComputeConfigArgs.builder()\n .enabled(true)\n .nodePools(\"general-purpose\")\n .nodeRoleArn(node.arn())\n .build())\n .kubernetesNetworkConfig(ClusterKubernetesNetworkConfigArgs.builder()\n .elasticLoadBalancing(ClusterKubernetesNetworkConfigElasticLoadBalancingArgs.builder()\n .enabled(true)\n .build())\n .build())\n .storageConfig(ClusterStorageConfigArgs.builder()\n .blockStorage(ClusterStorageConfigBlockStorageArgs.builder()\n .enabled(true)\n .build())\n .build())\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .endpointPrivateAccess(true)\n .endpointPublicAccess(true)\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy)\n .build());\n\n var nodeAmazonEKSWorkerNodeMinimalPolicy = new RolePolicyAttachment(\"nodeAmazonEKSWorkerNodeMinimalPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\")\n .role(node.name())\n .build());\n\n var nodeAmazonEC2ContainerRegistryPullOnly = new RolePolicyAttachment(\"nodeAmazonEC2ContainerRegistryPullOnly\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\")\n .role(node.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${cluster.arn}\n version: '1.31'\n computeConfig:\n enabled: true\n nodePools:\n - general-purpose\n nodeRoleArn: ${node.arn}\n kubernetesNetworkConfig:\n elasticLoadBalancing:\n enabled: true\n storageConfig:\n blockStorage:\n enabled: true\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: true\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n - ${clusterAmazonEKSComputePolicy}\n - ${clusterAmazonEKSBlockStoragePolicy}\n - ${clusterAmazonEKSLoadBalancingPolicy}\n - ${clusterAmazonEKSNetworkingPolicy}\n node:\n type: aws:iam:Role\n properties:\n name: eks-auto-node-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n Effect: Allow\n Principal:\n Service: ec2.amazonaws.com\n nodeAmazonEKSWorkerNodeMinimalPolicy:\n type: aws:iam:RolePolicyAttachment\n name: node_AmazonEKSWorkerNodeMinimalPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\n role: ${node.name}\n nodeAmazonEC2ContainerRegistryPullOnly:\n type: aws:iam:RolePolicyAttachment\n name: node_AmazonEC2ContainerRegistryPullOnly\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\n role: ${node.name}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n clusterAmazonEKSComputePolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSComputePolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSComputePolicy\n role: ${cluster.name}\n clusterAmazonEKSBlockStoragePolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSBlockStoragePolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\n role: ${cluster.name}\n clusterAmazonEKSLoadBalancingPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSLoadBalancingPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\n role: ${cluster.name}\n clusterAmazonEKSNetworkingPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSNetworkingPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EKS Cluster with EKS Hybrid Nodes\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${cluster.arn}\n version: '1.31'\n clusterRemoteNetworkConfig:\n remoteNodeNetworks:\n cidrs:\n - 172.16.0.0/18\n remotePodNetworks:\n cidrs:\n - 172.16.64.0/18\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: true\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Local EKS Cluster on AWS Outpost\n\n[Creating a local Amazon EKS cluster on an AWS Outpost](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster-outpost.html)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.outposts.getOutpost({\n name: \"example\",\n});\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: [\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n ],\n },\n }],\n }),\n});\nconst clusterAmazonEKSLocalOutpostClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n role: cluster.name,\n});\nconst exampleCluster = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"CONFIG_MAP\",\n },\n roleArn: exampleAwsIamRole.arn,\n version: \"1.31\",\n vpcConfig: {\n endpointPrivateAccess: true,\n endpointPublicAccess: false,\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n outpostConfig: {\n controlPlaneInstanceType: \"m5.large\",\n outpostArns: [example.then(example =\u003e example.arn)],\n },\n}, {\n dependsOn: [clusterAmazonEKSLocalOutpostClusterPolicy],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.outposts.get_outpost(name=\"example\")\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n ],\n },\n }],\n }))\ncluster_amazon_eks_local_outpost_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n role=cluster.name)\nexample_cluster = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"CONFIG_MAP\",\n },\n role_arn=example_aws_iam_role[\"arn\"],\n version=\"1.31\",\n vpc_config={\n \"endpoint_private_access\": True,\n \"endpoint_public_access\": False,\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n outpost_config={\n \"control_plane_instance_type\": \"m5.large\",\n \"outpost_arns\": [example.arn],\n },\n opts = pulumi.ResourceOptions(depends_on=[cluster_amazon_eks_local_outpost_cluster_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Outposts.GetOutpost.Invoke(new()\n {\n Name = \"example\",\n });\n\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = new[]\n {\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSLocalOutpostClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n Role = cluster.Name,\n });\n\n var exampleCluster = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"CONFIG_MAP\",\n },\n RoleArn = exampleAwsIamRole.Arn,\n Version = \"1.31\",\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n EndpointPrivateAccess = true,\n EndpointPublicAccess = false,\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n OutpostConfig = new Aws.Eks.Inputs.ClusterOutpostConfigArgs\n {\n ControlPlaneInstanceType = \"m5.large\",\n OutpostArns = new[]\n {\n example.Apply(getOutpostResult =\u003e getOutpostResult.Arn),\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSLocalOutpostClusterPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/outposts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := outposts.GetOutpost(ctx, \u0026outposts.GetOutpostArgs{\n\t\t\tName: pulumi.StringRef(\"example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": []string{\n\t\t\t\t\t\t\t\"eks.amazonaws.com\",\n\t\t\t\t\t\t\t\"ec2.amazonaws.com\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSLocalOutpostClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSLocalOutpostClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"CONFIG_MAP\"),\n\t\t\t},\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tEndpointPrivateAccess: pulumi.Bool(true),\n\t\t\t\tEndpointPublicAccess: pulumi.Bool(false),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutpostConfig: \u0026eks.ClusterOutpostConfigArgs{\n\t\t\t\tControlPlaneInstanceType: pulumi.String(\"m5.large\"),\n\t\t\t\tOutpostArns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(example.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSLocalOutpostClusterPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.outposts.OutpostsFunctions;\nimport com.pulumi.aws.outposts.inputs.GetOutpostArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterOutpostConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = OutpostsFunctions.getOutpost(GetOutpostArgs.builder()\n .name(\"example\")\n .build());\n\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", jsonArray(\n \"eks.amazonaws.com\", \n \"ec2.amazonaws.com\"\n ))\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSLocalOutpostClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSLocalOutpostClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"CONFIG_MAP\")\n .build())\n .roleArn(exampleAwsIamRole.arn())\n .version(\"1.31\")\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .endpointPrivateAccess(true)\n .endpointPublicAccess(false)\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .outpostConfig(ClusterOutpostConfigArgs.builder()\n .controlPlaneInstanceType(\"m5.large\")\n .outpostArns(example.applyValue(getOutpostResult -\u003e getOutpostResult.arn()))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(clusterAmazonEKSLocalOutpostClusterPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCluster:\n type: aws:eks:Cluster\n name: example\n properties:\n name: example\n accessConfig:\n authenticationMode: CONFIG_MAP\n roleArn: ${exampleAwsIamRole.arn}\n version: '1.31'\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: false\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n outpostConfig:\n controlPlaneInstanceType: m5.large\n outpostArns:\n - ${example.arn}\n options:\n dependsOn:\n - ${clusterAmazonEKSLocalOutpostClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service:\n - eks.amazonaws.com\n - ec2.amazonaws.com\n clusterAmazonEKSLocalOutpostClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSLocalOutpostClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\n role: ${cluster.name}\nvariables:\n example:\n fn::invoke:\n function: aws:outposts:getOutpost\n arguments:\n name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import EKS Clusters using the `name`. For example:\n\n```sh\n$ pulumi import aws:eks/cluster:Cluster my_cluster my_cluster\n```\n", + "description": "Manages an EKS Cluster.\n\n## Example Usage\n\n### EKS Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"eks.amazonaws.com\",\n },\n }],\n }),\n});\nconst clusterAmazonEKSClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role: cluster.name,\n});\nconst example = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"API\",\n },\n roleArn: exampleAwsIamRole.arn,\n version: \"1.31\",\n vpcConfig: {\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n}, {\n dependsOn: [clusterAmazonEKSClusterPolicy],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks.amazonaws.com\",\n },\n }],\n }))\ncluster_amazon_eks_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role=cluster.name)\nexample = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"API\",\n },\n role_arn=example_aws_iam_role[\"arn\"],\n version=\"1.31\",\n vpc_config={\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[cluster_amazon_eks_cluster_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n Role = cluster.Name,\n });\n\n var example = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"API\",\n },\n RoleArn = exampleAwsIamRole.Arn,\n Version = \"1.31\",\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSClusterPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"API\"),\n\t\t\t},\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSClusterPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"API\")\n .build())\n .roleArn(exampleAwsIamRole.arn())\n .version(\"1.31\")\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(clusterAmazonEKSClusterPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${exampleAwsIamRole.arn}\n version: '1.31'\n vpcConfig:\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EKS Cluster with EKS Auto Mode\n\n\u003e **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrap_self_managed_addons` is set to `false`.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst node = new aws.iam.Role(\"node\", {\n name: \"eks-auto-node-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"sts:AssumeRole\"],\n Effect: \"Allow\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"eks.amazonaws.com\",\n },\n }],\n }),\n});\nconst clusterAmazonEKSClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSComputePolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSBlockStoragePolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSLoadBalancingPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n role: cluster.name,\n});\nconst clusterAmazonEKSNetworkingPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n role: cluster.name,\n});\nconst example = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"API\",\n },\n roleArn: cluster.arn,\n version: \"1.31\",\n bootstrapSelfManagedAddons: false,\n computeConfig: {\n enabled: true,\n nodePools: [\"general-purpose\"],\n nodeRoleArn: node.arn,\n },\n kubernetesNetworkConfig: {\n elasticLoadBalancing: {\n enabled: true,\n },\n },\n storageConfig: {\n blockStorage: {\n enabled: true,\n },\n },\n vpcConfig: {\n endpointPrivateAccess: true,\n endpointPublicAccess: true,\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n}, {\n dependsOn: [\n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy,\n ],\n});\nconst nodeAmazonEKSWorkerNodeMinimalPolicy = new aws.iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n role: node.name,\n});\nconst nodeAmazonEC2ContainerRegistryPullOnly = new aws.iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n role: node.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nnode = aws.iam.Role(\"node\",\n name=\"eks-auto-node-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"sts:AssumeRole\"],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"eks.amazonaws.com\",\n },\n }],\n }))\ncluster_amazon_eks_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n role=cluster.name)\ncluster_amazon_eks_compute_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n role=cluster.name)\ncluster_amazon_eks_block_storage_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n role=cluster.name)\ncluster_amazon_eks_load_balancing_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n role=cluster.name)\ncluster_amazon_eks_networking_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n role=cluster.name)\nexample = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"API\",\n },\n role_arn=cluster.arn,\n version=\"1.31\",\n bootstrap_self_managed_addons=False,\n compute_config={\n \"enabled\": True,\n \"node_pools\": [\"general-purpose\"],\n \"node_role_arn\": node.arn,\n },\n kubernetes_network_config={\n \"elastic_load_balancing\": {\n \"enabled\": True,\n },\n },\n storage_config={\n \"block_storage\": {\n \"enabled\": True,\n },\n },\n vpc_config={\n \"endpoint_private_access\": True,\n \"endpoint_public_access\": True,\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n cluster_amazon_eks_cluster_policy,\n cluster_amazon_eks_compute_policy,\n cluster_amazon_eks_block_storage_policy,\n cluster_amazon_eks_load_balancing_policy,\n cluster_amazon_eks_networking_policy,\n ]))\nnode_amazon_eks_worker_node_minimal_policy = aws.iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n role=node.name)\nnode_amazon_ec2_container_registry_pull_only = aws.iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n role=node.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var node = new Aws.Iam.Role(\"node\", new()\n {\n Name = \"eks-auto-node-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"eks.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSComputePolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSComputePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSBlockStoragePolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSBlockStoragePolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSLoadBalancingPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSLoadBalancingPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\",\n Role = cluster.Name,\n });\n\n var clusterAmazonEKSNetworkingPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSNetworkingPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\",\n Role = cluster.Name,\n });\n\n var example = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"API\",\n },\n RoleArn = cluster.Arn,\n Version = \"1.31\",\n BootstrapSelfManagedAddons = false,\n ComputeConfig = new Aws.Eks.Inputs.ClusterComputeConfigArgs\n {\n Enabled = true,\n NodePools = new[]\n {\n \"general-purpose\",\n },\n NodeRoleArn = node.Arn,\n },\n KubernetesNetworkConfig = new Aws.Eks.Inputs.ClusterKubernetesNetworkConfigArgs\n {\n ElasticLoadBalancing = new Aws.Eks.Inputs.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs\n {\n Enabled = true,\n },\n },\n StorageConfig = new Aws.Eks.Inputs.ClusterStorageConfigArgs\n {\n BlockStorage = new Aws.Eks.Inputs.ClusterStorageConfigBlockStorageArgs\n {\n Enabled = true,\n },\n },\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n EndpointPrivateAccess = true,\n EndpointPublicAccess = true,\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy,\n },\n });\n\n var nodeAmazonEKSWorkerNodeMinimalPolicy = new Aws.Iam.RolePolicyAttachment(\"node_AmazonEKSWorkerNodeMinimalPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\",\n Role = node.Name,\n });\n\n var nodeAmazonEC2ContainerRegistryPullOnly = new Aws.Iam.RolePolicyAttachment(\"node_AmazonEC2ContainerRegistryPullOnly\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\",\n Role = node.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tnode, err := iam.NewRole(ctx, \"node\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-auto-node-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"eks.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSComputePolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSComputePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSBlockStoragePolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSBlockStoragePolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSLoadBalancingPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSLoadBalancingPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSNetworkingPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSNetworkingPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"API\"),\n\t\t\t},\n\t\t\tRoleArn: cluster.Arn,\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tBootstrapSelfManagedAddons: pulumi.Bool(false),\n\t\t\tComputeConfig: \u0026eks.ClusterComputeConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tNodePools: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"general-purpose\"),\n\t\t\t\t},\n\t\t\t\tNodeRoleArn: node.Arn,\n\t\t\t},\n\t\t\tKubernetesNetworkConfig: \u0026eks.ClusterKubernetesNetworkConfigArgs{\n\t\t\t\tElasticLoadBalancing: \u0026eks.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageConfig: \u0026eks.ClusterStorageConfigArgs{\n\t\t\t\tBlockStorage: \u0026eks.ClusterStorageConfigBlockStorageArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tEndpointPrivateAccess: pulumi.Bool(true),\n\t\t\t\tEndpointPublicAccess: pulumi.Bool(true),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSClusterPolicy,\n\t\t\tclusterAmazonEKSComputePolicy,\n\t\t\tclusterAmazonEKSBlockStoragePolicy,\n\t\t\tclusterAmazonEKSLoadBalancingPolicy,\n\t\t\tclusterAmazonEKSNetworkingPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"node_AmazonEKSWorkerNodeMinimalPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\"),\n\t\t\tRole: node.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"node_AmazonEC2ContainerRegistryPullOnly\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\"),\n\t\t\tRole: node.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterComputeConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterKubernetesNetworkConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterKubernetesNetworkConfigElasticLoadBalancingArgs;\nimport com.pulumi.aws.eks.inputs.ClusterStorageConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterStorageConfigBlockStorageArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var node = new Role(\"node\", RoleArgs.builder()\n .name(\"eks-auto-node-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"sts:AssumeRole\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"eks.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSComputePolicy = new RolePolicyAttachment(\"clusterAmazonEKSComputePolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSComputePolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSBlockStoragePolicy = new RolePolicyAttachment(\"clusterAmazonEKSBlockStoragePolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSLoadBalancingPolicy = new RolePolicyAttachment(\"clusterAmazonEKSLoadBalancingPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\")\n .role(cluster.name())\n .build());\n\n var clusterAmazonEKSNetworkingPolicy = new RolePolicyAttachment(\"clusterAmazonEKSNetworkingPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\")\n .role(cluster.name())\n .build());\n\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"API\")\n .build())\n .roleArn(cluster.arn())\n .version(\"1.31\")\n .bootstrapSelfManagedAddons(false)\n .computeConfig(ClusterComputeConfigArgs.builder()\n .enabled(true)\n .nodePools(\"general-purpose\")\n .nodeRoleArn(node.arn())\n .build())\n .kubernetesNetworkConfig(ClusterKubernetesNetworkConfigArgs.builder()\n .elasticLoadBalancing(ClusterKubernetesNetworkConfigElasticLoadBalancingArgs.builder()\n .enabled(true)\n .build())\n .build())\n .storageConfig(ClusterStorageConfigArgs.builder()\n .blockStorage(ClusterStorageConfigBlockStorageArgs.builder()\n .enabled(true)\n .build())\n .build())\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .endpointPrivateAccess(true)\n .endpointPublicAccess(true)\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n clusterAmazonEKSClusterPolicy,\n clusterAmazonEKSComputePolicy,\n clusterAmazonEKSBlockStoragePolicy,\n clusterAmazonEKSLoadBalancingPolicy,\n clusterAmazonEKSNetworkingPolicy)\n .build());\n\n var nodeAmazonEKSWorkerNodeMinimalPolicy = new RolePolicyAttachment(\"nodeAmazonEKSWorkerNodeMinimalPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\")\n .role(node.name())\n .build());\n\n var nodeAmazonEC2ContainerRegistryPullOnly = new RolePolicyAttachment(\"nodeAmazonEC2ContainerRegistryPullOnly\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\")\n .role(node.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${cluster.arn}\n version: '1.31'\n bootstrapSelfManagedAddons: false\n computeConfig:\n enabled: true\n nodePools:\n - general-purpose\n nodeRoleArn: ${node.arn}\n kubernetesNetworkConfig:\n elasticLoadBalancing:\n enabled: true\n storageConfig:\n blockStorage:\n enabled: true\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: true\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n - ${clusterAmazonEKSComputePolicy}\n - ${clusterAmazonEKSBlockStoragePolicy}\n - ${clusterAmazonEKSLoadBalancingPolicy}\n - ${clusterAmazonEKSNetworkingPolicy}\n node:\n type: aws:iam:Role\n properties:\n name: eks-auto-node-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n Effect: Allow\n Principal:\n Service: ec2.amazonaws.com\n nodeAmazonEKSWorkerNodeMinimalPolicy:\n type: aws:iam:RolePolicyAttachment\n name: node_AmazonEKSWorkerNodeMinimalPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy\n role: ${node.name}\n nodeAmazonEC2ContainerRegistryPullOnly:\n type: aws:iam:RolePolicyAttachment\n name: node_AmazonEC2ContainerRegistryPullOnly\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly\n role: ${node.name}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n clusterAmazonEKSComputePolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSComputePolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSComputePolicy\n role: ${cluster.name}\n clusterAmazonEKSBlockStoragePolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSBlockStoragePolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy\n role: ${cluster.name}\n clusterAmazonEKSLoadBalancingPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSLoadBalancingPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy\n role: ${cluster.name}\n clusterAmazonEKSNetworkingPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSNetworkingPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EKS Cluster with EKS Hybrid Nodes\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: aws:eks:Cluster\n properties:\n name: example\n accessConfig:\n authenticationMode: API\n roleArn: ${cluster.arn}\n version: '1.31'\n clusterRemoteNetworkConfig:\n remoteNodeNetworks:\n cidrs:\n - 172.16.0.0/18\n remotePodNetworks:\n cidrs:\n - 172.16.64.0/18\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: true\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n options:\n dependsOn:\n - ${clusterAmazonEKSClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: eks.amazonaws.com\n clusterAmazonEKSClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy\n role: ${cluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Local EKS Cluster on AWS Outpost\n\n[Creating a local Amazon EKS cluster on an AWS Outpost](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster-outpost.html)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.outposts.getOutpost({\n name: \"example\",\n});\nconst cluster = new aws.iam.Role(\"cluster\", {\n name: \"eks-cluster-example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: [\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n ],\n },\n }],\n }),\n});\nconst clusterAmazonEKSLocalOutpostClusterPolicy = new aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\", {\n policyArn: \"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n role: cluster.name,\n});\nconst exampleCluster = new aws.eks.Cluster(\"example\", {\n name: \"example\",\n accessConfig: {\n authenticationMode: \"CONFIG_MAP\",\n },\n roleArn: exampleAwsIamRole.arn,\n version: \"1.31\",\n vpcConfig: {\n endpointPrivateAccess: true,\n endpointPublicAccess: false,\n subnetIds: [\n az1.id,\n az2.id,\n az3.id,\n ],\n },\n outpostConfig: {\n controlPlaneInstanceType: \"m5.large\",\n outpostArns: [example.then(example =\u003e example.arn)],\n },\n}, {\n dependsOn: [clusterAmazonEKSLocalOutpostClusterPolicy],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.outposts.get_outpost(name=\"example\")\ncluster = aws.iam.Role(\"cluster\",\n name=\"eks-cluster-example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n ],\n },\n }],\n }))\ncluster_amazon_eks_local_outpost_cluster_policy = aws.iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\",\n policy_arn=\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n role=cluster.name)\nexample_cluster = aws.eks.Cluster(\"example\",\n name=\"example\",\n access_config={\n \"authentication_mode\": \"CONFIG_MAP\",\n },\n role_arn=example_aws_iam_role[\"arn\"],\n version=\"1.31\",\n vpc_config={\n \"endpoint_private_access\": True,\n \"endpoint_public_access\": False,\n \"subnet_ids\": [\n az1[\"id\"],\n az2[\"id\"],\n az3[\"id\"],\n ],\n },\n outpost_config={\n \"control_plane_instance_type\": \"m5.large\",\n \"outpost_arns\": [example.arn],\n },\n opts = pulumi.ResourceOptions(depends_on=[cluster_amazon_eks_local_outpost_cluster_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Outposts.GetOutpost.Invoke(new()\n {\n Name = \"example\",\n });\n\n var cluster = new Aws.Iam.Role(\"cluster\", new()\n {\n Name = \"eks-cluster-example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = new[]\n {\n \"eks.amazonaws.com\",\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n }),\n });\n\n var clusterAmazonEKSLocalOutpostClusterPolicy = new Aws.Iam.RolePolicyAttachment(\"cluster_AmazonEKSLocalOutpostClusterPolicy\", new()\n {\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\",\n Role = cluster.Name,\n });\n\n var exampleCluster = new Aws.Eks.Cluster(\"example\", new()\n {\n Name = \"example\",\n AccessConfig = new Aws.Eks.Inputs.ClusterAccessConfigArgs\n {\n AuthenticationMode = \"CONFIG_MAP\",\n },\n RoleArn = exampleAwsIamRole.Arn,\n Version = \"1.31\",\n VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs\n {\n EndpointPrivateAccess = true,\n EndpointPublicAccess = false,\n SubnetIds = new[]\n {\n az1.Id,\n az2.Id,\n az3.Id,\n },\n },\n OutpostConfig = new Aws.Eks.Inputs.ClusterOutpostConfigArgs\n {\n ControlPlaneInstanceType = \"m5.large\",\n OutpostArns = new[]\n {\n example.Apply(getOutpostResult =\u003e getOutpostResult.Arn),\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n clusterAmazonEKSLocalOutpostClusterPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/outposts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := outposts.GetOutpost(ctx, \u0026outposts.GetOutpostArgs{\n\t\t\tName: pulumi.StringRef(\"example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": []string{\n\t\t\t\t\t\t\t\"eks.amazonaws.com\",\n\t\t\t\t\t\t\t\"ec2.amazonaws.com\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tcluster, err := iam.NewRole(ctx, \"cluster\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"eks-cluster-example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAmazonEKSLocalOutpostClusterPolicy, err := iam.NewRolePolicyAttachment(ctx, \"cluster_AmazonEKSLocalOutpostClusterPolicy\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\"),\n\t\t\tRole: cluster.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eks.NewCluster(ctx, \"example\", \u0026eks.ClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAccessConfig: \u0026eks.ClusterAccessConfigArgs{\n\t\t\t\tAuthenticationMode: pulumi.String(\"CONFIG_MAP\"),\n\t\t\t},\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tVersion: pulumi.String(\"1.31\"),\n\t\t\tVpcConfig: \u0026eks.ClusterVpcConfigArgs{\n\t\t\t\tEndpointPrivateAccess: pulumi.Bool(true),\n\t\t\t\tEndpointPublicAccess: pulumi.Bool(false),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\taz1.Id,\n\t\t\t\t\taz2.Id,\n\t\t\t\t\taz3.Id,\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutpostConfig: \u0026eks.ClusterOutpostConfigArgs{\n\t\t\t\tControlPlaneInstanceType: pulumi.String(\"m5.large\"),\n\t\t\t\tOutpostArns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(example.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAmazonEKSLocalOutpostClusterPolicy,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.outposts.OutpostsFunctions;\nimport com.pulumi.aws.outposts.inputs.GetOutpostArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.eks.Cluster;\nimport com.pulumi.aws.eks.ClusterArgs;\nimport com.pulumi.aws.eks.inputs.ClusterAccessConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;\nimport com.pulumi.aws.eks.inputs.ClusterOutpostConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = OutpostsFunctions.getOutpost(GetOutpostArgs.builder()\n .name(\"example\")\n .build());\n\n var cluster = new Role(\"cluster\", RoleArgs.builder()\n .name(\"eks-cluster-example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", jsonArray(\n \"eks.amazonaws.com\", \n \"ec2.amazonaws.com\"\n ))\n ))\n )))\n )))\n .build());\n\n var clusterAmazonEKSLocalOutpostClusterPolicy = new RolePolicyAttachment(\"clusterAmazonEKSLocalOutpostClusterPolicy\", RolePolicyAttachmentArgs.builder()\n .policyArn(\"arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\")\n .role(cluster.name())\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .name(\"example\")\n .accessConfig(ClusterAccessConfigArgs.builder()\n .authenticationMode(\"CONFIG_MAP\")\n .build())\n .roleArn(exampleAwsIamRole.arn())\n .version(\"1.31\")\n .vpcConfig(ClusterVpcConfigArgs.builder()\n .endpointPrivateAccess(true)\n .endpointPublicAccess(false)\n .subnetIds( \n az1.id(),\n az2.id(),\n az3.id())\n .build())\n .outpostConfig(ClusterOutpostConfigArgs.builder()\n .controlPlaneInstanceType(\"m5.large\")\n .outpostArns(example.applyValue(getOutpostResult -\u003e getOutpostResult.arn()))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(clusterAmazonEKSLocalOutpostClusterPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCluster:\n type: aws:eks:Cluster\n name: example\n properties:\n name: example\n accessConfig:\n authenticationMode: CONFIG_MAP\n roleArn: ${exampleAwsIamRole.arn}\n version: '1.31'\n vpcConfig:\n endpointPrivateAccess: true\n endpointPublicAccess: false\n subnetIds:\n - ${az1.id}\n - ${az2.id}\n - ${az3.id}\n outpostConfig:\n controlPlaneInstanceType: m5.large\n outpostArns:\n - ${example.arn}\n options:\n dependsOn:\n - ${clusterAmazonEKSLocalOutpostClusterPolicy}\n cluster:\n type: aws:iam:Role\n properties:\n name: eks-cluster-example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service:\n - eks.amazonaws.com\n - ec2.amazonaws.com\n clusterAmazonEKSLocalOutpostClusterPolicy:\n type: aws:iam:RolePolicyAttachment\n name: cluster_AmazonEKSLocalOutpostClusterPolicy\n properties:\n policyArn: arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy\n role: ${cluster.name}\nvariables:\n example:\n fn::invoke:\n function: aws:outposts:getOutpost\n arguments:\n name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import EKS Clusters using the `name`. For example:\n\n```sh\n$ pulumi import aws:eks/cluster:Cluster my_cluster my_cluster\n```\n", "properties": { "accessConfig": { "$ref": "#/types/aws:eks/ClusterAccessConfig:ClusterAccessConfig", @@ -259581,7 +260012,7 @@ }, "atRestEncryptionEnabled": { "type": "boolean", - "description": "Whether to enable encryption at rest.\n" + "description": "Whether to enable encryption at rest.\nWhen `engine` is `redis`, default is `false`.\nWhen `engine` is `valkey`, default is `true`.\n" }, "authToken": { "type": "string", @@ -259622,7 +260053,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" + "description": "Name of the cache engine to be used for the clusters in this replication group.\nValid values are `redis` or `valkey`.\nDefault is `redis`.\n" }, "engineVersion": { "type": "string", @@ -259829,7 +260260,7 @@ }, "atRestEncryptionEnabled": { "type": "boolean", - "description": "Whether to enable encryption at rest.\n", + "description": "Whether to enable encryption at rest.\nWhen `engine` is `redis`, default is `false`.\nWhen `engine` is `valkey`, default is `true`.\n", "willReplaceOnChanges": true }, "authToken": { @@ -259864,7 +260295,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" + "description": "Name of the cache engine to be used for the clusters in this replication group.\nValid values are `redis` or `valkey`.\nDefault is `redis`.\n" }, "engineVersion": { "type": "string", @@ -260029,7 +260460,7 @@ }, "atRestEncryptionEnabled": { "type": "boolean", - "description": "Whether to enable encryption at rest.\n", + "description": "Whether to enable encryption at rest.\nWhen `engine` is `redis`, default is `false`.\nWhen `engine` is `valkey`, default is `true`.\n", "willReplaceOnChanges": true }, "authToken": { @@ -260072,7 +260503,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" + "description": "Name of the cache engine to be used for the clusters in this replication group.\nValid values are `redis` or `valkey`.\nDefault is `redis`.\n" }, "engineVersion": { "type": "string", @@ -269020,6 +269451,10 @@ "type": "string", "description": "The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`.\n" }, + "efaEnabled": { + "type": "boolean", + "description": "Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.\n" + }, "exportPath": { "type": "string", "description": "S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.\n" @@ -269131,6 +269566,7 @@ "automaticBackupRetentionDays", "dailyAutomaticBackupStartTime", "dnsName", + "efaEnabled", "exportPath", "fileSystemTypeVersion", "importedFileChunkSize", @@ -269182,6 +269618,11 @@ "description": "The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`.\n", "willReplaceOnChanges": true }, + "efaEnabled": { + "type": "boolean", + "description": "Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.\n", + "willReplaceOnChanges": true + }, "exportPath": { "type": "string", "description": "S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.\n", @@ -269318,6 +269759,11 @@ "description": "The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`.\n", "willReplaceOnChanges": true }, + "efaEnabled": { + "type": "boolean", + "description": "Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.\n", + "willReplaceOnChanges": true + }, "exportPath": { "type": "string", "description": "S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.\n", @@ -292947,7 +293393,7 @@ } }, "aws:lakeformation/permissions:Permissions": { - "description": "Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. Permissions are granted to a principal, in a Data Catalog, relative to a Lake Formation resource, which includes the Data Catalog, databases, tables, LF-tags, and LF-tag policies. For more information, see [Security and Access Control to Metadata and Data in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html).\n\n!\u003e **WARNING:** Lake Formation permissions are not in effect by default within AWS. Using this resource will not secure your data and will result in errors if you do not change the security settings for existing resources and the default security settings for new resources. See Default Behavior and `IAMAllowedPrincipals` for additional details.\n\n\u003e **NOTE:** In general, the `principal` should _NOT_ be a Lake Formation administrator or the entity (e.g., IAM role) that is running the deployment. Administrators have implicit permissions. These should be managed by granting or not granting administrator rights using `aws.lakeformation.DataLakeSettings`, _not_ with this resource.\n\n## Default Behavior and `IAMAllowedPrincipals`\n\n**_Lake Formation permissions are not in effect by default within AWS._** `IAMAllowedPrincipals` (i.e., `IAM_ALLOWED_PRINCIPALS`) conflicts with individual Lake Formation permissions (i.e., non-`IAMAllowedPrincipals` permissions), will cause unexpected behavior, and may result in errors.\n\nWhen using Lake Formation, choose ONE of the following options as they are mutually exclusive:\n\n1. Use this resource (`aws.lakeformation.Permissions`), change the default security settings using `aws.lakeformation.DataLakeSettings`, and remove existing `IAMAllowedPrincipals` permissions\n2. Use `IAMAllowedPrincipals` without `aws.lakeformation.Permissions`\n\nThis example shows removing the `IAMAllowedPrincipals` default security settings and making the caller a Lake Formation admin. Since `create_database_default_permissions` and `create_table_default_permissions` are not set in the `aws.lakeformation.DataLakeSettings` resource, they are cleared.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getCallerIdentity({});\nconst currentGetSessionContext = current.then(current =\u003e aws.iam.getSessionContext({\n arn: current.arn,\n}));\nconst test = new aws.lakeformation.DataLakeSettings(\"test\", {admins: [currentGetSessionContext.then(currentGetSessionContext =\u003e currentGetSessionContext.issuerArn)]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\ncurrent_get_session_context = aws.iam.get_session_context(arn=current.arn)\ntest = aws.lakeformation.DataLakeSettings(\"test\", admins=[current_get_session_context.issuer_arn])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetSessionContext = Aws.Iam.GetSessionContext.Invoke(new()\n {\n Arn = current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.Arn),\n });\n\n var test = new Aws.LakeFormation.DataLakeSettings(\"test\", new()\n {\n Admins = new[]\n {\n currentGetSessionContext.Apply(getSessionContextResult =\u003e getSessionContextResult.IssuerArn),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetSessionContext, err := iam.GetSessionContext(ctx, \u0026iam.GetSessionContextArgs{\n\t\t\tArn: current.Arn,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewDataLakeSettings(ctx, \"test\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\tpulumi.String(currentGetSessionContext.IssuerArn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetSessionContextArgs;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetSessionContext = IamFunctions.getSessionContext(GetSessionContextArgs.builder()\n .arn(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.arn()))\n .build());\n\n var test = new DataLakeSettings(\"test\", DataLakeSettingsArgs.builder()\n .admins(currentGetSessionContext.applyValue(getSessionContextResult -\u003e getSessionContextResult.issuerArn()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${currentGetSessionContext.issuerArn}\nvariables:\n current:\n fn::invoke:\n function: aws:getCallerIdentity\n arguments: {}\n currentGetSessionContext:\n fn::invoke:\n function: aws:iam:getSessionContext\n arguments:\n arn: ${current.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo remove existing `IAMAllowedPrincipals` permissions, use the [AWS Lake Formation Console](https://console.aws.amazon.com/lakeformation/) or [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lakeformation/batch-revoke-permissions.html).\n\n`IAMAllowedPrincipals` is a hook to maintain backwards compatibility with AWS Glue. `IAMAllowedPrincipals` is a pseudo-entity group that acts like a Lake Formation principal. The group includes any IAM users and roles that are allowed access to your Data Catalog resources by your IAM policies.\n\nThis is Lake Formation's default behavior:\n\n* Lake Formation grants `Super` permission to `IAMAllowedPrincipals` on all existing AWS Glue Data Catalog resources.\n* Lake Formation enables \"Use only IAM access control\" for new Data Catalog resources.\n\nFor more details, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html).\n\n### Problem Using `IAMAllowedPrincipals`\n\nAWS does not support combining `IAMAllowedPrincipals` permissions and non-`IAMAllowedPrincipals` permissions. Doing so results in unexpected permissions and behaviors. For example, this configuration grants a user `SELECT` on a column in a table.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.CatalogDatabase(\"example\", {name: \"sadabate\"});\nconst exampleCatalogTable = new aws.glue.CatalogTable(\"example\", {\n name: \"abelt\",\n databaseName: test.name,\n storageDescriptor: {\n columns: [{\n name: \"event\",\n type: \"string\",\n }],\n },\n});\nconst examplePermissions = new aws.lakeformation.Permissions(\"example\", {\n permissions: [\"SELECT\"],\n principal: \"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n tableWithColumns: {\n databaseName: exampleCatalogTable.databaseName,\n name: exampleCatalogTable.name,\n columnNames: [\"event\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.CatalogDatabase(\"example\", name=\"sadabate\")\nexample_catalog_table = aws.glue.CatalogTable(\"example\",\n name=\"abelt\",\n database_name=test[\"name\"],\n storage_descriptor={\n \"columns\": [{\n \"name\": \"event\",\n \"type\": \"string\",\n }],\n })\nexample_permissions = aws.lakeformation.Permissions(\"example\",\n permissions=[\"SELECT\"],\n principal=\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n table_with_columns={\n \"database_name\": example_catalog_table.database_name,\n \"name\": example_catalog_table.name,\n \"column_names\": [\"event\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.CatalogDatabase(\"example\", new()\n {\n Name = \"sadabate\",\n });\n\n var exampleCatalogTable = new Aws.Glue.CatalogTable(\"example\", new()\n {\n Name = \"abelt\",\n DatabaseName = test.Name,\n StorageDescriptor = new Aws.Glue.Inputs.CatalogTableStorageDescriptorArgs\n {\n Columns = new[]\n {\n new Aws.Glue.Inputs.CatalogTableStorageDescriptorColumnArgs\n {\n Name = \"event\",\n Type = \"string\",\n },\n },\n },\n });\n\n var examplePermissions = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n PermissionDetails = new[]\n {\n \"SELECT\",\n },\n Principal = \"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n TableWithColumns = new Aws.LakeFormation.Inputs.PermissionsTableWithColumnsArgs\n {\n DatabaseName = exampleCatalogTable.DatabaseName,\n Name = exampleCatalogTable.Name,\n ColumnNames = new[]\n {\n \"event\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCatalogDatabase(ctx, \"example\", \u0026glue.CatalogDatabaseArgs{\n\t\t\tName: pulumi.String(\"sadabate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCatalogTable, err := glue.NewCatalogTable(ctx, \"example\", \u0026glue.CatalogTableArgs{\n\t\t\tName: pulumi.String(\"abelt\"),\n\t\t\tDatabaseName: pulumi.Any(test.Name),\n\t\t\tStorageDescriptor: \u0026glue.CatalogTableStorageDescriptorArgs{\n\t\t\t\tColumns: glue.CatalogTableStorageDescriptorColumnArray{\n\t\t\t\t\t\u0026glue.CatalogTableStorageDescriptorColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"event\"),\n\t\t\t\t\t\tType: pulumi.String(\"string\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t},\n\t\t\tPrincipal: pulumi.String(\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\"),\n\t\t\tTableWithColumns: \u0026lakeformation.PermissionsTableWithColumnsArgs{\n\t\t\t\tDatabaseName: exampleCatalogTable.DatabaseName,\n\t\t\t\tName: exampleCatalogTable.Name,\n\t\t\t\tColumnNames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"event\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.CatalogDatabase;\nimport com.pulumi.aws.glue.CatalogDatabaseArgs;\nimport com.pulumi.aws.glue.CatalogTable;\nimport com.pulumi.aws.glue.CatalogTableArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsTableWithColumnsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new CatalogDatabase(\"example\", CatalogDatabaseArgs.builder()\n .name(\"sadabate\")\n .build());\n\n var exampleCatalogTable = new CatalogTable(\"exampleCatalogTable\", CatalogTableArgs.builder()\n .name(\"abelt\")\n .databaseName(test.name())\n .storageDescriptor(CatalogTableStorageDescriptorArgs.builder()\n .columns(CatalogTableStorageDescriptorColumnArgs.builder()\n .name(\"event\")\n .type(\"string\")\n .build())\n .build())\n .build());\n\n var examplePermissions = new Permissions(\"examplePermissions\", PermissionsArgs.builder()\n .permissions(\"SELECT\")\n .principal(\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\")\n .tableWithColumns(PermissionsTableWithColumnsArgs.builder()\n .databaseName(exampleCatalogTable.databaseName())\n .name(exampleCatalogTable.name())\n .columnNames(\"event\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:CatalogDatabase\n properties:\n name: sadabate\n exampleCatalogTable:\n type: aws:glue:CatalogTable\n name: example\n properties:\n name: abelt\n databaseName: ${test.name}\n storageDescriptor:\n columns:\n - name: event\n type: string\n examplePermissions:\n type: aws:lakeformation:Permissions\n name: example\n properties:\n permissions:\n - SELECT\n principal: arn:aws:iam:us-east-1:123456789012:user/SanHolo\n tableWithColumns:\n databaseName: ${exampleCatalogTable.databaseName}\n name: ${exampleCatalogTable.name}\n columnNames:\n - event\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThe resulting permissions depend on whether the table had `IAMAllowedPrincipals` (IAP) permissions or not.\n\n| Result With IAP | Result Without IAP |\n| ---- | ---- |\n| `SELECT` column wildcard (i.e., all columns) | `SELECT` on `\"event\"` (as expected) |\n\n## Using Lake Formation Permissions\n\nLake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed.\n\nThere are two ways to avoid these errors. First, and the way we recommend, is to avoid using this resource with principals that have implicit permissions. A second, error-prone option, is to grant explicit permissions (and `permissions_with_grant_option`) to \"overwrite\" a principal's implicit permissions, which you can then revoke with this resource. For more information, see [Implicit Lake Formation Permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/implicit-permissions.html).\n\nIf the `principal` is also a data lake administrator, AWS grants implicit permissions that can cause errors using this resource. For example, AWS implicitly grants a `principal`/administrator `permissions` and `permissions_with_grant_option` of `ALL`, `ALTER`, `DELETE`, `DESCRIBE`, `DROP`, `INSERT`, and `SELECT` on a table. If you use this resource to explicitly grant the `principal`/administrator `permissions` but _not_ `permissions_with_grant_option` of `ALL`, `ALTER`, `DELETE`, `DESCRIBE`, `DROP`, `INSERT`, and `SELECT` on the table, this resource will read the implicit `permissions_with_grant_option` and attempt to revoke them when the resource is destroyed. Doing so will cause an `InvalidInputException: No permissions revoked` error because you cannot revoke implicit permissions _per se_. To workaround this problem, explicitly grant the `principal`/administrator `permissions` _and_ `permissions_with_grant_option`, which can then be revoked. Similarly, granting a `principal`/administrator permissions on a table with columns and providing `column_names`, will result in a `InvalidInputException: Permissions modification is invalid` error because you are narrowing the implicit permissions. Instead, set `wildcard` to `true` and remove the `column_names`.\n\n## Example Usage\n\n### Grant Permissions For A Lake Formation S3 Resource\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.Permissions(\"example\", {\n principal: workflowRole.arn,\n permissions: [\"DATA_LOCATION_ACCESS\"],\n dataLocation: {\n arn: exampleAwsLakeformationResource.arn,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.Permissions(\"example\",\n principal=workflow_role[\"arn\"],\n permissions=[\"DATA_LOCATION_ACCESS\"],\n data_location={\n \"arn\": example_aws_lakeformation_resource[\"arn\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n Principal = workflowRole.Arn,\n PermissionDetails = new[]\n {\n \"DATA_LOCATION_ACCESS\",\n },\n DataLocation = new Aws.LakeFormation.Inputs.PermissionsDataLocationArgs\n {\n Arn = exampleAwsLakeformationResource.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(workflowRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DATA_LOCATION_ACCESS\"),\n\t\t\t},\n\t\t\tDataLocation: \u0026lakeformation.PermissionsDataLocationArgs{\n\t\t\t\tArn: pulumi.Any(exampleAwsLakeformationResource.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsDataLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Permissions(\"example\", PermissionsArgs.builder()\n .principal(workflowRole.arn())\n .permissions(\"DATA_LOCATION_ACCESS\")\n .dataLocation(PermissionsDataLocationArgs.builder()\n .arn(exampleAwsLakeformationResource.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${workflowRole.arn}\n permissions:\n - DATA_LOCATION_ACCESS\n dataLocation:\n arn: ${exampleAwsLakeformationResource.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Grant Permissions For A Glue Catalog Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.Permissions(\"example\", {\n principal: workflowRole.arn,\n permissions: [\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n database: {\n name: exampleAwsGlueCatalogDatabase.name,\n catalogId: \"110376042874\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.Permissions(\"example\",\n principal=workflow_role[\"arn\"],\n permissions=[\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n database={\n \"name\": example_aws_glue_catalog_database[\"name\"],\n \"catalog_id\": \"110376042874\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n Principal = workflowRole.Arn,\n PermissionDetails = new[]\n {\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n },\n Database = new Aws.LakeFormation.Inputs.PermissionsDatabaseArgs\n {\n Name = exampleAwsGlueCatalogDatabase.Name,\n CatalogId = \"110376042874\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(workflowRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE_TABLE\"),\n\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t},\n\t\t\tDatabase: \u0026lakeformation.PermissionsDatabaseArgs{\n\t\t\t\tName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name),\n\t\t\t\tCatalogId: pulumi.String(\"110376042874\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Permissions(\"example\", PermissionsArgs.builder()\n .principal(workflowRole.arn())\n .permissions( \n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\")\n .database(PermissionsDatabaseArgs.builder()\n .name(exampleAwsGlueCatalogDatabase.name())\n .catalogId(\"110376042874\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${workflowRole.arn}\n permissions:\n - CREATE_TABLE\n - ALTER\n - DROP\n database:\n name: ${exampleAwsGlueCatalogDatabase.name}\n catalogId: '110376042874'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Grant Permissions Using Tag-Based Access Control\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lakeformation.Permissions(\"test\", {\n principal: salesRole.arn,\n permissions: [\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n lfTagPolicy: {\n resourceType: \"DATABASE\",\n expressions: [\n {\n key: \"Team\",\n values: [\"Sales\"],\n },\n {\n key: \"Environment\",\n values: [\n \"Dev\",\n \"Production\",\n ],\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lakeformation.Permissions(\"test\",\n principal=sales_role[\"arn\"],\n permissions=[\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n lf_tag_policy={\n \"resource_type\": \"DATABASE\",\n \"expressions\": [\n {\n \"key\": \"Team\",\n \"values\": [\"Sales\"],\n },\n {\n \"key\": \"Environment\",\n \"values\": [\n \"Dev\",\n \"Production\",\n ],\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.LakeFormation.Permissions(\"test\", new()\n {\n Principal = salesRole.Arn,\n PermissionDetails = new[]\n {\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n },\n LfTagPolicy = new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyArgs\n {\n ResourceType = \"DATABASE\",\n Expressions = new[]\n {\n new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyExpressionArgs\n {\n Key = \"Team\",\n Values = new[]\n {\n \"Sales\",\n },\n },\n new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyExpressionArgs\n {\n Key = \"Environment\",\n Values = new[]\n {\n \"Dev\",\n \"Production\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"test\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(salesRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE_TABLE\"),\n\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t},\n\t\t\tLfTagPolicy: \u0026lakeformation.PermissionsLfTagPolicyArgs{\n\t\t\t\tResourceType: pulumi.String(\"DATABASE\"),\n\t\t\t\tExpressions: lakeformation.PermissionsLfTagPolicyExpressionArray{\n\t\t\t\t\t\u0026lakeformation.PermissionsLfTagPolicyExpressionArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"Team\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Sales\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026lakeformation.PermissionsLfTagPolicyExpressionArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"Environment\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Dev\"),\n\t\t\t\t\t\t\tpulumi.String(\"Production\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsLfTagPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Permissions(\"test\", PermissionsArgs.builder()\n .principal(salesRole.arn())\n .permissions( \n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\")\n .lfTagPolicy(PermissionsLfTagPolicyArgs.builder()\n .resourceType(\"DATABASE\")\n .expressions( \n PermissionsLfTagPolicyExpressionArgs.builder()\n .key(\"Team\")\n .values(\"Sales\")\n .build(),\n PermissionsLfTagPolicyExpressionArgs.builder()\n .key(\"Environment\")\n .values( \n \"Dev\",\n \"Production\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${salesRole.arn}\n permissions:\n - CREATE_TABLE\n - ALTER\n - DROP\n lfTagPolicy:\n resourceType: DATABASE\n expressions:\n - key: Team\n values:\n - Sales\n - key: Environment\n values:\n - Dev\n - Production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. Permissions are granted to a principal, in a Data Catalog, relative to a Lake Formation resource, which includes the Data Catalog, databases, tables, LF-tags, and LF-tag policies. For more information, see [Security and Access Control to Metadata and Data in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html).\n\n!\u003e **WARNING:** Lake Formation permissions are not in effect by default within AWS. Using this resource will not secure your data and will result in errors if you do not change the security settings for existing resources and the default security settings for new resources. See Default Behavior and `IAMAllowedPrincipals` for additional details.\n\n\u003e **NOTE:** In general, the `principal` should _NOT_ be a Lake Formation administrator or the entity (e.g., IAM role) that is running the deployment. Administrators have implicit permissions. These should be managed by granting or not granting administrator rights using `aws.lakeformation.DataLakeSettings`, _not_ with this resource.\n\n## Default Behavior and `IAMAllowedPrincipals`\n\n**_Lake Formation permissions are not in effect by default within AWS._** `IAMAllowedPrincipals` (i.e., `IAM_ALLOWED_PRINCIPALS`) conflicts with individual Lake Formation permissions (i.e., non-`IAMAllowedPrincipals` permissions), will cause unexpected behavior, and may result in errors.\n\nWhen using Lake Formation, choose ONE of the following options as they are mutually exclusive:\n\n1. Use this resource (`aws.lakeformation.Permissions`), change the default security settings using `aws.lakeformation.DataLakeSettings`, and remove existing `IAMAllowedPrincipals` permissions\n2. Use `IAMAllowedPrincipals` without `aws.lakeformation.Permissions`\n\nThis example shows removing the `IAMAllowedPrincipals` default security settings and making the caller a Lake Formation admin. Since `create_database_default_permissions` and `create_table_default_permissions` are not set in the `aws.lakeformation.DataLakeSettings` resource, they are cleared.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getCallerIdentity({});\nconst currentGetSessionContext = current.then(current =\u003e aws.iam.getSessionContext({\n arn: current.arn,\n}));\nconst test = new aws.lakeformation.DataLakeSettings(\"test\", {admins: [currentGetSessionContext.then(currentGetSessionContext =\u003e currentGetSessionContext.issuerArn)]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\ncurrent_get_session_context = aws.iam.get_session_context(arn=current.arn)\ntest = aws.lakeformation.DataLakeSettings(\"test\", admins=[current_get_session_context.issuer_arn])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetSessionContext = Aws.Iam.GetSessionContext.Invoke(new()\n {\n Arn = current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.Arn),\n });\n\n var test = new Aws.LakeFormation.DataLakeSettings(\"test\", new()\n {\n Admins = new[]\n {\n currentGetSessionContext.Apply(getSessionContextResult =\u003e getSessionContextResult.IssuerArn),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetSessionContext, err := iam.GetSessionContext(ctx, \u0026iam.GetSessionContextArgs{\n\t\t\tArn: current.Arn,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewDataLakeSettings(ctx, \"test\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\tpulumi.String(currentGetSessionContext.IssuerArn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetSessionContextArgs;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetSessionContext = IamFunctions.getSessionContext(GetSessionContextArgs.builder()\n .arn(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.arn()))\n .build());\n\n var test = new DataLakeSettings(\"test\", DataLakeSettingsArgs.builder()\n .admins(currentGetSessionContext.applyValue(getSessionContextResult -\u003e getSessionContextResult.issuerArn()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${currentGetSessionContext.issuerArn}\nvariables:\n current:\n fn::invoke:\n function: aws:getCallerIdentity\n arguments: {}\n currentGetSessionContext:\n fn::invoke:\n function: aws:iam:getSessionContext\n arguments:\n arn: ${current.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo remove existing `IAMAllowedPrincipals` permissions, use the [AWS Lake Formation Console](https://console.aws.amazon.com/lakeformation/) or [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lakeformation/batch-revoke-permissions.html).\n\n`IAMAllowedPrincipals` is a hook to maintain backwards compatibility with AWS Glue. `IAMAllowedPrincipals` is a pseudo-entity group that acts like a Lake Formation principal. The group includes any IAM users and roles that are allowed access to your Data Catalog resources by your IAM policies.\n\nThis is Lake Formation's default behavior:\n\n* Lake Formation grants `Super` permission to `IAMAllowedPrincipals` on all existing AWS Glue Data Catalog resources.\n* Lake Formation enables \"Use only IAM access control\" for new Data Catalog resources.\n\nFor more details, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html).\n\n### Problem Using `IAMAllowedPrincipals`\n\nAWS does not support combining `IAMAllowedPrincipals` permissions and non-`IAMAllowedPrincipals` permissions. Doing so results in unexpected permissions and behaviors. For example, this configuration grants a user `SELECT` on a column in a table.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.CatalogDatabase(\"example\", {name: \"sadabate\"});\nconst exampleCatalogTable = new aws.glue.CatalogTable(\"example\", {\n name: \"abelt\",\n databaseName: test.name,\n storageDescriptor: {\n columns: [{\n name: \"event\",\n type: \"string\",\n }],\n },\n});\nconst examplePermissions = new aws.lakeformation.Permissions(\"example\", {\n permissions: [\"SELECT\"],\n principal: \"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n tableWithColumns: {\n databaseName: exampleCatalogTable.databaseName,\n name: exampleCatalogTable.name,\n columnNames: [\"event\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.CatalogDatabase(\"example\", name=\"sadabate\")\nexample_catalog_table = aws.glue.CatalogTable(\"example\",\n name=\"abelt\",\n database_name=test[\"name\"],\n storage_descriptor={\n \"columns\": [{\n \"name\": \"event\",\n \"type\": \"string\",\n }],\n })\nexample_permissions = aws.lakeformation.Permissions(\"example\",\n permissions=[\"SELECT\"],\n principal=\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n table_with_columns={\n \"database_name\": example_catalog_table.database_name,\n \"name\": example_catalog_table.name,\n \"column_names\": [\"event\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.CatalogDatabase(\"example\", new()\n {\n Name = \"sadabate\",\n });\n\n var exampleCatalogTable = new Aws.Glue.CatalogTable(\"example\", new()\n {\n Name = \"abelt\",\n DatabaseName = test.Name,\n StorageDescriptor = new Aws.Glue.Inputs.CatalogTableStorageDescriptorArgs\n {\n Columns = new[]\n {\n new Aws.Glue.Inputs.CatalogTableStorageDescriptorColumnArgs\n {\n Name = \"event\",\n Type = \"string\",\n },\n },\n },\n });\n\n var examplePermissions = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n PermissionDetails = new[]\n {\n \"SELECT\",\n },\n Principal = \"arn:aws:iam:us-east-1:123456789012:user/SanHolo\",\n TableWithColumns = new Aws.LakeFormation.Inputs.PermissionsTableWithColumnsArgs\n {\n DatabaseName = exampleCatalogTable.DatabaseName,\n Name = exampleCatalogTable.Name,\n ColumnNames = new[]\n {\n \"event\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCatalogDatabase(ctx, \"example\", \u0026glue.CatalogDatabaseArgs{\n\t\t\tName: pulumi.String(\"sadabate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCatalogTable, err := glue.NewCatalogTable(ctx, \"example\", \u0026glue.CatalogTableArgs{\n\t\t\tName: pulumi.String(\"abelt\"),\n\t\t\tDatabaseName: pulumi.Any(test.Name),\n\t\t\tStorageDescriptor: \u0026glue.CatalogTableStorageDescriptorArgs{\n\t\t\t\tColumns: glue.CatalogTableStorageDescriptorColumnArray{\n\t\t\t\t\t\u0026glue.CatalogTableStorageDescriptorColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"event\"),\n\t\t\t\t\t\tType: pulumi.String(\"string\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t},\n\t\t\tPrincipal: pulumi.String(\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\"),\n\t\t\tTableWithColumns: \u0026lakeformation.PermissionsTableWithColumnsArgs{\n\t\t\t\tDatabaseName: exampleCatalogTable.DatabaseName,\n\t\t\t\tName: exampleCatalogTable.Name,\n\t\t\t\tColumnNames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"event\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.CatalogDatabase;\nimport com.pulumi.aws.glue.CatalogDatabaseArgs;\nimport com.pulumi.aws.glue.CatalogTable;\nimport com.pulumi.aws.glue.CatalogTableArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsTableWithColumnsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new CatalogDatabase(\"example\", CatalogDatabaseArgs.builder()\n .name(\"sadabate\")\n .build());\n\n var exampleCatalogTable = new CatalogTable(\"exampleCatalogTable\", CatalogTableArgs.builder()\n .name(\"abelt\")\n .databaseName(test.name())\n .storageDescriptor(CatalogTableStorageDescriptorArgs.builder()\n .columns(CatalogTableStorageDescriptorColumnArgs.builder()\n .name(\"event\")\n .type(\"string\")\n .build())\n .build())\n .build());\n\n var examplePermissions = new Permissions(\"examplePermissions\", PermissionsArgs.builder()\n .permissions(\"SELECT\")\n .principal(\"arn:aws:iam:us-east-1:123456789012:user/SanHolo\")\n .tableWithColumns(PermissionsTableWithColumnsArgs.builder()\n .databaseName(exampleCatalogTable.databaseName())\n .name(exampleCatalogTable.name())\n .columnNames(\"event\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:CatalogDatabase\n properties:\n name: sadabate\n exampleCatalogTable:\n type: aws:glue:CatalogTable\n name: example\n properties:\n name: abelt\n databaseName: ${test.name}\n storageDescriptor:\n columns:\n - name: event\n type: string\n examplePermissions:\n type: aws:lakeformation:Permissions\n name: example\n properties:\n permissions:\n - SELECT\n principal: arn:aws:iam:us-east-1:123456789012:user/SanHolo\n tableWithColumns:\n databaseName: ${exampleCatalogTable.databaseName}\n name: ${exampleCatalogTable.name}\n columnNames:\n - event\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThe resulting permissions depend on whether the table had `IAMAllowedPrincipals` (IAP) permissions or not.\n\n| Result With IAP | Result Without IAP |\n| ---- | ---- |\n| `SELECT` column wildcard (i.e., all columns) | `SELECT` on `\"event\"` (as expected) |\n\n## `ALLIAMPrincipals` group\n\nAllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined.\n\nresource \"aws.lakeformation.Permissions\" \"example\" {\n permissions = [\"SELECT\"]\n principal = \"123456789012:IAMPrincipals\"\n\n table_with_columns {\n database_name = aws_glue_catalog_table.example.database_name\n name = aws_glue_catalog_table.example.name\n column_names = [\"event\"]\n }\n}\n\n## Using Lake Formation Permissions\n\nLake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed.\n\nThere are two ways to avoid these errors. First, and the way we recommend, is to avoid using this resource with principals that have implicit permissions. A second, error-prone option, is to grant explicit permissions (and `permissions_with_grant_option`) to \"overwrite\" a principal's implicit permissions, which you can then revoke with this resource. For more information, see [Implicit Lake Formation Permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/implicit-permissions.html).\n\nIf the `principal` is also a data lake administrator, AWS grants implicit permissions that can cause errors using this resource. For example, AWS implicitly grants a `principal`/administrator `permissions` and `permissions_with_grant_option` of `ALL`, `ALTER`, `DELETE`, `DESCRIBE`, `DROP`, `INSERT`, and `SELECT` on a table. If you use this resource to explicitly grant the `principal`/administrator `permissions` but _not_ `permissions_with_grant_option` of `ALL`, `ALTER`, `DELETE`, `DESCRIBE`, `DROP`, `INSERT`, and `SELECT` on the table, this resource will read the implicit `permissions_with_grant_option` and attempt to revoke them when the resource is destroyed. Doing so will cause an `InvalidInputException: No permissions revoked` error because you cannot revoke implicit permissions _per se_. To workaround this problem, explicitly grant the `principal`/administrator `permissions` _and_ `permissions_with_grant_option`, which can then be revoked. Similarly, granting a `principal`/administrator permissions on a table with columns and providing `column_names`, will result in a `InvalidInputException: Permissions modification is invalid` error because you are narrowing the implicit permissions. Instead, set `wildcard` to `true` and remove the `column_names`.\n\n## Example Usage\n\n### Grant Permissions For A Lake Formation S3 Resource\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.Permissions(\"example\", {\n principal: workflowRole.arn,\n permissions: [\"DATA_LOCATION_ACCESS\"],\n dataLocation: {\n arn: exampleAwsLakeformationResource.arn,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.Permissions(\"example\",\n principal=workflow_role[\"arn\"],\n permissions=[\"DATA_LOCATION_ACCESS\"],\n data_location={\n \"arn\": example_aws_lakeformation_resource[\"arn\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n Principal = workflowRole.Arn,\n PermissionDetails = new[]\n {\n \"DATA_LOCATION_ACCESS\",\n },\n DataLocation = new Aws.LakeFormation.Inputs.PermissionsDataLocationArgs\n {\n Arn = exampleAwsLakeformationResource.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(workflowRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DATA_LOCATION_ACCESS\"),\n\t\t\t},\n\t\t\tDataLocation: \u0026lakeformation.PermissionsDataLocationArgs{\n\t\t\t\tArn: pulumi.Any(exampleAwsLakeformationResource.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsDataLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Permissions(\"example\", PermissionsArgs.builder()\n .principal(workflowRole.arn())\n .permissions(\"DATA_LOCATION_ACCESS\")\n .dataLocation(PermissionsDataLocationArgs.builder()\n .arn(exampleAwsLakeformationResource.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${workflowRole.arn}\n permissions:\n - DATA_LOCATION_ACCESS\n dataLocation:\n arn: ${exampleAwsLakeformationResource.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Grant Permissions For A Glue Catalog Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.Permissions(\"example\", {\n principal: workflowRole.arn,\n permissions: [\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n database: {\n name: exampleAwsGlueCatalogDatabase.name,\n catalogId: \"110376042874\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.Permissions(\"example\",\n principal=workflow_role[\"arn\"],\n permissions=[\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n database={\n \"name\": example_aws_glue_catalog_database[\"name\"],\n \"catalog_id\": \"110376042874\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.Permissions(\"example\", new()\n {\n Principal = workflowRole.Arn,\n PermissionDetails = new[]\n {\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n },\n Database = new Aws.LakeFormation.Inputs.PermissionsDatabaseArgs\n {\n Name = exampleAwsGlueCatalogDatabase.Name,\n CatalogId = \"110376042874\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"example\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(workflowRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE_TABLE\"),\n\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t},\n\t\t\tDatabase: \u0026lakeformation.PermissionsDatabaseArgs{\n\t\t\t\tName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name),\n\t\t\t\tCatalogId: pulumi.String(\"110376042874\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Permissions(\"example\", PermissionsArgs.builder()\n .principal(workflowRole.arn())\n .permissions( \n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\")\n .database(PermissionsDatabaseArgs.builder()\n .name(exampleAwsGlueCatalogDatabase.name())\n .catalogId(\"110376042874\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${workflowRole.arn}\n permissions:\n - CREATE_TABLE\n - ALTER\n - DROP\n database:\n name: ${exampleAwsGlueCatalogDatabase.name}\n catalogId: '110376042874'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Grant Permissions Using Tag-Based Access Control\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lakeformation.Permissions(\"test\", {\n principal: salesRole.arn,\n permissions: [\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n lfTagPolicy: {\n resourceType: \"DATABASE\",\n expressions: [\n {\n key: \"Team\",\n values: [\"Sales\"],\n },\n {\n key: \"Environment\",\n values: [\n \"Dev\",\n \"Production\",\n ],\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lakeformation.Permissions(\"test\",\n principal=sales_role[\"arn\"],\n permissions=[\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n ],\n lf_tag_policy={\n \"resource_type\": \"DATABASE\",\n \"expressions\": [\n {\n \"key\": \"Team\",\n \"values\": [\"Sales\"],\n },\n {\n \"key\": \"Environment\",\n \"values\": [\n \"Dev\",\n \"Production\",\n ],\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.LakeFormation.Permissions(\"test\", new()\n {\n Principal = salesRole.Arn,\n PermissionDetails = new[]\n {\n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\",\n },\n LfTagPolicy = new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyArgs\n {\n ResourceType = \"DATABASE\",\n Expressions = new[]\n {\n new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyExpressionArgs\n {\n Key = \"Team\",\n Values = new[]\n {\n \"Sales\",\n },\n },\n new Aws.LakeFormation.Inputs.PermissionsLfTagPolicyExpressionArgs\n {\n Key = \"Environment\",\n Values = new[]\n {\n \"Dev\",\n \"Production\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewPermissions(ctx, \"test\", \u0026lakeformation.PermissionsArgs{\n\t\t\tPrincipal: pulumi.Any(salesRole.Arn),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE_TABLE\"),\n\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t},\n\t\t\tLfTagPolicy: \u0026lakeformation.PermissionsLfTagPolicyArgs{\n\t\t\t\tResourceType: pulumi.String(\"DATABASE\"),\n\t\t\t\tExpressions: lakeformation.PermissionsLfTagPolicyExpressionArray{\n\t\t\t\t\t\u0026lakeformation.PermissionsLfTagPolicyExpressionArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"Team\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Sales\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026lakeformation.PermissionsLfTagPolicyExpressionArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"Environment\"),\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Dev\"),\n\t\t\t\t\t\t\tpulumi.String(\"Production\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.Permissions;\nimport com.pulumi.aws.lakeformation.PermissionsArgs;\nimport com.pulumi.aws.lakeformation.inputs.PermissionsLfTagPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Permissions(\"test\", PermissionsArgs.builder()\n .principal(salesRole.arn())\n .permissions( \n \"CREATE_TABLE\",\n \"ALTER\",\n \"DROP\")\n .lfTagPolicy(PermissionsLfTagPolicyArgs.builder()\n .resourceType(\"DATABASE\")\n .expressions( \n PermissionsLfTagPolicyExpressionArgs.builder()\n .key(\"Team\")\n .values(\"Sales\")\n .build(),\n PermissionsLfTagPolicyExpressionArgs.builder()\n .key(\"Environment\")\n .values( \n \"Dev\",\n \"Production\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lakeformation:Permissions\n properties:\n principal: ${salesRole.arn}\n permissions:\n - CREATE_TABLE\n - ALTER\n - DROP\n lfTagPolicy:\n resourceType: DATABASE\n expressions:\n - key: Team\n values:\n - Sales\n - key: Environment\n values:\n - Dev\n - Production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "catalogId": { "type": "string", @@ -306364,6 +306810,10 @@ "type": "string", "description": "Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`.\n" }, + "multiRegionClusterName": { + "type": "string", + "description": "The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.\n" + }, "name": { "type": "string", "description": "Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.\n" @@ -306512,6 +306962,11 @@ "type": "string", "description": "Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`.\n" }, + "multiRegionClusterName": { + "type": "string", + "description": "The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.\n", + "willReplaceOnChanges": true + }, "name": { "type": "string", "description": "Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.\n", @@ -306653,6 +307108,11 @@ "type": "string", "description": "Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`.\n" }, + "multiRegionClusterName": { + "type": "string", + "description": "The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.\n", + "willReplaceOnChanges": true + }, "name": { "type": "string", "description": "Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.\n", @@ -306752,6 +307212,209 @@ "type": "object" } }, + "aws:memorydb/multiRegionCluster:MultiRegionCluster": { + "description": "Provides a MemoryDB Multi Region Cluster.\n\nMore information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.memorydb.MultiRegionCluster(\"example\", {\n multiRegionClusterNameSuffix: \"example\",\n nodeType: \"db.r7g.xlarge\",\n});\nconst exampleCluster = new aws.memorydb.Cluster(\"example\", {\n aclName: exampleAwsMemorydbAcl.id,\n autoMinorVersionUpgrade: false,\n name: \"example\",\n nodeType: \"db.t4g.small\",\n numShards: 2,\n securityGroupIds: [exampleAwsSecurityGroup.id],\n snapshotRetentionLimit: 7,\n subnetGroupName: exampleAwsMemorydbSubnetGroup.id,\n multiRegionClusterName: example.multiRegionClusterName,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.memorydb.MultiRegionCluster(\"example\",\n multi_region_cluster_name_suffix=\"example\",\n node_type=\"db.r7g.xlarge\")\nexample_cluster = aws.memorydb.Cluster(\"example\",\n acl_name=example_aws_memorydb_acl[\"id\"],\n auto_minor_version_upgrade=False,\n name=\"example\",\n node_type=\"db.t4g.small\",\n num_shards=2,\n security_group_ids=[example_aws_security_group[\"id\"]],\n snapshot_retention_limit=7,\n subnet_group_name=example_aws_memorydb_subnet_group[\"id\"],\n multi_region_cluster_name=example.multi_region_cluster_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.MemoryDb.MultiRegionCluster(\"example\", new()\n {\n MultiRegionClusterNameSuffix = \"example\",\n NodeType = \"db.r7g.xlarge\",\n });\n\n var exampleCluster = new Aws.MemoryDb.Cluster(\"example\", new()\n {\n AclName = exampleAwsMemorydbAcl.Id,\n AutoMinorVersionUpgrade = false,\n Name = \"example\",\n NodeType = \"db.t4g.small\",\n NumShards = 2,\n SecurityGroupIds = new[]\n {\n exampleAwsSecurityGroup.Id,\n },\n SnapshotRetentionLimit = 7,\n SubnetGroupName = exampleAwsMemorydbSubnetGroup.Id,\n MultiRegionClusterName = example.MultiRegionClusterName,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/memorydb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := memorydb.NewMultiRegionCluster(ctx, \"example\", \u0026memorydb.MultiRegionClusterArgs{\n\t\t\tMultiRegionClusterNameSuffix: pulumi.String(\"example\"),\n\t\t\tNodeType: pulumi.String(\"db.r7g.xlarge\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = memorydb.NewCluster(ctx, \"example\", \u0026memorydb.ClusterArgs{\n\t\t\tAclName: pulumi.Any(exampleAwsMemorydbAcl.Id),\n\t\t\tAutoMinorVersionUpgrade: pulumi.Bool(false),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tNodeType: pulumi.String(\"db.t4g.small\"),\n\t\t\tNumShards: pulumi.Int(2),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleAwsSecurityGroup.Id,\n\t\t\t},\n\t\t\tSnapshotRetentionLimit: pulumi.Int(7),\n\t\t\tSubnetGroupName: pulumi.Any(exampleAwsMemorydbSubnetGroup.Id),\n\t\t\tMultiRegionClusterName: example.MultiRegionClusterName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.memorydb.MultiRegionCluster;\nimport com.pulumi.aws.memorydb.MultiRegionClusterArgs;\nimport com.pulumi.aws.memorydb.Cluster;\nimport com.pulumi.aws.memorydb.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new MultiRegionCluster(\"example\", MultiRegionClusterArgs.builder()\n .multiRegionClusterNameSuffix(\"example\")\n .nodeType(\"db.r7g.xlarge\")\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .aclName(exampleAwsMemorydbAcl.id())\n .autoMinorVersionUpgrade(false)\n .name(\"example\")\n .nodeType(\"db.t4g.small\")\n .numShards(2)\n .securityGroupIds(exampleAwsSecurityGroup.id())\n .snapshotRetentionLimit(7)\n .subnetGroupName(exampleAwsMemorydbSubnetGroup.id())\n .multiRegionClusterName(example.multiRegionClusterName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:memorydb:MultiRegionCluster\n properties:\n multiRegionClusterNameSuffix: example\n nodeType: db.r7g.xlarge\n exampleCluster:\n type: aws:memorydb:Cluster\n name: example\n properties:\n aclName: ${exampleAwsMemorydbAcl.id}\n autoMinorVersionUpgrade: false\n name: example\n nodeType: db.t4g.small\n numShards: 2\n securityGroupIds:\n - ${exampleAwsSecurityGroup.id}\n snapshotRetentionLimit: 7\n subnetGroupName: ${exampleAwsMemorydbSubnetGroup.id}\n multiRegionClusterName: ${example.multiRegionClusterName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example:\n\n```sh\n$ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the multi-region cluster.\n" + }, + "description": { + "type": "string", + "description": "description for the multi-region cluster.\n" + }, + "engine": { + "type": "string", + "description": "The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The version of the engine to be used for the multi-region cluster. Downgrades are not supported.\n" + }, + "multiRegionClusterName": { + "type": "string", + "description": "The name of the multi-region cluster.\n" + }, + "multiRegionClusterNameSuffix": { + "type": "string", + "description": "A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created.\n" + }, + "multiRegionParameterGroupName": { + "type": "string", + "description": "The name of the multi-region parameter group to be associated with the cluster.\n" + }, + "nodeType": { + "type": "string", + "description": "The node type to be used for the multi-region cluster.\n\nThe following arguments are optional:\n" + }, + "numShards": { + "type": "integer", + "description": "The number of shards for the multi-region cluster.\n" + }, + "status": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:memorydb/MultiRegionClusterTimeouts:MultiRegionClusterTimeouts" + }, + "tlsEnabled": { + "type": "boolean", + "description": "A flag to enable in-transit encryption on the cluster.\n" + }, + "updateStrategy": { + "type": "string" + } + }, + "required": [ + "arn", + "engine", + "engineVersion", + "multiRegionClusterName", + "multiRegionClusterNameSuffix", + "multiRegionParameterGroupName", + "nodeType", + "numShards", + "status", + "tagsAll", + "tlsEnabled" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "description for the multi-region cluster.\n" + }, + "engine": { + "type": "string", + "description": "The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The version of the engine to be used for the multi-region cluster. Downgrades are not supported.\n" + }, + "multiRegionClusterNameSuffix": { + "type": "string", + "description": "A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created.\n" + }, + "multiRegionParameterGroupName": { + "type": "string", + "description": "The name of the multi-region parameter group to be associated with the cluster.\n" + }, + "nodeType": { + "type": "string", + "description": "The node type to be used for the multi-region cluster.\n\nThe following arguments are optional:\n" + }, + "numShards": { + "type": "integer", + "description": "The number of shards for the multi-region cluster.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "timeouts": { + "$ref": "#/types/aws:memorydb/MultiRegionClusterTimeouts:MultiRegionClusterTimeouts" + }, + "tlsEnabled": { + "type": "boolean", + "description": "A flag to enable in-transit encryption on the cluster.\n" + }, + "updateStrategy": { + "type": "string" + } + }, + "requiredInputs": [ + "multiRegionClusterNameSuffix", + "nodeType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering MultiRegionCluster resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the multi-region cluster.\n" + }, + "description": { + "type": "string", + "description": "description for the multi-region cluster.\n" + }, + "engine": { + "type": "string", + "description": "The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The version of the engine to be used for the multi-region cluster. Downgrades are not supported.\n" + }, + "multiRegionClusterName": { + "type": "string", + "description": "The name of the multi-region cluster.\n" + }, + "multiRegionClusterNameSuffix": { + "type": "string", + "description": "A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created.\n" + }, + "multiRegionParameterGroupName": { + "type": "string", + "description": "The name of the multi-region parameter group to be associated with the cluster.\n" + }, + "nodeType": { + "type": "string", + "description": "The node type to be used for the multi-region cluster.\n\nThe following arguments are optional:\n" + }, + "numShards": { + "type": "integer", + "description": "The number of shards for the multi-region cluster.\n" + }, + "status": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:memorydb/MultiRegionClusterTimeouts:MultiRegionClusterTimeouts" + }, + "tlsEnabled": { + "type": "boolean", + "description": "A flag to enable in-transit encryption on the cluster.\n" + }, + "updateStrategy": { + "type": "string" + } + }, + "type": "object" + } + }, "aws:memorydb/parameterGroup:ParameterGroup": { "description": "Provides a MemoryDB Parameter Group.\n\nMore information about parameter groups can be found in the [MemoryDB User Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/parametergroups.html).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.memorydb.ParameterGroup(\"example\", {\n name: \"my-parameter-group\",\n family: \"memorydb_redis6\",\n parameters: [{\n name: \"activedefrag\",\n value: \"yes\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.memorydb.ParameterGroup(\"example\",\n name=\"my-parameter-group\",\n family=\"memorydb_redis6\",\n parameters=[{\n \"name\": \"activedefrag\",\n \"value\": \"yes\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.MemoryDb.ParameterGroup(\"example\", new()\n {\n Name = \"my-parameter-group\",\n Family = \"memorydb_redis6\",\n Parameters = new[]\n {\n new Aws.MemoryDb.Inputs.ParameterGroupParameterArgs\n {\n Name = \"activedefrag\",\n Value = \"yes\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/memorydb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := memorydb.NewParameterGroup(ctx, \"example\", \u0026memorydb.ParameterGroupArgs{\n\t\t\tName: pulumi.String(\"my-parameter-group\"),\n\t\t\tFamily: pulumi.String(\"memorydb_redis6\"),\n\t\t\tParameters: memorydb.ParameterGroupParameterArray{\n\t\t\t\t\u0026memorydb.ParameterGroupParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"activedefrag\"),\n\t\t\t\t\tValue: pulumi.String(\"yes\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.memorydb.ParameterGroup;\nimport com.pulumi.aws.memorydb.ParameterGroupArgs;\nimport com.pulumi.aws.memorydb.inputs.ParameterGroupParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ParameterGroup(\"example\", ParameterGroupArgs.builder()\n .name(\"my-parameter-group\")\n .family(\"memorydb_redis6\")\n .parameters(ParameterGroupParameterArgs.builder()\n .name(\"activedefrag\")\n .value(\"yes\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:memorydb:ParameterGroup\n properties:\n name: my-parameter-group\n family: memorydb_redis6\n parameters:\n - name: activedefrag\n value: yes\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import a parameter group using the `name`. For example:\n\n```sh\n$ pulumi import aws:memorydb/parameterGroup:ParameterGroup example my-parameter-group\n```\n", "properties": { @@ -312704,7 +313367,14 @@ }, "edgeLocation": { "type": "string", - "description": "The Region where the edge is located.\n" + "description": "The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`.\n" + }, + "edgeLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location`\n" }, "ownerAccountId": { "type": "string", @@ -312730,6 +313400,7 @@ "coreNetworkArn", "coreNetworkId", "edgeLocation", + "edgeLocations", "ownerAccountId", "resourceArn", "segmentName", @@ -312778,7 +313449,14 @@ }, "edgeLocation": { "type": "string", - "description": "The Region where the edge is located.\n" + "description": "The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`.\n" + }, + "edgeLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location`\n" }, "ownerAccountId": { "type": "string", @@ -313870,6 +314548,182 @@ "type": "object" } }, + "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment": { + "description": "Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.networkmanager.DxGatewayAttachment(\"test\", {\n coreNetworkId: testAwsNetworkmanagerCoreNetworkPolicyAttachment.coreNetworkId,\n directConnectGatewayArn: `arn:aws:directconnect::${current.accountId}:dx-gateway/${testAwsDxGateway.id}`,\n edgeLocations: [currentAwsRegion.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.networkmanager.DxGatewayAttachment(\"test\",\n core_network_id=test_aws_networkmanager_core_network_policy_attachment[\"coreNetworkId\"],\n direct_connect_gateway_arn=f\"arn:aws:directconnect::{current['accountId']}:dx-gateway/{test_aws_dx_gateway['id']}\",\n edge_locations=[current_aws_region[\"name\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.NetworkManager.DxGatewayAttachment(\"test\", new()\n {\n CoreNetworkId = testAwsNetworkmanagerCoreNetworkPolicyAttachment.CoreNetworkId,\n DirectConnectGatewayArn = $\"arn:aws:directconnect::{current.AccountId}:dx-gateway/{testAwsDxGateway.Id}\",\n EdgeLocations = new[]\n {\n currentAwsRegion.Name,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkmanager.NewDxGatewayAttachment(ctx, \"test\", \u0026networkmanager.DxGatewayAttachmentArgs{\n\t\t\tCoreNetworkId: pulumi.Any(testAwsNetworkmanagerCoreNetworkPolicyAttachment.CoreNetworkId),\n\t\t\tDirectConnectGatewayArn: pulumi.Sprintf(\"arn:aws:directconnect::%v:dx-gateway/%v\", current.AccountId, testAwsDxGateway.Id),\n\t\t\tEdgeLocations: pulumi.StringArray{\n\t\t\t\tcurrentAwsRegion.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.networkmanager.DxGatewayAttachment;\nimport com.pulumi.aws.networkmanager.DxGatewayAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new DxGatewayAttachment(\"test\", DxGatewayAttachmentArgs.builder()\n .coreNetworkId(testAwsNetworkmanagerCoreNetworkPolicyAttachment.coreNetworkId())\n .directConnectGatewayArn(String.format(\"arn:aws:directconnect::%s:dx-gateway/%s\", current.accountId(),testAwsDxGateway.id()))\n .edgeLocations(currentAwsRegion.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:networkmanager:DxGatewayAttachment\n properties:\n coreNetworkId: ${testAwsNetworkmanagerCoreNetworkPolicyAttachment.coreNetworkId}\n directConnectGatewayArn: arn:aws:directconnect::${current.accountId}:dx-gateway/${testAwsDxGateway.id}\n edgeLocations:\n - ${currentAwsRegion.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example:\n\n```sh\n$ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g\n```\n", + "properties": { + "arn": { + "type": "string" + }, + "attachmentPolicyRuleNumber": { + "type": "integer", + "description": "Policy rule number associated with the attachment.\n" + }, + "attachmentType": { + "type": "string", + "description": "Type of attachment.\n" + }, + "coreNetworkArn": { + "type": "string", + "description": "ARN of the core network for the attachment.\n" + }, + "coreNetworkId": { + "type": "string", + "description": "ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached.\n" + }, + "directConnectGatewayArn": { + "type": "string", + "description": "ARN of the Direct Connect gateway attachment.\n" + }, + "edgeLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more core network edge locations to associate with the Direct Connect gateway attachment.\n\nThe following arguments are optional:\n" + }, + "ownerAccountId": { + "type": "string", + "description": "ID of the attachment account owner.\n" + }, + "segmentName": { + "type": "string", + "description": "Name of the segment attachment.\n" + }, + "state": { + "type": "string", + "description": "State of the attachment.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:networkmanager/DxGatewayAttachmentTimeouts:DxGatewayAttachmentTimeouts" + } + }, + "required": [ + "arn", + "attachmentPolicyRuleNumber", + "attachmentType", + "coreNetworkArn", + "coreNetworkId", + "directConnectGatewayArn", + "edgeLocations", + "ownerAccountId", + "segmentName", + "state", + "tagsAll" + ], + "inputProperties": { + "coreNetworkId": { + "type": "string", + "description": "ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached.\n" + }, + "directConnectGatewayArn": { + "type": "string", + "description": "ARN of the Direct Connect gateway attachment.\n" + }, + "edgeLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more core network edge locations to associate with the Direct Connect gateway attachment.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "timeouts": { + "$ref": "#/types/aws:networkmanager/DxGatewayAttachmentTimeouts:DxGatewayAttachmentTimeouts" + } + }, + "requiredInputs": [ + "coreNetworkId", + "directConnectGatewayArn", + "edgeLocations" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DxGatewayAttachment resources.\n", + "properties": { + "arn": { + "type": "string" + }, + "attachmentPolicyRuleNumber": { + "type": "integer", + "description": "Policy rule number associated with the attachment.\n" + }, + "attachmentType": { + "type": "string", + "description": "Type of attachment.\n" + }, + "coreNetworkArn": { + "type": "string", + "description": "ARN of the core network for the attachment.\n" + }, + "coreNetworkId": { + "type": "string", + "description": "ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached.\n" + }, + "directConnectGatewayArn": { + "type": "string", + "description": "ARN of the Direct Connect gateway attachment.\n" + }, + "edgeLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more core network edge locations to associate with the Direct Connect gateway attachment.\n\nThe following arguments are optional:\n" + }, + "ownerAccountId": { + "type": "string", + "description": "ID of the attachment account owner.\n" + }, + "segmentName": { + "type": "string", + "description": "Name of the segment attachment.\n" + }, + "state": { + "type": "string", + "description": "State of the attachment.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:networkmanager/DxGatewayAttachmentTimeouts:DxGatewayAttachmentTimeouts" + } + }, + "type": "object" + } + }, "aws:networkmanager/globalNetwork:GlobalNetwork": { "description": "Provides a global network resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkmanager.GlobalNetwork(\"example\", {description: \"example\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.GlobalNetwork(\"example\", description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.GlobalNetwork(\"example\", new()\n {\n Description = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkmanager.NewGlobalNetwork(ctx, \"example\", \u0026networkmanager.GlobalNetworkArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.networkmanager.GlobalNetwork;\nimport com.pulumi.aws.networkmanager.GlobalNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new GlobalNetwork(\"example\", GlobalNetworkArgs.builder()\n .description(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:GlobalNetwork\n properties:\n description: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_networkmanager_global_network` using the global network ID. For example:\n\n```sh\n$ pulumi import aws:networkmanager/globalNetwork:GlobalNetwork example global-network-0d47f6t230mz46dy4\n```\n", "properties": { @@ -330230,15 +331084,15 @@ }, "performanceInsightsEnabled": { "type": "boolean", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster\n" + "description": "Enables Performance Insights for the RDS Cluster\n" }, "performanceInsightsKmsKeyId": { "type": "string", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" + "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" }, "performanceInsightsRetentionPeriod": { "type": "integer", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" + "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" }, "port": { "type": "integer", @@ -330561,15 +331415,15 @@ }, "performanceInsightsEnabled": { "type": "boolean", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster\n" + "description": "Enables Performance Insights for the RDS Cluster\n" }, "performanceInsightsKmsKeyId": { "type": "string", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" + "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" }, "performanceInsightsRetentionPeriod": { "type": "integer", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" + "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" }, "port": { "type": "integer", @@ -330881,15 +331735,15 @@ }, "performanceInsightsEnabled": { "type": "boolean", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster\n" + "description": "Enables Performance Insights for the RDS Cluster\n" }, "performanceInsightsKmsKeyId": { "type": "string", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" + "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`).\n" }, "performanceInsightsRetentionPeriod": { "type": "integer", - "description": "Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" + "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods.\n" }, "port": { "type": "integer", @@ -332146,6 +333000,246 @@ "type": "object" } }, + "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy": { + "description": "Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `aws.rds.SnapshotCopy` resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.Cluster(\"example\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n databaseName: \"test\",\n engine: aws.rds.EngineType.AuroraMysql,\n masterUsername: \"tfacctest\",\n masterPassword: \"avoid-plaintext-passwords\",\n skipFinalSnapshot: true,\n});\nconst exampleClusterSnapshot = new aws.rds.ClusterSnapshot(\"example\", {\n dbClusterIdentifier: example.clusterIdentifier,\n dbClusterSnapshotIdentifier: \"example\",\n});\nconst exampleClusterSnapshotCopy = new aws.rds.ClusterSnapshotCopy(\"example\", {\n sourceDbClusterSnapshotIdentifier: exampleClusterSnapshot.dbClusterSnapshotArn,\n targetDbClusterSnapshotIdentifier: \"example-copy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.Cluster(\"example\",\n cluster_identifier=\"aurora-cluster-demo\",\n database_name=\"test\",\n engine=aws.rds.EngineType.AURORA_MYSQL,\n master_username=\"tfacctest\",\n master_password=\"avoid-plaintext-passwords\",\n skip_final_snapshot=True)\nexample_cluster_snapshot = aws.rds.ClusterSnapshot(\"example\",\n db_cluster_identifier=example.cluster_identifier,\n db_cluster_snapshot_identifier=\"example\")\nexample_cluster_snapshot_copy = aws.rds.ClusterSnapshotCopy(\"example\",\n source_db_cluster_snapshot_identifier=example_cluster_snapshot.db_cluster_snapshot_arn,\n target_db_cluster_snapshot_identifier=\"example-copy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n DatabaseName = \"test\",\n Engine = Aws.Rds.EngineType.AuroraMysql,\n MasterUsername = \"tfacctest\",\n MasterPassword = \"avoid-plaintext-passwords\",\n SkipFinalSnapshot = true,\n });\n\n var exampleClusterSnapshot = new Aws.Rds.ClusterSnapshot(\"example\", new()\n {\n DbClusterIdentifier = example.ClusterIdentifier,\n DbClusterSnapshotIdentifier = \"example\",\n });\n\n var exampleClusterSnapshotCopy = new Aws.Rds.ClusterSnapshotCopy(\"example\", new()\n {\n SourceDbClusterSnapshotIdentifier = exampleClusterSnapshot.DbClusterSnapshotArn,\n TargetDbClusterSnapshotIdentifier = \"example-copy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.NewCluster(ctx, \"example\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tEngine: pulumi.String(rds.EngineTypeAuroraMysql),\n\t\t\tMasterUsername: pulumi.String(\"tfacctest\"),\n\t\t\tMasterPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\tSkipFinalSnapshot: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleClusterSnapshot, err := rds.NewClusterSnapshot(ctx, \"example\", \u0026rds.ClusterSnapshotArgs{\n\t\t\tDbClusterIdentifier: example.ClusterIdentifier,\n\t\t\tDbClusterSnapshotIdentifier: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterSnapshotCopy(ctx, \"example\", \u0026rds.ClusterSnapshotCopyArgs{\n\t\t\tSourceDbClusterSnapshotIdentifier: exampleClusterSnapshot.DbClusterSnapshotArn,\n\t\t\tTargetDbClusterSnapshotIdentifier: pulumi.String(\"example-copy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.ClusterSnapshot;\nimport com.pulumi.aws.rds.ClusterSnapshotArgs;\nimport com.pulumi.aws.rds.ClusterSnapshotCopy;\nimport com.pulumi.aws.rds.ClusterSnapshotCopyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Cluster(\"example\", ClusterArgs.builder()\n .clusterIdentifier(\"aurora-cluster-demo\")\n .databaseName(\"test\")\n .engine(\"aurora-mysql\")\n .masterUsername(\"tfacctest\")\n .masterPassword(\"avoid-plaintext-passwords\")\n .skipFinalSnapshot(true)\n .build());\n\n var exampleClusterSnapshot = new ClusterSnapshot(\"exampleClusterSnapshot\", ClusterSnapshotArgs.builder()\n .dbClusterIdentifier(example.clusterIdentifier())\n .dbClusterSnapshotIdentifier(\"example\")\n .build());\n\n var exampleClusterSnapshotCopy = new ClusterSnapshotCopy(\"exampleClusterSnapshotCopy\", ClusterSnapshotCopyArgs.builder()\n .sourceDbClusterSnapshotIdentifier(exampleClusterSnapshot.dbClusterSnapshotArn())\n .targetDbClusterSnapshotIdentifier(\"example-copy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n databaseName: test\n engine: aurora-mysql\n masterUsername: tfacctest\n masterPassword: avoid-plaintext-passwords\n skipFinalSnapshot: true\n exampleClusterSnapshot:\n type: aws:rds:ClusterSnapshot\n name: example\n properties:\n dbClusterIdentifier: ${example.clusterIdentifier}\n dbClusterSnapshotIdentifier: example\n exampleClusterSnapshotCopy:\n type: aws:rds:ClusterSnapshotCopy\n name: example\n properties:\n sourceDbClusterSnapshotIdentifier: ${exampleClusterSnapshot.dbClusterSnapshotArn}\n targetDbClusterSnapshotIdentifier: example-copy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example:\n\n```sh\n$ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot\n```\n", + "properties": { + "allocatedStorage": { + "type": "integer", + "description": "Specifies the allocated storage size in gigabytes (GB).\n" + }, + "copyTags": { + "type": "boolean", + "description": "Whether to copy existing tags. Defaults to `false`.\n" + }, + "dbClusterSnapshotArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the DB cluster snapshot.\n" + }, + "destinationRegion": { + "type": "string", + "description": "The Destination region to place snapshot copy.\n" + }, + "engine": { + "type": "string", + "description": "Specifies the name of the database engine.\n" + }, + "engineVersion": { + "type": "string", + "description": "Specifies the version of the database engine.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS key ID.\n" + }, + "licenseModel": { + "type": "string", + "description": "License model information for the restored DB instance.\n" + }, + "presignedUrl": { + "type": "string", + "description": "URL that contains a Signature Version 4 signed request.\n" + }, + "sharedAccounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.\n" + }, + "snapshotType": { + "type": "string" + }, + "sourceDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier of the source snapshot.\n" + }, + "storageEncrypted": { + "type": "boolean", + "description": "Specifies whether the DB cluster snapshot is encrypted.\n" + }, + "storageType": { + "type": "string", + "description": "Specifies the storage type associated with DB cluster snapshot.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "targetDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier for the snapshot.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:rds/ClusterSnapshotCopyTimeouts:ClusterSnapshotCopyTimeouts" + }, + "vpcId": { + "type": "string", + "description": "Provides the VPC ID associated with the DB cluster snapshot.\n" + } + }, + "required": [ + "allocatedStorage", + "dbClusterSnapshotArn", + "engine", + "engineVersion", + "licenseModel", + "snapshotType", + "sourceDbClusterSnapshotIdentifier", + "storageEncrypted", + "storageType", + "tagsAll", + "targetDbClusterSnapshotIdentifier", + "vpcId" + ], + "inputProperties": { + "copyTags": { + "type": "boolean", + "description": "Whether to copy existing tags. Defaults to `false`.\n" + }, + "destinationRegion": { + "type": "string", + "description": "The Destination region to place snapshot copy.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS key ID.\n" + }, + "presignedUrl": { + "type": "string", + "description": "URL that contains a Signature Version 4 signed request.\n" + }, + "sharedAccounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.\n" + }, + "sourceDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier of the source snapshot.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "targetDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier for the snapshot.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:rds/ClusterSnapshotCopyTimeouts:ClusterSnapshotCopyTimeouts" + } + }, + "requiredInputs": [ + "sourceDbClusterSnapshotIdentifier", + "targetDbClusterSnapshotIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ClusterSnapshotCopy resources.\n", + "properties": { + "allocatedStorage": { + "type": "integer", + "description": "Specifies the allocated storage size in gigabytes (GB).\n" + }, + "copyTags": { + "type": "boolean", + "description": "Whether to copy existing tags. Defaults to `false`.\n" + }, + "dbClusterSnapshotArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the DB cluster snapshot.\n" + }, + "destinationRegion": { + "type": "string", + "description": "The Destination region to place snapshot copy.\n" + }, + "engine": { + "type": "string", + "description": "Specifies the name of the database engine.\n" + }, + "engineVersion": { + "type": "string", + "description": "Specifies the version of the database engine.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS key ID.\n" + }, + "licenseModel": { + "type": "string", + "description": "License model information for the restored DB instance.\n" + }, + "presignedUrl": { + "type": "string", + "description": "URL that contains a Signature Version 4 signed request.\n" + }, + "sharedAccounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.\n" + }, + "snapshotType": { + "type": "string" + }, + "sourceDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier of the source snapshot.\n" + }, + "storageEncrypted": { + "type": "boolean", + "description": "Specifies whether the DB cluster snapshot is encrypted.\n" + }, + "storageType": { + "type": "string", + "description": "Specifies the storage type associated with DB cluster snapshot.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "targetDbClusterSnapshotIdentifier": { + "type": "string", + "description": "Identifier for the snapshot.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:rds/ClusterSnapshotCopyTimeouts:ClusterSnapshotCopyTimeouts" + }, + "vpcId": { + "type": "string", + "description": "Provides the VPC ID associated with the DB cluster snapshot.\n" + } + }, + "type": "object" + } + }, "aws:rds/customDbEngineVersion:CustomDbEngineVersion": { "description": "Provides an custom engine version (CEV) resource for Amazon RDS Custom. For additional information, see [Working with CEVs for RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html) and [Working with CEVs for RDS Custom for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.html) in the the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html).\n\n## Example Usage\n\n### RDS Custom for Oracle Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.kms.Key(\"example\", {description: \"KMS symmetric key for RDS Custom for Oracle\"});\nconst exampleCustomDbEngineVersion = new aws.rds.CustomDbEngineVersion(\"example\", {\n databaseInstallationFilesS3BucketName: \"DOC-EXAMPLE-BUCKET\",\n databaseInstallationFilesS3Prefix: \"1915_GI/\",\n engine: \"custom-oracle-ee-cdb\",\n engineVersion: \"19.cdb_cev1\",\n kmsKeyId: example.arn,\n manifest: ` {\n\\x09\"databaseInstallationFileNames\":[\"V982063-01.zip\"]\n }\n`,\n tags: {\n Name: \"example\",\n Key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.kms.Key(\"example\", description=\"KMS symmetric key for RDS Custom for Oracle\")\nexample_custom_db_engine_version = aws.rds.CustomDbEngineVersion(\"example\",\n database_installation_files_s3_bucket_name=\"DOC-EXAMPLE-BUCKET\",\n database_installation_files_s3_prefix=\"1915_GI/\",\n engine=\"custom-oracle-ee-cdb\",\n engine_version=\"19.cdb_cev1\",\n kms_key_id=example.arn,\n manifest=\"\"\" {\n\\x09\"databaseInstallationFileNames\":[\"V982063-01.zip\"]\n }\n\"\"\",\n tags={\n \"Name\": \"example\",\n \"Key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"KMS symmetric key for RDS Custom for Oracle\",\n });\n\n var exampleCustomDbEngineVersion = new Aws.Rds.CustomDbEngineVersion(\"example\", new()\n {\n DatabaseInstallationFilesS3BucketName = \"DOC-EXAMPLE-BUCKET\",\n DatabaseInstallationFilesS3Prefix = \"1915_GI/\",\n Engine = \"custom-oracle-ee-cdb\",\n EngineVersion = \"19.cdb_cev1\",\n KmsKeyId = example.Arn,\n Manifest = @\" {\n\t\"\"databaseInstallationFileNames\"\":[\"\"V982063-01.zip\"\"]\n }\n\",\n Tags = \n {\n { \"Name\", \"example\" },\n { \"Key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"KMS symmetric key for RDS Custom for Oracle\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewCustomDbEngineVersion(ctx, \"example\", \u0026rds.CustomDbEngineVersionArgs{\n\t\t\tDatabaseInstallationFilesS3BucketName: pulumi.String(\"DOC-EXAMPLE-BUCKET\"),\n\t\t\tDatabaseInstallationFilesS3Prefix: pulumi.String(\"1915_GI/\"),\n\t\t\tEngine: pulumi.String(\"custom-oracle-ee-cdb\"),\n\t\t\tEngineVersion: pulumi.String(\"19.cdb_cev1\"),\n\t\t\tKmsKeyId: example.Arn,\n\t\t\tManifest: pulumi.String(\" {\\n\t\\\"databaseInstallationFileNames\\\":[\\\"V982063-01.zip\\\"]\\n }\\n\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"example\"),\n\t\t\t\t\"Key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.rds.CustomDbEngineVersion;\nimport com.pulumi.aws.rds.CustomDbEngineVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"KMS symmetric key for RDS Custom for Oracle\")\n .build());\n\n var exampleCustomDbEngineVersion = new CustomDbEngineVersion(\"exampleCustomDbEngineVersion\", CustomDbEngineVersionArgs.builder()\n .databaseInstallationFilesS3BucketName(\"DOC-EXAMPLE-BUCKET\")\n .databaseInstallationFilesS3Prefix(\"1915_GI/\")\n .engine(\"custom-oracle-ee-cdb\")\n .engineVersion(\"19.cdb_cev1\")\n .kmsKeyId(example.arn())\n .manifest(\"\"\"\n {\n\t\"databaseInstallationFileNames\":[\"V982063-01.zip\"]\n }\n \"\"\")\n .tags(Map.ofEntries(\n Map.entry(\"Name\", \"example\"),\n Map.entry(\"Key\", \"value\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: KMS symmetric key for RDS Custom for Oracle\n exampleCustomDbEngineVersion:\n type: aws:rds:CustomDbEngineVersion\n name: example\n properties:\n databaseInstallationFilesS3BucketName: DOC-EXAMPLE-BUCKET\n databaseInstallationFilesS3Prefix: 1915_GI/\n engine: custom-oracle-ee-cdb\n engineVersion: 19.cdb_cev1\n kmsKeyId: ${example.arn}\n manifest: |2\n {\n \t\"databaseInstallationFileNames\":[\"V982063-01.zip\"]\n }\n tags:\n Name: example\n Key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Custom for Oracle External Manifest Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new aws.kms.Key(\"example\", {description: \"KMS symmetric key for RDS Custom for Oracle\"});\nconst exampleCustomDbEngineVersion = new aws.rds.CustomDbEngineVersion(\"example\", {\n databaseInstallationFilesS3BucketName: \"DOC-EXAMPLE-BUCKET\",\n databaseInstallationFilesS3Prefix: \"1915_GI/\",\n engine: \"custom-oracle-ee-cdb\",\n engineVersion: \"19.cdb_cev1\",\n kmsKeyId: example.arn,\n filename: \"manifest_1915_GI.json\",\n manifestHash: std.filebase64sha256({\n input: json,\n }).then(invoke =\u003e invoke.result),\n tags: {\n Name: \"example\",\n Key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nexample = aws.kms.Key(\"example\", description=\"KMS symmetric key for RDS Custom for Oracle\")\nexample_custom_db_engine_version = aws.rds.CustomDbEngineVersion(\"example\",\n database_installation_files_s3_bucket_name=\"DOC-EXAMPLE-BUCKET\",\n database_installation_files_s3_prefix=\"1915_GI/\",\n engine=\"custom-oracle-ee-cdb\",\n engine_version=\"19.cdb_cev1\",\n kms_key_id=example.arn,\n filename=\"manifest_1915_GI.json\",\n manifest_hash=std.filebase64sha256(input=json).result,\n tags={\n \"Name\": \"example\",\n \"Key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Kms.Key(\"example\", new()\n {\n Description = \"KMS symmetric key for RDS Custom for Oracle\",\n });\n\n var exampleCustomDbEngineVersion = new Aws.Rds.CustomDbEngineVersion(\"example\", new()\n {\n DatabaseInstallationFilesS3BucketName = \"DOC-EXAMPLE-BUCKET\",\n DatabaseInstallationFilesS3Prefix = \"1915_GI/\",\n Engine = \"custom-oracle-ee-cdb\",\n EngineVersion = \"19.cdb_cev1\",\n KmsKeyId = example.Arn,\n Filename = \"manifest_1915_GI.json\",\n ManifestHash = Std.Filebase64sha256.Invoke(new()\n {\n Input = json,\n }).Apply(invoke =\u003e invoke.Result),\n Tags = \n {\n { \"Name\", \"example\" },\n { \"Key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"KMS symmetric key for RDS Custom for Oracle\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilebase64sha256, err := std.Filebase64sha256(ctx, \u0026std.Filebase64sha256Args{\n\t\t\tInput: json,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewCustomDbEngineVersion(ctx, \"example\", \u0026rds.CustomDbEngineVersionArgs{\n\t\t\tDatabaseInstallationFilesS3BucketName: pulumi.String(\"DOC-EXAMPLE-BUCKET\"),\n\t\t\tDatabaseInstallationFilesS3Prefix: pulumi.String(\"1915_GI/\"),\n\t\t\tEngine: pulumi.String(\"custom-oracle-ee-cdb\"),\n\t\t\tEngineVersion: pulumi.String(\"19.cdb_cev1\"),\n\t\t\tKmsKeyId: example.Arn,\n\t\t\tFilename: pulumi.String(\"manifest_1915_GI.json\"),\n\t\t\tManifestHash: pulumi.String(invokeFilebase64sha256.Result),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"example\"),\n\t\t\t\t\"Key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.rds.CustomDbEngineVersion;\nimport com.pulumi.aws.rds.CustomDbEngineVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Key(\"example\", KeyArgs.builder()\n .description(\"KMS symmetric key for RDS Custom for Oracle\")\n .build());\n\n var exampleCustomDbEngineVersion = new CustomDbEngineVersion(\"exampleCustomDbEngineVersion\", CustomDbEngineVersionArgs.builder()\n .databaseInstallationFilesS3BucketName(\"DOC-EXAMPLE-BUCKET\")\n .databaseInstallationFilesS3Prefix(\"1915_GI/\")\n .engine(\"custom-oracle-ee-cdb\")\n .engineVersion(\"19.cdb_cev1\")\n .kmsKeyId(example.arn())\n .filename(\"manifest_1915_GI.json\")\n .manifestHash(StdFunctions.filebase64sha256(Filebase64sha256Args.builder()\n .input(json)\n .build()).result())\n .tags(Map.ofEntries(\n Map.entry(\"Name\", \"example\"),\n Map.entry(\"Key\", \"value\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:kms:Key\n properties:\n description: KMS symmetric key for RDS Custom for Oracle\n exampleCustomDbEngineVersion:\n type: aws:rds:CustomDbEngineVersion\n name: example\n properties:\n databaseInstallationFilesS3BucketName: DOC-EXAMPLE-BUCKET\n databaseInstallationFilesS3Prefix: 1915_GI/\n engine: custom-oracle-ee-cdb\n engineVersion: 19.cdb_cev1\n kmsKeyId: ${example.arn}\n filename: manifest_1915_GI.json\n manifestHash:\n fn::invoke:\n function: std:filebase64sha256\n arguments:\n input: ${json}\n return: result\n tags:\n Name: example\n Key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Custom for SQL Server Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// CEV creation requires an AMI owned by the operator\nconst test = new aws.rds.CustomDbEngineVersion(\"test\", {\n engine: \"custom-sqlserver-se\",\n engineVersion: \"15.00.4249.2.cev-1\",\n sourceImageId: \"ami-0aa12345678a12ab1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# CEV creation requires an AMI owned by the operator\ntest = aws.rds.CustomDbEngineVersion(\"test\",\n engine=\"custom-sqlserver-se\",\n engine_version=\"15.00.4249.2.cev-1\",\n source_image_id=\"ami-0aa12345678a12ab1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // CEV creation requires an AMI owned by the operator\n var test = new Aws.Rds.CustomDbEngineVersion(\"test\", new()\n {\n Engine = \"custom-sqlserver-se\",\n EngineVersion = \"15.00.4249.2.cev-1\",\n SourceImageId = \"ami-0aa12345678a12ab1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// CEV creation requires an AMI owned by the operator\n\t\t_, err := rds.NewCustomDbEngineVersion(ctx, \"test\", \u0026rds.CustomDbEngineVersionArgs{\n\t\t\tEngine: pulumi.String(\"custom-sqlserver-se\"),\n\t\t\tEngineVersion: pulumi.String(\"15.00.4249.2.cev-1\"),\n\t\t\tSourceImageId: pulumi.String(\"ami-0aa12345678a12ab1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.CustomDbEngineVersion;\nimport com.pulumi.aws.rds.CustomDbEngineVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // CEV creation requires an AMI owned by the operator\n var test = new CustomDbEngineVersion(\"test\", CustomDbEngineVersionArgs.builder()\n .engine(\"custom-sqlserver-se\")\n .engineVersion(\"15.00.4249.2.cev-1\")\n .sourceImageId(\"ami-0aa12345678a12ab1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # CEV creation requires an AMI owned by the operator\n test:\n type: aws:rds:CustomDbEngineVersion\n properties:\n engine: custom-sqlserver-se\n engineVersion: 15.00.4249.2.cev-1\n sourceImageId: ami-0aa12345678a12ab1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDS Custom for SQL Server Usage with AMI from another region\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.AmiCopy(\"example\", {\n name: \"sqlserver-se-2019-15.00.4249.2\",\n description: \"A copy of ami-xxxxxxxx\",\n sourceAmiId: \"ami-xxxxxxxx\",\n sourceAmiRegion: \"us-east-1\",\n});\n// CEV creation requires an AMI owned by the operator\nconst test = new aws.rds.CustomDbEngineVersion(\"test\", {\n engine: \"custom-sqlserver-se\",\n engineVersion: \"15.00.4249.2.cev-1\",\n sourceImageId: example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.AmiCopy(\"example\",\n name=\"sqlserver-se-2019-15.00.4249.2\",\n description=\"A copy of ami-xxxxxxxx\",\n source_ami_id=\"ami-xxxxxxxx\",\n source_ami_region=\"us-east-1\")\n# CEV creation requires an AMI owned by the operator\ntest = aws.rds.CustomDbEngineVersion(\"test\",\n engine=\"custom-sqlserver-se\",\n engine_version=\"15.00.4249.2.cev-1\",\n source_image_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.AmiCopy(\"example\", new()\n {\n Name = \"sqlserver-se-2019-15.00.4249.2\",\n Description = \"A copy of ami-xxxxxxxx\",\n SourceAmiId = \"ami-xxxxxxxx\",\n SourceAmiRegion = \"us-east-1\",\n });\n\n // CEV creation requires an AMI owned by the operator\n var test = new Aws.Rds.CustomDbEngineVersion(\"test\", new()\n {\n Engine = \"custom-sqlserver-se\",\n EngineVersion = \"15.00.4249.2.cev-1\",\n SourceImageId = example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ec2.NewAmiCopy(ctx, \"example\", \u0026ec2.AmiCopyArgs{\n\t\t\tName: pulumi.String(\"sqlserver-se-2019-15.00.4249.2\"),\n\t\t\tDescription: pulumi.String(\"A copy of ami-xxxxxxxx\"),\n\t\t\tSourceAmiId: pulumi.String(\"ami-xxxxxxxx\"),\n\t\t\tSourceAmiRegion: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// CEV creation requires an AMI owned by the operator\n\t\t_, err = rds.NewCustomDbEngineVersion(ctx, \"test\", \u0026rds.CustomDbEngineVersionArgs{\n\t\t\tEngine: pulumi.String(\"custom-sqlserver-se\"),\n\t\t\tEngineVersion: pulumi.String(\"15.00.4249.2.cev-1\"),\n\t\t\tSourceImageId: example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.AmiCopy;\nimport com.pulumi.aws.ec2.AmiCopyArgs;\nimport com.pulumi.aws.rds.CustomDbEngineVersion;\nimport com.pulumi.aws.rds.CustomDbEngineVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new AmiCopy(\"example\", AmiCopyArgs.builder()\n .name(\"sqlserver-se-2019-15.00.4249.2\")\n .description(\"A copy of ami-xxxxxxxx\")\n .sourceAmiId(\"ami-xxxxxxxx\")\n .sourceAmiRegion(\"us-east-1\")\n .build());\n\n // CEV creation requires an AMI owned by the operator\n var test = new CustomDbEngineVersion(\"test\", CustomDbEngineVersionArgs.builder()\n .engine(\"custom-sqlserver-se\")\n .engineVersion(\"15.00.4249.2.cev-1\")\n .sourceImageId(example.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:AmiCopy\n properties:\n name: sqlserver-se-2019-15.00.4249.2\n description: A copy of ami-xxxxxxxx\n sourceAmiId: ami-xxxxxxxx\n sourceAmiRegion: us-east-1\n # CEV creation requires an AMI owned by the operator\n test:\n type: aws:rds:CustomDbEngineVersion\n properties:\n engine: custom-sqlserver-se\n engineVersion: 15.00.4249.2.cev-1\n sourceImageId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import custom engine versions for Amazon RDS custom using the `engine` and `engine_version` separated by a colon (`:`). For example:\n\n```sh\n$ pulumi import aws:rds/customDbEngineVersion:CustomDbEngineVersion example custom-oracle-ee-cdb:19.cdb_cev1\n```\n", "properties": { @@ -341257,15 +342351,15 @@ } }, "aws:resourcegroups/resource:Resource": { - "description": "Resource for managing an AWS Resource Groups Resource.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.DedicatedHost(\"example\", {\n instanceFamily: \"t3\",\n availabilityZone: \"us-east-1a\",\n hostRecovery: \"off\",\n autoPlacement: \"on\",\n});\nconst exampleGroup = new aws.resourcegroups.Group(\"example\", {name: \"example\"});\nconst exampleResource = new aws.resourcegroups.Resource(\"example\", {\n groupArn: exampleGroup.arn,\n resourceArn: example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.DedicatedHost(\"example\",\n instance_family=\"t3\",\n availability_zone=\"us-east-1a\",\n host_recovery=\"off\",\n auto_placement=\"on\")\nexample_group = aws.resourcegroups.Group(\"example\", name=\"example\")\nexample_resource = aws.resourcegroups.Resource(\"example\",\n group_arn=example_group.arn,\n resource_arn=example.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.DedicatedHost(\"example\", new()\n {\n InstanceFamily = \"t3\",\n AvailabilityZone = \"us-east-1a\",\n HostRecovery = \"off\",\n AutoPlacement = \"on\",\n });\n\n var exampleGroup = new Aws.ResourceGroups.Group(\"example\", new()\n {\n Name = \"example\",\n });\n\n var exampleResource = new Aws.ResourceGroups.Resource(\"example\", new()\n {\n GroupArn = exampleGroup.Arn,\n ResourceArn = example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourcegroups\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ec2.NewDedicatedHost(ctx, \"example\", \u0026ec2.DedicatedHostArgs{\n\t\t\tInstanceFamily: pulumi.String(\"t3\"),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tHostRecovery: pulumi.String(\"off\"),\n\t\t\tAutoPlacement: pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := resourcegroups.NewGroup(ctx, \"example\", \u0026resourcegroups.GroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcegroups.NewResource(ctx, \"example\", \u0026resourcegroups.ResourceArgs{\n\t\t\tGroupArn: exampleGroup.Arn,\n\t\t\tResourceArn: example.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.DedicatedHost;\nimport com.pulumi.aws.ec2.DedicatedHostArgs;\nimport com.pulumi.aws.resourcegroups.Group;\nimport com.pulumi.aws.resourcegroups.GroupArgs;\nimport com.pulumi.aws.resourcegroups.Resource;\nimport com.pulumi.aws.resourcegroups.ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DedicatedHost(\"example\", DedicatedHostArgs.builder()\n .instanceFamily(\"t3\")\n .availabilityZone(\"us-east-1a\")\n .hostRecovery(\"off\")\n .autoPlacement(\"on\")\n .build());\n\n var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n .name(\"example\")\n .build());\n\n var exampleResource = new Resource(\"exampleResource\", ResourceArgs.builder()\n .groupArn(exampleGroup.arn())\n .resourceArn(example.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:DedicatedHost\n properties:\n instanceFamily: t3\n availabilityZone: us-east-1a\n hostRecovery: off\n autoPlacement: on\n exampleGroup:\n type: aws:resourcegroups:Group\n name: example\n properties:\n name: example\n exampleResource:\n type: aws:resourcegroups:Resource\n name: example\n properties:\n groupArn: ${exampleGroup.arn}\n resourceArn: ${example.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Resource for managing an AWS Resource Groups Resource.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.DedicatedHost(\"example\", {\n instanceFamily: \"t3\",\n availabilityZone: \"us-east-1a\",\n hostRecovery: \"off\",\n autoPlacement: \"on\",\n});\nconst exampleGroup = new aws.resourcegroups.Group(\"example\", {name: \"example\"});\nconst exampleResource = new aws.resourcegroups.Resource(\"example\", {\n groupArn: exampleGroup.arn,\n resourceArn: example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.DedicatedHost(\"example\",\n instance_family=\"t3\",\n availability_zone=\"us-east-1a\",\n host_recovery=\"off\",\n auto_placement=\"on\")\nexample_group = aws.resourcegroups.Group(\"example\", name=\"example\")\nexample_resource = aws.resourcegroups.Resource(\"example\",\n group_arn=example_group.arn,\n resource_arn=example.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.DedicatedHost(\"example\", new()\n {\n InstanceFamily = \"t3\",\n AvailabilityZone = \"us-east-1a\",\n HostRecovery = \"off\",\n AutoPlacement = \"on\",\n });\n\n var exampleGroup = new Aws.ResourceGroups.Group(\"example\", new()\n {\n Name = \"example\",\n });\n\n var exampleResource = new Aws.ResourceGroups.Resource(\"example\", new()\n {\n GroupArn = exampleGroup.Arn,\n ResourceArn = example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourcegroups\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ec2.NewDedicatedHost(ctx, \"example\", \u0026ec2.DedicatedHostArgs{\n\t\t\tInstanceFamily: pulumi.String(\"t3\"),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tHostRecovery: pulumi.String(\"off\"),\n\t\t\tAutoPlacement: pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := resourcegroups.NewGroup(ctx, \"example\", \u0026resourcegroups.GroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcegroups.NewResource(ctx, \"example\", \u0026resourcegroups.ResourceArgs{\n\t\t\tGroupArn: exampleGroup.Arn,\n\t\t\tResourceArn: example.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.DedicatedHost;\nimport com.pulumi.aws.ec2.DedicatedHostArgs;\nimport com.pulumi.aws.resourcegroups.Group;\nimport com.pulumi.aws.resourcegroups.GroupArgs;\nimport com.pulumi.aws.resourcegroups.Resource;\nimport com.pulumi.aws.resourcegroups.ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DedicatedHost(\"example\", DedicatedHostArgs.builder()\n .instanceFamily(\"t3\")\n .availabilityZone(\"us-east-1a\")\n .hostRecovery(\"off\")\n .autoPlacement(\"on\")\n .build());\n\n var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n .name(\"example\")\n .build());\n\n var exampleResource = new Resource(\"exampleResource\", ResourceArgs.builder()\n .groupArn(exampleGroup.arn())\n .resourceArn(example.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:DedicatedHost\n properties:\n instanceFamily: t3\n availabilityZone: us-east-1a\n hostRecovery: off\n autoPlacement: on\n exampleGroup:\n type: aws:resourcegroups:Group\n name: example\n properties:\n name: example\n exampleResource:\n type: aws:resourcegroups:Resource\n name: example\n properties:\n groupArn: ${exampleGroup.arn}\n resourceArn: ${example.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example:\n\n```sh\n$ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example\n```\n", "properties": { "groupArn": { "type": "string", - "description": "The name or the ARN of the resource group to add resources to.\n\nThe following arguments are optional:\n" + "description": "Name or ARN of the resource group to add resources to.\n" }, "resourceArn": { "type": "string", - "description": "The ARN of the resource to be added to the group.\n" + "description": "ARN of the resource to be added to the group.\n" }, "resourceType": { "type": "string", @@ -341280,12 +342374,12 @@ "inputProperties": { "groupArn": { "type": "string", - "description": "The name or the ARN of the resource group to add resources to.\n\nThe following arguments are optional:\n", + "description": "Name or ARN of the resource group to add resources to.\n", "willReplaceOnChanges": true }, "resourceArn": { "type": "string", - "description": "The ARN of the resource to be added to the group.\n", + "description": "ARN of the resource to be added to the group.\n", "willReplaceOnChanges": true } }, @@ -341298,12 +342392,12 @@ "properties": { "groupArn": { "type": "string", - "description": "The name or the ARN of the resource group to add resources to.\n\nThe following arguments are optional:\n", + "description": "Name or ARN of the resource group to add resources to.\n", "willReplaceOnChanges": true }, "resourceArn": { "type": "string", - "description": "The ARN of the resource to be added to the group.\n", + "description": "ARN of the resource to be added to the group.\n", "willReplaceOnChanges": true }, "resourceType": { @@ -392191,6 +393285,10 @@ "description": "ASN on the Amazon side of the connection.\n", "type": "string" }, + "arn": { + "description": "ARN of the gateway.\n", + "type": "string" + }, "id": { "description": "The provider-assigned unique ID for this managed resource.\n", "type": "string" @@ -392205,6 +393303,7 @@ }, "required": [ "amazonSideAsn", + "arn", "name", "ownerAccountId", "id" @@ -424457,6 +425556,45 @@ "type": "object" } }, + "aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations": { + "description": "Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.servicecatalog.getAppregistryAttributeGroupAssociations({\n id: \"12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.get_appregistry_attribute_group_associations(id=\"12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.ServiceCatalog.GetAppregistryAttributeGroupAssociations.Invoke(new()\n {\n Id = \"12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicecatalog.GetAppregistryAttributeGroupAssociations(ctx, \u0026servicecatalog.GetAppregistryAttributeGroupAssociationsArgs{\n\t\t\tId: pulumi.StringRef(\"12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()\n .id(\"12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: aws:servicecatalog:getAppregistryAttributeGroupAssociations\n arguments:\n id: 12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getAppregistryAttributeGroupAssociations.\n", + "properties": { + "id": { + "type": "string", + "description": "ID of the application to which attribute groups are associated.\n" + }, + "name": { + "type": "string", + "description": "Name of the application to which attribute groups are associated.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getAppregistryAttributeGroupAssociations.\n", + "properties": { + "attributeGroupIds": { + "description": "Set of attribute group IDs this application is associated with.\n", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "attributeGroupIds" + ], + "type": "object" + } + }, "aws:servicecatalog/getConstraint:getConstraint": { "description": "Provides information on a Service Catalog Constraint.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.servicecatalog.getConstraint({\n acceptLanguage: \"en\",\n id: \"cons-hrvy0335\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.get_constraint(accept_language=\"en\",\n id=\"cons-hrvy0335\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.ServiceCatalog.GetConstraint.Invoke(new()\n {\n AcceptLanguage = \"en\",\n Id = \"cons-hrvy0335\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicecatalog.LookupConstraint(ctx, \u0026servicecatalog.LookupConstraintArgs{\n\t\t\tAcceptLanguage: pulumi.StringRef(\"en\"),\n\t\t\tId: \"cons-hrvy0335\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.aws.servicecatalog.inputs.GetConstraintArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = ServicecatalogFunctions.getConstraint(GetConstraintArgs.builder()\n .acceptLanguage(\"en\")\n .id(\"cons-hrvy0335\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n function: aws:servicecatalog:getConstraint\n arguments:\n acceptLanguage: en\n id: cons-hrvy0335\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index b702d76078b..dc3d4dba17d 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -67,11 +67,11 @@ require ( github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 // indirect github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/account v1.21.7 // indirect + github.com/aws/aws-sdk-go-v2/service/account v1.22.0 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.30.7 // indirect github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.30.4 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1 // indirect github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/appconfig v1.36.1 // indirect @@ -85,40 +85,40 @@ require ( github.com/aws/aws-sdk-go-v2/service/apprunner v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.49.0 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.49.1 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7 // indirect - github.com/aws/aws-sdk-go-v2/service/backup v1.39.8 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.48.2 // indirect + github.com/aws/aws-sdk-go-v2/service/backup v1.40.0 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.49.0 // indirect github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7 // indirect github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1 // indirect github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0 // indirect - github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1 // indirect github.com/aws/aws-sdk-go-v2/service/chime v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.21.2 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0 // indirect - github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7 // indirect + github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8 // indirect github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6 // indirect github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/codeconnections v1.5.7 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7 // indirect - github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 // indirect + github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.27.8 // indirect @@ -126,18 +126,18 @@ require ( github.com/aws/aws-sdk-go-v2/service/comprehend v1.35.7 // indirect github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1 // indirect github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 // indirect - github.com/aws/aws-sdk-go-v2/service/connect v1.120.0 // indirect + github.com/aws/aws-sdk-go-v2/service/connect v1.122.0 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/costexplorer v1.45.1 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7 // indirect github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5 // indirect github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7 // indirect - github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5 // indirect + github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.23.7 // indirect github.com/aws/aws-sdk-go-v2/service/detective v1.31.7 // indirect @@ -145,17 +145,17 @@ require ( github.com/aws/aws-sdk-go-v2/service/devopsguru v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 // indirect - github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9 // indirect + github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.14.4 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.30.7 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.53.0 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.54.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.28.6 // indirect @@ -174,11 +174,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/gamelift v1.37.2 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.103.0 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.104.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7 // indirect - github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0 // indirect + github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.38.2 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.7 // indirect @@ -190,13 +190,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iot v1.61.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iot v1.62.0 // indirect github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7 // indirect github.com/aws/aws-sdk-go-v2/service/iotevents v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7 // indirect - github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7 // indirect + github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8 // indirect github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7 // indirect github.com/aws/aws-sdk-go-v2/service/kendra v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/keyspaces v1.16.2 // indirect @@ -205,7 +205,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.31.8 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 // indirect - github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0 // indirect + github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.8.7 // indirect github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.28.7 // indirect @@ -214,27 +214,28 @@ require ( github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.7 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.42.7 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.20.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0 // indirect + github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2 // indirect github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6 // indirect github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.15.7 // indirect github.com/aws/aws-sdk-go-v2/service/opensearch v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4 // indirect github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7 // indirect - github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1 // indirect github.com/aws/aws-sdk-go-v2/service/osis v1.14.7 // indirect github.com/aws/aws-sdk-go-v2/service/outposts v1.47.2 // indirect github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.16.2 // indirect @@ -247,21 +248,21 @@ require ( github.com/aws/aws-sdk-go-v2/service/pricing v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.29.7 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.92.0 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.93.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.31.4 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8 // indirect - github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1 // indirect + github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.27.7 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3 // indirect - github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7 // indirect + github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.21.7 // indirect @@ -272,7 +273,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3outposts v1.28.7 // indirect github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0 // indirect - github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7 // indirect + github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8 // indirect github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/securityhub v1.55.0 // indirect @@ -280,7 +281,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7 // indirect - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7 // indirect + github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/ses v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/sesv2 v1.40.0 // indirect @@ -300,14 +301,15 @@ require ( github.com/aws/aws-sdk-go-v2/service/storagegateway v1.34.7 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect github.com/aws/aws-sdk-go-v2/service/swf v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2 // indirect + github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8 // indirect github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7 // indirect - github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0 // indirect + github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3 // indirect - github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/waf v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.7 // indirect github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.6 // indirect @@ -376,12 +378,12 @@ require ( github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.21.0 // indirect - github.com/hashicorp/terraform-json v0.23.0 // indirect + github.com/hashicorp/terraform-json v0.24.0 // indirect github.com/hashicorp/terraform-plugin-framework v1.13.0 // indirect github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.15.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.16.0 // indirect github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.17.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index e0a9f8bdabd..5a2a077c7ab 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1258,16 +1258,16 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 h1:r67ps7oHCYnflpgDy2LZU0MAQtQ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25/go.mod h1:GrGY+Q4fIokYLtjCVB/aFfCVL6hhGUFl8inD18fDalE= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2 h1:9WvCTutkgDExBamb9UZQ94oiCjJwXUhhtoBH3NIs0Iw= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.36.2/go.mod h1:9QmJU2Zam+wUZe8etjM4VY9NlC0WeMFLIvtUIOIko4U= -github.com/aws/aws-sdk-go-v2/service/account v1.21.7 h1:TljZChU1jYlIrVC6GpS4t5CCuTPVbxkHP9pOv9yKz+o= -github.com/aws/aws-sdk-go-v2/service/account v1.21.7/go.mod h1:/OutbIU/lpaxPpjAeKIE6lOfy9bPOZi1xMzSllMubKw= +github.com/aws/aws-sdk-go-v2/service/account v1.22.0 h1:Fg/uyf0CCBKLAStzIhYZcIXyVI1BaTJjoPPuuOMdyrk= +github.com/aws/aws-sdk-go-v2/service/account v1.22.0/go.mod h1:/OutbIU/lpaxPpjAeKIE6lOfy9bPOZi1xMzSllMubKw= github.com/aws/aws-sdk-go-v2/service/acm v1.30.7 h1:rv8PVsnReslpDVVByyuX4LzfA7j0+Jcj6Gili1dBEd0= github.com/aws/aws-sdk-go-v2/service/acm v1.30.7/go.mod h1:ns7D5/uAekEaVLAIzzNrxVz/CsBCCwNfSdi46PEaGhI= github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8 h1:qcx0XpDUjTkwp89kt15m1iKorZ1BK1uzXFTT+1NvU0A= github.com/aws/aws-sdk-go-v2/service/acmpca v1.37.8/go.mod h1:T44GdsVnipn1kFnmZbVqLhDNtl9rrWVBmjsuPIrRQzY= github.com/aws/aws-sdk-go-v2/service/amp v1.30.4 h1:0ya3FPNzwsGD93yx7ag3l5sD6Kelb8qghRAUgRfB5G8= github.com/aws/aws-sdk-go-v2/service/amp v1.30.4/go.mod h1:e3oL6s7I4YUSaRCpz4gSp1ujDmi+f0CwMbDjlRsad40= -github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5 h1:W+P/AMT4p8I1EuP9BaRidIiJXWbUNpbsSb4uZwXah+Q= -github.com/aws/aws-sdk-go-v2/service/amplify v1.27.5/go.mod h1:2wrh0ye46s6rA3L1TKkvu4MEADM54tvnxcMkXVL4z5c= +github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0 h1:1swpQaAKSbCkjnx3e0Jl7zmbi5M+k8Gr/aSjo45uLFY= +github.com/aws/aws-sdk-go-v2/service/amplify v1.28.0/go.mod h1:2wrh0ye46s6rA3L1TKkvu4MEADM54tvnxcMkXVL4z5c= github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1 h1:XBVNkd4B5uGC6RgJ+/4x/ZUuk7/6f/hQ8cvGRSxltBI= github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.1/go.mod h1:4cynmnoMmeiroN7OvI8upcQbvJ3Rfzd3j5hOthYKQnk= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.24.7 h1:sDijLs7HLzhvxPWxODryESj4gMA8A8seQWhaUVZaPlE= @@ -1294,26 +1294,26 @@ github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7 h1:9KTwRIeh67p4JjOtkAiUQ6 github.com/aws/aws-sdk-go-v2/service/appstream v1.41.7/go.mod h1:YC50kSYeBhmjzeJKNf4CB85KN9Gdy+RKhtt4MvMx4ro= github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2 h1:NGExoL+9wUDfrQqX6xZavPb93IjFrKLG2b3r+suCfVY= github.com/aws/aws-sdk-go-v2/service/appsync v1.40.2/go.mod h1:YN/LhOApnQGAgb4AljjHkcpl+OmaLrkD6cGPL1dkajI= -github.com/aws/aws-sdk-go-v2/service/athena v1.49.0 h1:D+iatX9gV6gCuNd6BnUkfwfZJw/cXlEk+LwwDdSMdtw= -github.com/aws/aws-sdk-go-v2/service/athena v1.49.0/go.mod h1:27ljwDsnZvfrZKsLzWD4WFjI4OZutEFIjvVtYfj9gHc= +github.com/aws/aws-sdk-go-v2/service/athena v1.49.1 h1:BASu7+dZA5YsB8r32SGoC+tPtRmd6pp5OOY0UMRQq6c= +github.com/aws/aws-sdk-go-v2/service/athena v1.49.1/go.mod h1:27ljwDsnZvfrZKsLzWD4WFjI4OZutEFIjvVtYfj9gHc= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7 h1:THLQzF9JZZthlhdf8i+rDCqO8K7sk2xmsgl/by0/4B4= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.7/go.mod h1:UZOdtpOTwIj4yHbPVNxfayWIlQp4c3Xht/7sDaFzZs0= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1 h1:XFZsqNpwwi/D8nFI/tdUQn1QW1BTVcuQH382RNUXojE= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.1/go.mod h1:r+eOyjSMo2zY+j6zEEaHjb7nU74oyva1r2/wFqDkPg4= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7 h1:7zci6q+hPs522cfe75lHUw9LnJ/Ha6eeE977IpBiRwg= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.7/go.mod h1:J/X0cqccGAPGPtWCWi5Juw2sSkmUN7mKnBKbbyyjzwc= -github.com/aws/aws-sdk-go-v2/service/backup v1.39.8 h1:ChfrtARE1PhWRW+EZ89IywUUoiPf4f9HYFEahbDaKxo= -github.com/aws/aws-sdk-go-v2/service/backup v1.39.8/go.mod h1:YgtsGOZJNjMAnSov/HRVspxzEUjjszZi3qXo90gzNU8= -github.com/aws/aws-sdk-go-v2/service/batch v1.48.2 h1:/BSZk0ywzZD4KKRt4qm33fIcXQztMSr8zpkr6EfrACs= -github.com/aws/aws-sdk-go-v2/service/batch v1.48.2/go.mod h1:5pxmENM3nBEAr2XrSs6c89Iwl6wAJk0/pkyFd3Gmav0= +github.com/aws/aws-sdk-go-v2/service/backup v1.40.0 h1:Fg0AZko1ZNgP1dhc2DdWWSHZpD0eCZ/dauSccQYwvsY= +github.com/aws/aws-sdk-go-v2/service/backup v1.40.0/go.mod h1:YgtsGOZJNjMAnSov/HRVspxzEUjjszZi3qXo90gzNU8= +github.com/aws/aws-sdk-go-v2/service/batch v1.49.0 h1:ew1qgtLddHOgV2yuzG0oV8srXYf4+L0hotZvhhpNK64= +github.com/aws/aws-sdk-go-v2/service/batch v1.49.0/go.mod h1:5pxmENM3nBEAr2XrSs6c89Iwl6wAJk0/pkyFd3Gmav0= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7 h1:zrQ6zDzE5ohrLEpwaXGoF0PoBiSBo0oW6uW72iyF0ic= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.7/go.mod h1:J+Zv3ekV1h3RyqVlxi1hCliEuI1SwugGAnmiOfwzNco= github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1 h1:zMEJeGsIuYpjO4Osdll4EdOemC01Fx1nmXOAjJzALLs= github.com/aws/aws-sdk-go-v2/service/bedrock v1.25.1/go.mod h1:BKSewSMuaeUidKqXArDlT06PWK/PP3wsgLWTXKeKgQw= github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0 h1:hnoHWrcuFtnhPcg0Cx0HtWsXcQGZe01Y0OqssMIBy9o= github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.32.0/go.mod h1:d+BIleA83BNMLQbwc1gYB/Kgrogwl4lzn2RN+XPIC0s= -github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8 h1:o6Y4kxaKJmj30MzyfP9JBj86OncxIXuQBWhTrl2pCuA= -github.com/aws/aws-sdk-go-v2/service/budgets v1.28.8/go.mod h1:jhUXdAWAOIKQReti3jcD8zaDjyayYBAuhmijh8+rYrk= +github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0 h1:j8c+43fhvHwhKLoNuVKByx2JMMknnInSvfES9iYhMXY= +github.com/aws/aws-sdk-go-v2/service/budgets v1.29.0/go.mod h1:jhUXdAWAOIKQReti3jcD8zaDjyayYBAuhmijh8+rYrk= github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1 h1:g+Xnw4sHm/T5xDTlNvPBeM6gAAQSzj7EwOI0vBXscSE= github.com/aws/aws-sdk-go-v2/service/chatbot v1.9.1/go.mod h1:lpKKa8zv8/MTIHRh1JB24Y+R/RXLE6BWxnFCQ/b0W2M= github.com/aws/aws-sdk-go-v2/service/chime v1.34.7 h1:iHBLzHxZF2vRCQzm9fKp7yA6X2nnUzqeVF3TY60tqhQ= @@ -1324,18 +1324,18 @@ github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0 h1:IwQ9oL4a8ZhJq/tgfP github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.20.0/go.mod h1:U8vcvSwicq+2VDdkPTP8UYn5IV8YFWPPi8CoMI786w8= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0 h1:XlyfMge7JCGYR9wJoihE0aSx1mmlDdmeDg8l/SmCXPQ= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.21.0/go.mod h1:F/4OPOJP5yt+EsQXiOyMq1CkV00LZImdgoHdRWd0nQA= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7 h1:gcTAeqesSwreH8YtKudbKx3FrliadMbVJOdmHssqEDc= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.7/go.mod h1:l1sYjOTxY/lcqFT56ruW2YoC1k2in//ko50kBxwpYII= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8 h1:sXmoUPtWluI9ONDMfs7/0qC10bgSE/I+xschdBItNeY= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.28.8/go.mod h1:l1sYjOTxY/lcqFT56ruW2YoC1k2in//ko50kBxwpYII= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2 h1:xUD/6aoYwDsMmVl6J6Umkgk+QlkzDm1N0w2BukgXTMI= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.23.2/go.mod h1:NQSFnuiS7N4Leys2Mx/N0UMIWkMsXHBs3HEI4ElCSV8= github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1 h1:EqRhsrEoXFFyzcNuqQCF1g9rG9EA8K2EiUj6/eWClgk= github.com/aws/aws-sdk-go-v2/service/cloudformation v1.56.1/go.mod h1:75rrfzgrN4Ol0m9Xo4+8S09KBoGAd1t6eafFHMt5wDI= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1 h1:riUb1ppQ6Qs0+Yz0bttwlwPIl0AdBAcJdtuKLzsbaI4= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.43.1/go.mod h1:fXHLupAMPNGhRAW7e2kS0aoDY/KsQ9GHu80GSK70cRs= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0 h1:zYk75ljFsvA6PgmbkMVy5b3M/arUF7EY3kHJz7LDaDk= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.0/go.mod h1:fXHLupAMPNGhRAW7e2kS0aoDY/KsQ9GHu80GSK70cRs= github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7 h1:+7Ru1G2Y17qgRiUAcBxc9enlf0TxustitfBqonrWcBc= github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.8.7/go.mod h1:Di9EQnngIp8gHvxf+GkB14uEbC5UcSxsNOOnSWMsfjQ= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8 h1:3WVykb3vPvTQ7Ht1LgUzcqlSuZVhV6hntx9lwhvaJ3Y= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.8/go.mod h1:l9Gu/zoAKx1ww1ZtRlSj8qP80AV742bDP337N5NkY3o= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0 h1:HdUkTXcE1thauOhDGMHjNppUvbygtVj4e80gI3zXJxg= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.28.0/go.mod h1:l9Gu/zoAKx1ww1ZtRlSj8qP80AV742bDP337N5NkY3o= github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6 h1:m1CAIBZzVi05OAocQs7SzY3gLsGGNBmg+qpHA7HQteU= github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.26.6/go.mod h1:4ogUNAMmF9rtIYGYnFm21WXc/8+lcAuoNYUkS534MfI= github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.46.3 h1:DfrEQMWCfk0wkuv/r0zwcGoykCuYWCLoGolbax6O3sw= @@ -1346,8 +1346,8 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0 h1:j9rGKWaYglZpf9KbJ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.45.0/go.mod h1:LZafBHU62ByizrdhNLMnzWGsUX+abAW4q35PN+FOj+A= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7 h1:5us9BU1TnHeSqgQEiQCH9qpDbwGEtYAz6fhSL0jiAyA= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.33.7/go.mod h1:k6IbvJ+UeAR3ueA7so+YwS+sPoHa99ECNQvbtwt/pxk= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2 h1:hQB9ib1JAhjLodnSczNfG5XDw1bWZU0wBwW0FjDs2/4= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.2/go.mod h1:dOgg7MoOJYIvQkUkZRrKuO/3YdAbO3+fIJlICyDc3dc= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3 h1:p8f+OrPZ9NHMKGFbQ0PZlXTe72Nm5afbDhormEUGg8Q= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.3/go.mod h1:dOgg7MoOJYIvQkUkZRrKuO/3YdAbO3+fIJlICyDc3dc= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7 h1:FgYA/R4VzjeXwimhbQGJhuyaxV/ORz1LVXUkn4t++Nw= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.17.7/go.mod h1:1V3pxyJ9hgz8HDju0oDV7lY+pzM/rERREZh7Kd6W3Yo= github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.7 h1:8IZ97GQsCxQ3n0yQ+0QAMMtt2YpOeig6W5Q+hIBCfjE= @@ -1360,8 +1360,8 @@ github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7 h1:5FCm30+pN7ZXwLo github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.24.7/go.mod h1:miiswEyJjWFb8lIQgqA067DXBnq5mmTk2eIgKkhg9Yg= github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7 h1:x7Wiwow6bm0ICkR9akuYUkzfdpZrDx5wvkY64hZ0nT8= github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.29.7/go.mod h1:91nPYuyG0FyzUG6sKqXqU6wJyeysU/9H/ug+tbQR1jc= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1 h1:+PBCTujGgVyFHSFR7VKGBuwzHZCd6aolUCXO98Xd3yw= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.37.1/go.mod h1:fLGjNeyN4aduz+LrpWje0ufvfadQnwZof389MwTeFtI= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0 h1:oYEy8cOgXMEN8tNNnH9tOmEGaATZkMVZZBT+kiDyx24= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.38.0/go.mod h1:fLGjNeyN4aduz+LrpWje0ufvfadQnwZof389MwTeFtI= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7 h1:5bDPXYGWnZ9nY/N7tY9cSO4hMadCFvZqDwRIs/4ik7w= github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.29.7/go.mod h1:K9YY4T95yT7BVqHvDjSo8h9yxftqPvWYDFfuCxtHF/g= github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.26.7 h1:12UdLytB/DylaodJgGl0CUBT7Zz2xRskdlrHst29JVE= @@ -1376,8 +1376,8 @@ github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1 h1:iH/z1Q7WYbT2MoT github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.40.1/go.mod h1:Epb43KiHofSehPHq6PEQZ07hcl/Euv4vUi7kEcC7J7I= github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1 h1:zA4KArT5FZ4ypJc8X+7MJNN3iv74K8ygmFhci64M4YI= github.com/aws/aws-sdk-go-v2/service/configservice v1.51.1/go.mod h1:2fOznUkaoZ2EtJimN0zizQRxQmkndSJz/SSd2x0goKo= -github.com/aws/aws-sdk-go-v2/service/connect v1.120.0 h1:ny7ogs5eNh369uhRNfjCD7EK3EgtMDbgYXDLh74juqk= -github.com/aws/aws-sdk-go-v2/service/connect v1.120.0/go.mod h1:tuGtOUYMxcOObTcKDHKpzTG9EvjfXjOIEC74a6meGRk= +github.com/aws/aws-sdk-go-v2/service/connect v1.122.0 h1:O6uOzf10vuwomHSEnUg1h2a4Gl16FDTAC5ZG/oPYgCw= +github.com/aws/aws-sdk-go-v2/service/connect v1.122.0/go.mod h1:tuGtOUYMxcOObTcKDHKpzTG9EvjfXjOIEC74a6meGRk= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7 h1:uWiDzkr4L/KMlftI2OqmELmsv0ZGxeyi3YAo266wJzs= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.7/go.mod h1:/FZ+YQmJpAdZPR4Z1tA1mIxA/SmLmUlgrn3sZOAmnfQ= github.com/aws/aws-sdk-go-v2/service/controltower v1.20.1 h1:fpqsKm/4mA+oOn2IM62syUhcVZMU3Gc7tl8HTd4Ul+k= @@ -1390,16 +1390,16 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1 h1:r1LakPxgYvob github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.11.1/go.mod h1:agAlqygpDyX9paflw12sVF0sGGzAk6Ed5plVQgOqJRk= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0 h1:Wkf9S+n02aTZ8pQsp+nBRRVFdodbHG7V5HWqwYQWm/Q= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.44.0/go.mod h1:yresrCHgaNcKcF7cLJ6emqK9eb05B1Ik2KvDMLbncU8= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5 h1:KmcRuMU/pSZy/bhnZ0nTGeNXhvBO0cvXkXduq3E5mAQ= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.5/go.mod h1:4O6knGhxKpEu9ILt1+PGSN/LVWzLa4hdyUdPfjgFTao= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0 h1:Bz6/i8CbYodfvX5Efsp0i9+3CG7+312M7HoOnzn7cRA= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.0/go.mod h1:4O6knGhxKpEu9ILt1+PGSN/LVWzLa4hdyUdPfjgFTao= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7 h1:kaYiuNxHzwDMwsqM766yy0cp8ZVldOTwJhOeR0MINU8= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.7/go.mod h1:Gu2mR/aUZzdmnNORl8GbAN6xDsPO/t9KNG+B99SNMIk= github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5 h1:X62garDt07bE4Ojd+qO6MTlyMC/wYPw6Sg0QkSfNgXs= github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.5/go.mod h1:UJZLGoXBQs6AukctWkOWimAQh6wloVGq6LOTyg/ALJs= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7 h1:b2xXuJ5Yh5RuyOzs3vdBamLXVK5DIM5l819/pCxbC/M= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.7/go.mod h1:IH2WIe0ol0aDtM5a/+nP6UYRwrDXi/gwF+DA0nJK+i8= -github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5 h1:4tdw3XO+pUwsjE6j2a4kWxZt80NtRxhOl9OnDtPS1fY= -github.com/aws/aws-sdk-go-v2/service/datasync v1.43.5/go.mod h1:ty1/xBfWRiv/C+e/cbTLkM4UGMfkOavUgp3daLZ2QKc= +github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0 h1:qCjwlzJJikstQVKrbu/dMpZbhtqlTLawr6zSLRVvRyY= +github.com/aws/aws-sdk-go-v2/service/datasync v1.44.0/go.mod h1:ty1/xBfWRiv/C+e/cbTLkM4UGMfkOavUgp3daLZ2QKc= github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0 h1:L1IGMQ1T1eZtJLDA4n0SgTYFaHeJ7OJYqy00+JrEGoY= github.com/aws/aws-sdk-go-v2/service/datazone v1.25.0/go.mod h1:2MCAq6PXnLOI6NVaUES50GGvOl1pa5l6N2XmRAVWWWw= github.com/aws/aws-sdk-go-v2/service/dax v1.23.7 h1:hZg1sHhWXGZShzHGpwcaOT8HZfx26kkbRDNZgZda4xI= @@ -1414,8 +1414,8 @@ github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1 h1:U2VtqwmOzP7sZYWmrn github.com/aws/aws-sdk-go-v2/service/directconnect v1.30.1/go.mod h1:IVHMPfXzPHdq2JuZmnyreo2Dhhlu84Vel/tochYKgh8= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8 h1:o3yUhrImWkJuI42DyTJu7REWf1+EUNlwfmLpo2yXzb0= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.8/go.mod h1:CxYqXrb08ko/psMpQ692AcEFXCuB+sVuWA2OZPB32t0= -github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9 h1:orqq8yNI2QHyO5o6g7b+3JVZhA4pVVEit7F8/5ZGi/Q= -github.com/aws/aws-sdk-go-v2/service/dlm v1.28.9/go.mod h1:SBPSK/ycAG4ET3JblaBP2Xt52RjNcg827EFgqN8W7AY= +github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0 h1:urPakVfaxgWE5VA6RVPF0DQPpe5JrJFcpsrQWDgUq6s= +github.com/aws/aws-sdk-go-v2/service/dlm v1.29.0/go.mod h1:SBPSK/ycAG4ET3JblaBP2Xt52RjNcg827EFgqN8W7AY= github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6 h1:N2iwdECLOQuClhv3XdTgGSY75N7QHF5nDekPGoFpRyY= github.com/aws/aws-sdk-go-v2/service/docdb v1.39.6/go.mod h1:pa9tid/NTUDjayagl5El0KVg9IiV3hJEKVxFmvyc+J8= github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.14.4 h1:pT1NLJ04YA/05ZEbYBNhminfsbKBvHDlOh8ScoMZybA= @@ -1424,18 +1424,18 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.30.7 h1:0jUZJqidFnPF9LlSSsYD9yQcbIYL github.com/aws/aws-sdk-go-v2/service/drs v1.30.7/go.mod h1:myL1h4VGyN3HU1B/7WBs2MsjKYX3FugwPJ09muIM8tE= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0 h1:isKhHsjpQR3CypQJ4G1g8QWx7zNpiC/xKw1zjgJYVno= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.38.0/go.mod h1:xDvUyIkwBwNtVZJdHEwAuhFly3mezwdEWkbJ5oNYwIw= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0 h1:ZBtoihAqfT+5b1FwGHOubq8k10KwaIyKZd2/CRTucAU= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.196.0/go.mod h1:00zqVNJFK6UASrTnuvjJHJuaqUdkVz5tW8Ip+VhzuNg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0 h1:ivPJXmGlzAjgy0jLO9naExUWE8IM8lLRcRKLPBEx6Q0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.198.0/go.mod h1:00zqVNJFK6UASrTnuvjJHJuaqUdkVz5tW8Ip+VhzuNg= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7 h1:R+5XKIJga2K9Dkj0/iQ6fD/MBGo02oxGGFTc512lK/Q= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.7/go.mod h1:fDPQV/6ONOQOjvtKhtypIy1wcGLcKYtoK/lvZ9fyDGQ= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7 h1:eddAe+FnCCLECUKHUHLM9/iAlqDkyRjZk/84+eo0ToE= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.7/go.mod h1:lik3qEJ4TBnQrEKoZnFh8E8nn5oZSebnB/pydq8oQRQ= -github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2 h1:LRM6z+wmXqAgCvuH36RR+Wf8SZZhvOVjt6f5r38V2II= -github.com/aws/aws-sdk-go-v2/service/ecs v1.52.2/go.mod h1:Ghi1OWUv4+VMEULWiHsKH2gNA3KAcMoLWsvU0eRXvIA= +github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0 h1:TCQZX4ztlcWXAcZouKh9qJMcVaH/qTidFTfsvJwUI30= +github.com/aws/aws-sdk-go-v2/service/ecs v1.53.0/go.mod h1:Ghi1OWUv4+VMEULWiHsKH2gNA3KAcMoLWsvU0eRXvIA= github.com/aws/aws-sdk-go-v2/service/efs v1.34.1 h1:y2BaF/VBEQM5Gi27ZOX1jSKRQLNifOfvegkqKKDPNEM= github.com/aws/aws-sdk-go-v2/service/efs v1.34.1/go.mod h1:0c/j249PCFk5d/KHJsBIoCVdnZa9Or71J/fqC/n63BA= -github.com/aws/aws-sdk-go-v2/service/eks v1.53.0 h1:ACTxnLwL6YNmuYbxtp/VR3HGL9SWXU6VZkXPjWST9ZQ= -github.com/aws/aws-sdk-go-v2/service/eks v1.53.0/go.mod h1:ZzOjZXGGUQxOq+T3xmfPLKCZe4OaB5vm1LdGaC8IPn4= +github.com/aws/aws-sdk-go-v2/service/eks v1.54.0 h1:78/Za9/4c5boz78pcKvJV4WfzVHcFwebpfAUzS6XYUg= +github.com/aws/aws-sdk-go-v2/service/eks v1.54.0/go.mod h1:ZzOjZXGGUQxOq+T3xmfPLKCZe4OaB5vm1LdGaC8IPn4= github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1 h1:Dch9DIcyrHf6OTEhgzz7wIFKrHZAWfcZ1BCAlZtwpYo= github.com/aws/aws-sdk-go-v2/service/elasticache v1.44.1/go.mod h1:gzplo968xB24VkeHC4wKfDbSERguKL2xKPL1Csd/mH4= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.7 h1:ieY1UqWTqjb83Rx1KiUO2pxFRdebobkKxHKDXIlIMhM= @@ -1474,16 +1474,16 @@ github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7 h1:YTg3h8OBu4x3UCsu9vKz9VHq github.com/aws/aws-sdk-go-v2/service/glacier v1.26.7/go.mod h1:w/cFjxbAVqNeAMQf31PI9KopvcFYoXdv0oG2Y9wU0uA= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7 h1:TB66P1ES3DvjeR7YNTfO4/4ncB2MiFx0jzazbPisWkw= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.29.7/go.mod h1:geddg2iWFvxpfa7SIoJztvcdP/Prm1xk9W4+IUhGs7Y= -github.com/aws/aws-sdk-go-v2/service/glue v1.103.0 h1:aWkaWcO6AWKOZgnm45es3lL+jZ9tece2kfQ2Na4xoQs= -github.com/aws/aws-sdk-go-v2/service/glue v1.103.0/go.mod h1:ajiRue7mZ0vQjVHQkQG2KBaPHW8lL5GtvmjRTHWDaqk= +github.com/aws/aws-sdk-go-v2/service/glue v1.104.0 h1:H6ZuOpWZpXqLieLZ2shNSJI+deobB1+FKL6plTOaqUo= +github.com/aws/aws-sdk-go-v2/service/glue v1.104.0/go.mod h1:ajiRue7mZ0vQjVHQkQG2KBaPHW8lL5GtvmjRTHWDaqk= github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7 h1:LVJA+YR5tHGo95E8P5W1GFnqrQIiOOagnYCGLExvVr0= github.com/aws/aws-sdk-go-v2/service/grafana v1.26.7/go.mod h1:oEez2RtKrs3oJ6EgbLV0aBC5YJ/bPcMbkGNtsrW1L3Q= github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7 h1:ZYq/OyCCRtS55xvC73U7klRHzWlV4AG0XvG8/jbBH1E= github.com/aws/aws-sdk-go-v2/service/greengrass v1.27.7/go.mod h1:5iOqOd+Xi7tMBd+ucAb95owiLCYfeqxphlblc8EvCJg= github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7 h1:6I620zcBLf791OnuF3hJGj2ft+qLvSsxRerminjOiGY= github.com/aws/aws-sdk-go-v2/service/groundstation v1.31.7/go.mod h1:RPZk76+qDmck0IFAo+ZteQDOKRN3jST4mFsCeicDmOc= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0 h1:eU4Wt4yUuxVfETAfHqkIivj2fmaObjY+1rNRAVp63tQ= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.0/go.mod h1:JMxJFzRnFpi77J2uktvtZh4lcGMJMC9HLE9Tqvf7atA= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1 h1:d1SZI0dUdWVzX5anxfCMBmTcJlxoqkX2DSvHhuzsqeo= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.52.1/go.mod h1:JMxJFzRnFpi77J2uktvtZh4lcGMJMC9HLE9Tqvf7atA= github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7 h1:XuRWGRITuK7WMWKMkog/htDAt/t58wwdTK04oynlPL8= github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.7/go.mod h1:0Ef9fBviMZwF5p9vDNcmAB6hUst2h8aNRnkUhzoE3B0= github.com/aws/aws-sdk-go-v2/service/iam v1.38.2 h1:8iFKuRj/FJipy/aDZ2lbq0DYuEHdrxp0qVsdi+ZEwnE= @@ -1506,10 +1506,10 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70R github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 h1:BbGDtTi0T1DYlmjBiCr/le3wzhA37O8QTC5/Ab8+EXk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6/go.mod h1:hLMJt7Q8ePgViKupeymbqI0la+t9/iYFBjxQCFwuAwI= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2 h1:Dv+q59QjG5FUBRrZGSnu5nouzwPoivj2Z7KH0U0EneU= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.2/go.mod h1:Pnzezn20O/qGSc8S3NVpy879f5w4bWnYW3iGHTUbgBw= -github.com/aws/aws-sdk-go-v2/service/iot v1.61.1 h1:xU86aILQFTU5I35YHw5iOLIbSriLsdmnYBuTst9+5K8= -github.com/aws/aws-sdk-go-v2/service/iot v1.61.1/go.mod h1:2QrSORRSY/NYGcTbUdHIz62SM5RlLCAnBcpcDIjg/Sk= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3 h1:uRN467USr5RaiOgScMKkuqllDptKNHBvIPcOgXQFL2M= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.20.3/go.mod h1:Pnzezn20O/qGSc8S3NVpy879f5w4bWnYW3iGHTUbgBw= +github.com/aws/aws-sdk-go-v2/service/iot v1.62.0 h1:k4eHmwRX+SDJ0dJengn9wZ6xUw0w0nTN6/J6zj/TR48= +github.com/aws/aws-sdk-go-v2/service/iot v1.62.0/go.mod h1:2QrSORRSY/NYGcTbUdHIz62SM5RlLCAnBcpcDIjg/Sk= github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7 h1:Wzu7Zb+Xxekp9ncI9Lqx24b8avRoLh4ZaVjUWda3Po8= github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.26.7/go.mod h1:dT/c5XzdfUmqgbuY2rfoqEoaS4hhhV6bzYKCmHIudsg= github.com/aws/aws-sdk-go-v2/service/iotevents v1.27.7 h1:3+CqncIjYZhQ4dW0MEe3LN48ny4H1OydEIrtN6N/NMM= @@ -1518,8 +1518,8 @@ github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2 h1:9QFYCHXxRywbd/jvx9wtU73u7QT0 github.com/aws/aws-sdk-go-v2/service/ivs v1.42.2/go.mod h1:BwNgy90oNpZ/VrzHTn6y/z2jdsJ2ZK6D5yvvtE5Ft0o= github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7 h1:HlECOFumfIpk5nRnSdJ6F6ney0vxu9JsLe4zifGlswg= github.com/aws/aws-sdk-go-v2/service/ivschat v1.16.7/go.mod h1:C57nohycrCEMovZLg5G75J/DEZka5WSuOJtfaYqIq8s= -github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7 h1:RjCwdphB+wBtT/qQw6e7c6HOZ7ab4WN22Uw8GSmKNb8= -github.com/aws/aws-sdk-go-v2/service/kafka v1.38.7/go.mod h1:6ezJjIOpnDf+Q/BJ2CIITrcdXSvfUS1zwjnEHHPa8oU= +github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8 h1:JtNyNMbRidkQhMY7+ezxSV+l779MoKHpF2O8dhPenH4= +github.com/aws/aws-sdk-go-v2/service/kafka v1.38.8/go.mod h1:6ezJjIOpnDf+Q/BJ2CIITrcdXSvfUS1zwjnEHHPa8oU= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7 h1:OSj7D23vSCmeHSp8IQUuSvc57cUi6FwYQ634FgbMdOY= github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.21.7/go.mod h1:oy7uAjiwfudbkCbOW5nIBNhzPEsQbnbcNO18JgdVqZU= github.com/aws/aws-sdk-go-v2/service/kendra v1.55.0 h1:9I8Wi0EDviprTdQfgI75ax4mL/A9GAef/UqBst4rL2s= @@ -1536,8 +1536,8 @@ github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7 h1:u312E9WSNS3aL0fMkD3 github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.27.7/go.mod h1:pdoRfafdWneitPJSDJEIUH3npcWNF0a9ReMblcQC+hA= github.com/aws/aws-sdk-go-v2/service/kms v1.37.7 h1:dZmNIRtPUvtvUIIDVNpvtnJQ8N8Iqm7SQAxf18htZYw= github.com/aws/aws-sdk-go-v2/service/kms v1.37.7/go.mod h1:vj8PlfJH9mnGeIzd6uMLPi5VgiqzGG7AZoe1kf1uTXM= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0 h1:1tONU+X0IWsiNJIXZGCHQC25GVGbuTcH2EufcOH4gJA= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.0/go.mod h1:TrZ6XeQ86aBjOsy+ae7RKlYWh3TQ53QQcA6YhtFadYk= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1 h1:5sp+bK2sVPXf7KifZ4B+0GPKt5ckqraD8YbUaRk//CY= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.39.1/go.mod h1:TrZ6XeQ86aBjOsy+ae7RKlYWh3TQ53QQcA6YhtFadYk= github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1 h1:q1NrvoJiz0rm9ayKOJ9wsMGmStK6rZSY36BDICMrcuY= github.com/aws/aws-sdk-go-v2/service/lambda v1.69.1/go.mod h1:hDj7He9kbR9T5zugnS+T21l4z6do4SEGuno/BpJLpA0= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.8.7 h1:nMYxTZs0WjVLEyTEqRtD6WR83nMqF65uPHSv43SrFDQ= @@ -1554,16 +1554,16 @@ github.com/aws/aws-sdk-go-v2/service/location v1.42.7 h1:yLpR7rDAh1mSazJyYc2bNzV github.com/aws/aws-sdk-go-v2/service/location v1.42.7/go.mod h1:lSuujyYUNaI4cHRzTha04mEVGSpIW0PM9AiTemTvKDY= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7 h1:wyvJFktMUDLYX7q8LpfuvDS50sIR2QrcK2OPaoJZL+Q= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.7/go.mod h1:xVdP3fbrhDfhVNugkmC2aY95Ea0od8j0cUUxoRJ+UP8= -github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5 h1:X6iVlWx3rVolup+wnlNcyylpUIoBbWWhwmvjM+4sC2o= -github.com/aws/aws-sdk-go-v2/service/m2 v1.18.5/go.mod h1:XXdV0w3yWrEmBvE4iZVAwWEPtQD+UrDIc3j/ETsI5+4= +github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0 h1:3gXxbz0y85XUK+5fY3reEO2jgZ7DdCnnaNqje+LSTQA= +github.com/aws/aws-sdk-go-v2/service/m2 v1.19.0/go.mod h1:XXdV0w3yWrEmBvE4iZVAwWEPtQD+UrDIc3j/ETsI5+4= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7 h1:mlaPITmZnYi8bm20Ql8tTPrSdLZc6LwdH9RYDuAgf3o= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.7/go.mod h1:wya8VTBSC9uglnFujLKT/21M03qc+tnTUHV3fgW6aFM= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7 h1:8fTYn2M9KBwvo/MN4S5V5HJkl76MCC4dCZGKK+9y11E= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.7/go.mod h1:NyaKp3HdG4vD6gNfnIwGsl68/4vneSu1cok7yZAOB/U= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0 h1:uF6NHhbMcpWPb04VCN+77kt4l3J8VdUUSP4uhy30Eqg= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.36.0/go.mod h1:NyaKp3HdG4vD6gNfnIwGsl68/4vneSu1cok7yZAOB/U= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1 h1:O0PufOavkptAta6HE7q128zvKV4jcZ5PbyyIRbUsWI8= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.63.1/go.mod h1:4B8R+NlIvQUF77Rpqe2r4xQceaUVXCFYfbJ2ASlocbc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0 h1:ruaE4sWsaXFjxpafxUDrPVXhxIK0V2gMAfpPpRZ0R1M= -github.com/aws/aws-sdk-go-v2/service/medialive v1.63.0/go.mod h1:3941uJpLJirB+Xc5CM5rsVMeQuNkp0UMrdswdqvOelQ= +github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0 h1:ahj6vblksLY3nA2wPp9PIM8Z4jVvr3ePQKH1De5I2fg= +github.com/aws/aws-sdk-go-v2/service/medialive v1.64.0/go.mod h1:3941uJpLJirB+Xc5CM5rsVMeQuNkp0UMrdswdqvOelQ= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7 h1:NEDXmP4JZxYVPcU+rvIcLUPM6kEhCS2lw09weM1a0WI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.34.7/go.mod h1:E4wTOblO64Lm0JHaNwxx1klyfyQ3rKje2J0CwQ6Q4XE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.20.1 h1:F+do5xWXqiQhY4sVpYwzVxrER5h6IKfedgFJVuAfpF0= @@ -1572,18 +1572,20 @@ github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7 h1:OK3XNax+Pg6cKlgOSOs3R github.com/aws/aws-sdk-go-v2/service/mediastore v1.24.7/go.mod h1:4Cz00WLWNC0c79Y1Rks4MH+ezS5zXGerYY9DryVWRNQ= github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0 h1:7HzWnEIEXis3QZCiGpI0FwM4CzxKr82dc18cTqE+Ws8= github.com/aws/aws-sdk-go-v2/service/memorydb v1.25.0/go.mod h1:nv31Ugm3PeTj/1NoUT1wlJpSttTV9kpANgSGMCOdTYg= +github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7 h1:bqyymOULuOZX/dfbQymKhPDJ25X9w+vmGs+ZcNtTCB4= +github.com/aws/aws-sdk-go-v2/service/mgn v1.32.7/go.mod h1:1FEu+ENxyHxLkiMtgvcDscPNRHEkj+p9cTPLRqL1A64= github.com/aws/aws-sdk-go-v2/service/mq v1.27.8 h1:xGcrYXOE7mCt14ToL/ZibXsBW0DhReBuollS35Ci7pQ= github.com/aws/aws-sdk-go-v2/service/mq v1.27.8/go.mod h1:EjYQlgBAl1BVTGEpjQSTTn8q2IaBYmKZAMGorq+J8N8= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1 h1:Vy9YZcV16Fpo0gFJBTKnEoDiKsREAIwPxvZR51DDlXY= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.1/go.mod h1:jMA6WUWuLnmu8HD8/bbhF+UsqZZDD21Sy50KeCYk4Us= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2 h1:qCqdF8H1+aemTiY4A1vNygeiAgqKGl3nNnsztBPa36w= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.33.2/go.mod h1:jMA6WUWuLnmu8HD8/bbhF+UsqZZDD21Sy50KeCYk4Us= github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6 h1:4XpR4uxdYixFnQecBQ4bj+OVTTIllaVLIdNZT9PVGXU= github.com/aws/aws-sdk-go-v2/service/neptune v1.35.6/go.mod h1:JeJv7jf5G41lHVNiZ+24s7Frzg8k9xYCGborBe0FdNw= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1 h1:2jejkFcjwRmm2w7h5em/psgHikBl+uc8F9qoFdyS5F8= github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.15.1/go.mod h1:GpKZo1Lgbubeuqk2To4Tr1E5DBHj2mGrl2tuhysti2I= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4 h1:kkkVxybBMwof8LX4KwP46syMXHwYAQP90nsEPA5cKiU= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.4/go.mod h1:b3UwYXVSlxwwRl8frZR9eXRc3rqisD4YyHv+rZ1Xmyc= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1 h1:xc15Eon+HAbIUBF+58ow0ZxpJ+ZRiQgY0Lu7UmkAe1A= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.1/go.mod h1:EWCvUfz0rkfBfd/2s6Jj8DBT/PilQ/ClD/EByti+JKA= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5 h1:Vn3W94E0lKKVu8vgSZmnVoP70cfsIRrguopbSC0L4DE= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.44.5/go.mod h1:b3UwYXVSlxwwRl8frZR9eXRc3rqisD4YyHv+rZ1Xmyc= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2 h1:wcJGFyxaX1Msm6c2glpFYIXr9/+Aq5GP1gLX7NBPoNw= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.32.2/go.mod h1:EWCvUfz0rkfBfd/2s6Jj8DBT/PilQ/ClD/EByti+JKA= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7 h1:jq2n7Z+SUcKFK8zR4lmELte9rgX59HtBqQUBg2DhTYU= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.7.7/go.mod h1:Sl6QugaUidIUBpGqzz5EHcwx6cT918H/mnQKNHTyAdc= github.com/aws/aws-sdk-go-v2/service/oam v1.15.7 h1:gy/9lznIWLyAxokvjktoXNHpmLz8f7Fl/jUrdXdWbGk= @@ -1594,8 +1596,8 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4 h1:+igfh7CHy9+ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.17.4/go.mod h1:pyPPjpS52Akb5g9Y1Sy1eNqWud1ZDDjhe/cLrBfrvyo= github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7 h1:JHabLpXH1A2IkaLYccQwC2TBnKLm2b3uSKvAu9N39YE= github.com/aws/aws-sdk-go-v2/service/opsworks v1.26.7/go.mod h1:ddJLpQoIwK18NaELU6CxxgLnzYdAyzfGEGBwudjbJgo= -github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0 h1:CVHfN8ZVvWzDkAf/Qj+GO53dD5NWVyK16O8pYg/wp3k= -github.com/aws/aws-sdk-go-v2/service/organizations v1.36.0/go.mod h1:SVY+doFrL3KTvVMWzFLKvD7KYQ6GQfwNRPSQS7eA3cA= +github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1 h1:hwEq/kMSSM22O+zD8Di/lmyU/YVT4EPybIgso87KbYo= +github.com/aws/aws-sdk-go-v2/service/organizations v1.36.1/go.mod h1:SVY+doFrL3KTvVMWzFLKvD7KYQ6GQfwNRPSQS7eA3cA= github.com/aws/aws-sdk-go-v2/service/osis v1.14.7 h1:K37+ch2PxHJVWg1NRfVebstqZvicwfPPHQuXmwznbqw= github.com/aws/aws-sdk-go-v2/service/osis v1.14.7/go.mod h1:TRjW1OYREjDpa4Z8pn5Axm6SFPdP2FVcy+jX5eyX3XY= github.com/aws/aws-sdk-go-v2/service/outposts v1.47.2 h1:OpS3l/leIv8pbK1zaeoZ5WzzTojbLN8zdK8inc37bMM= @@ -1620,14 +1622,14 @@ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0 h1:Kso/qtJxdA8weHZiidLoeQ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.19.0/go.mod h1:cmW8VmRWKpSEhqy70H3+QCFfHcTguZMZphBIdqcWsIo= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7 h1:TWJzwB7S/SBBVitz/0HtdB7pqyf1iv9OUCQ6qeYob5Q= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.7/go.mod h1:8AyevnOHnUsSNTlqH723oxU2hGgIdhVsUjtDS6JIi8w= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0 h1:U/ktIgrHh0l1Azkhl8sNxNvknhz1Ql6PtEgluc9R8GU= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.81.0/go.mod h1:GE3TPXNfQ2OETAUjwhnFl3CYWqzF9SPB1sJjeUSOkJA= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0 h1:uQXH8RFPBteSygrsYvNumyFSN8USfdKSfpo8sIGwbdM= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.82.0/go.mod h1:GE3TPXNfQ2OETAUjwhnFl3CYWqzF9SPB1sJjeUSOkJA= github.com/aws/aws-sdk-go-v2/service/ram v1.29.7 h1:c6XYrBzh3J8J5Vaxcj4fbfuzDtKv7Blg/bYmd12PG44= github.com/aws/aws-sdk-go-v2/service/ram v1.29.7/go.mod h1:Znaic26hqqKZ3mmG+UA8aLdnWrOYmkdHUd5KoT/DzGY= github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1 h1:4w3T6RGy/jrGrup/o9WwtVXEWbwbL/up/+dPaGR5IfU= github.com/aws/aws-sdk-go-v2/service/rbin v1.21.1/go.mod h1:R1qdIYNn+b3mrEkq9r7jM7FVpgGDeOkeYVr3Poc+95g= -github.com/aws/aws-sdk-go-v2/service/rds v1.92.0 h1:W0gUYAjO24u/M6tpR041wMHJWGzleOhxtCnNLImdrZs= -github.com/aws/aws-sdk-go-v2/service/rds v1.92.0/go.mod h1:ADD2uROOoEIXjbjDPEvDDZWnGmfKFYMddgKwG5RlBGw= +github.com/aws/aws-sdk-go-v2/service/rds v1.93.0 h1:jIqOqvzMvmcHgwjPwHvxPCiLV1P2+hPoBwEH8wkfbZ4= +github.com/aws/aws-sdk-go-v2/service/rds v1.93.0/go.mod h1:ADD2uROOoEIXjbjDPEvDDZWnGmfKFYMddgKwG5RlBGw= github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0 h1:4/hmROBioc89sKlMVjHgOaH92zAkrAAMZR3BIvYwyD0= github.com/aws/aws-sdk-go-v2/service/redshift v1.53.0/go.mod h1:UydVhUJOB/DaCJWiaBkPlvuzvWVcUlgbS2Bxn33bcKI= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.31.4 h1:A0vlEMhhjNwiDuSeyqCV5E+nKi71xB7JEZ3zmSk9C2o= @@ -1636,8 +1638,8 @@ github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0 h1:g72Z/eRmA5dK2 github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.25.0/go.mod h1:HR4+m/4+W7RiaFMme0p6Y5dV7bDKhAIn8UiiZfWJVXg= github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8 h1:K21+kYo7APUzqhc6pvCxHWAGxdyaxJqnEfBSySbFlGM= github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.8/go.mod h1:LIrvj+qa6+K+FfiOFv/DXgmBxDU/LCZebFYulAITgps= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1 h1:NBrNat0V6a0IlxwURP/kixLzvW7sSYy4/PAqe/OwB5Q= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.28.1/go.mod h1:6M1A4+fuybF+twN7Ch53fSEb0jdQAnDl7SjEQOdJQrE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0 h1:/5/8lHaUP02qAlDUnr3mDMxnFvtOxx7OvZkwvt0JsIE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.29.0/go.mod h1:6M1A4+fuybF+twN7Ch53fSEb0jdQAnDl7SjEQOdJQrE= github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2 h1:vqsk41T4OS50+uU4oYh6YWXjX+wMV8j6fbxMD+xkHXg= github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.16.2/go.mod h1:TsghsVk15IIlBkv5onzATu0Efu4xd8Xqh1QsQRCFoQU= github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.27.7 h1:gj5YZ+wn0LpNlqapkn6mEc3Af3w3G79RPh2eT7Os/zc= @@ -1648,8 +1650,8 @@ github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7 h1:M49WXIllz0oLeFxvvE github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.16.7/go.mod h1:cb8Aygy/+Ap36c0StMfVnUBCLked9v65w7i/ShJLTLs= github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3 h1:pDBrvz7CMK381q5U+nPqtSQZZid5z1XH8lsI6kHNcSY= github.com/aws/aws-sdk-go-v2/service/route53 v1.46.3/go.mod h1:rDMeB13C/RS0/zw68RQD4LLiWChf5tZBKjEQmjtHa/c= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7 h1:cUSak+oDWuKhl3doMhJkm8adfJcP6wRz9Alh9HxDQJI= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.7/go.mod h1:c4Zcr9bz35UJ07RC3cR/zBdpFn7ZjZqy/ow+oN0+NEo= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0 h1:D7xRgsQnKiC/BQOVfG9DrsdRo2PIPwCwgHb6EpKLjFQ= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.28.0/go.mod h1:c4Zcr9bz35UJ07RC3cR/zBdpFn7ZjZqy/ow+oN0+NEo= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7 h1:6SZ8kRmQE278KIJXq4cLdlOgO7nvlxgn6BNZRIIuyFQ= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.4.7/go.mod h1:RFwYVDBuEI0U+vxTP5m5lGgGe9Wo2kagynHfxTl2fWU= github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.25.7 h1:/NwKq9S1DBMAIYNamv9kBz0fwuqnILphCnilPMO48Yc= @@ -1670,8 +1672,8 @@ github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0 h1:akXaBXvSIT3ca7Ojnc1TX+2p github.com/aws/aws-sdk-go-v2/service/s3tables v1.0.0/go.mod h1:X85zeZUOEsqLnH/CShIydM9ANVMwXHL1A/pvTMSQw6U= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0 h1:keGexhxWOl6TmtE3QI+ofpgFIgdMLc3lfkwgjuSXe1o= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.169.0/go.mod h1:LoIh7abCP1rQng1kxJVJOTux55TaYN2tVN7G+zNbhus= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7 h1:lRA+BvESWVoldCxaw3SG9UssITkVref8rlVy5xCsh0A= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.7/go.mod h1:hCwaxwoPRJmODF1jv6HvbUyT9q7Ak43LesgkvNvZ0PI= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8 h1:/3jd7Xm88RYeYpfInSUMCLF+zVgfYK8N5xWPlj05vS4= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.12.8/go.mod h1:hCwaxwoPRJmODF1jv6HvbUyT9q7Ak43LesgkvNvZ0PI= github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8 h1:9TVRGRx70yb6sa0QHQiASkQJvi/7yyHjSgacjqtuoGs= github.com/aws/aws-sdk-go-v2/service/schemas v1.28.8/go.mod h1:e2l9QQlF3fXpXQp/eOaiAY8eVIk/JZX4Ood3FFMSGa8= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.7 h1:Nyfbgei75bohfmZNxgN27i528dGYVzqWJGlAO6lzXy8= @@ -1686,8 +1688,8 @@ github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7 h1:5wifyBACWZHZQ2Qgf github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.7/go.mod h1:yKI83wCV2CPuFQC8xrt8pzAiemWUsz7NKFZEOJBO+Og= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7 h1:uUMAVnxMbdZNkIYjSa0x33AQQ7d/FctnXacslwqHV20= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.30.7/go.mod h1:6lOlu/wGdOPV5TwZ4gPZWDb0y1PtzN+jaUWL++ocCx8= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7 h1:GfXWwM9/iEJVcWQaMu22YzBeGQnY6zjiZD556awNJBA= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.33.7/go.mod h1:YMM+e0OfZQVBpTJs+WNZWP/hdodeWnepXgancR5NFFw= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0 h1:e1QcVk0DcUPLPUjnBC3A+Z5kvDc0Sqp3jWQvhjGEwSE= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.34.0/go.mod h1:YMM+e0OfZQVBpTJs+WNZWP/hdodeWnepXgancR5NFFw= github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7 h1:MpCqFu4StEaeuKFfcfHBr+a6I2ZG+GgiNZqKa5gBHI8= github.com/aws/aws-sdk-go-v2/service/servicequotas v1.25.7/go.mod h1:Idae0gtkk4euj6ncytZGgDkkyZKmkFasf1mbZZ0RA6s= github.com/aws/aws-sdk-go-v2/service/ses v1.29.1 h1:2e4bmSER1FF330Xu8p0nwnV4Ctdb0VzLQPUV15xs3iY= @@ -1726,22 +1728,24 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HS github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8= github.com/aws/aws-sdk-go-v2/service/swf v1.27.8 h1:uOj2sgPJAhL/SGgWo+eXS6BwzSvf1b1aU7j3EXjnk88= github.com/aws/aws-sdk-go-v2/service/swf v1.27.8/go.mod h1:AvLsUcEcGmH2QWmwosGAMkBqRrsI0Jr2x92clBtul9s= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2 h1:k/jiEnfNxjWewwhKbdqkvrOo/AIyQTPgaAxTy/nqYJU= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.30.2/go.mod h1:S/mI+GqL6A6JNbKqu0M9qKop3LOE6X96OzXdJX0rO6w= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0 h1:1xNsirfhnLd8DKsfPWrJK5T+KCV4CaYH8SYzgiklKWM= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.31.0/go.mod h1:S/mI+GqL6A6JNbKqu0M9qKop3LOE6X96OzXdJX0rO6w= github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1 h1:eJp5OnMaO41jYGwemZSOtmWf2g/TSAYfWEQDfZ6yBP4= github.com/aws/aws-sdk-go-v2/service/taxsettings v1.7.1/go.mod h1:izz7C90kWSbYfURLt+atG6pdCvOP3AFjGEznRf0YgGw= github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0 h1:Cqjh7UV5nW8VXuvpwtlpboGn7az0PjpQuaWdQbBMgzY= github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.7.0/go.mod h1:oIpMQLOrjkZVCZl0ff5cDgE/zZuFE4PwVb61+2fkELk= +github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1 h1:nfS8q82YuHG8pks28bGSAqy9R44XBLM72jcKDqRG7ak= +github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.29.1/go.mod h1:PJ9MdxcmYoM5bLKzp92fdGooNWHTDMhuC4TGJ3peY7c= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8 h1:chzp64fl/hknlRR9jlstQDB4bYaf848v7KmzUB13omA= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.8/go.mod h1:6r72p62vXJL+0VTgk9rVV7i9+C0qTcx+HuL56XT9Pus= github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7 h1:KJ5CkGw76hEoR66sJRZFgiRGxtybWGuQgvnJ+Q6qTtA= github.com/aws/aws-sdk-go-v2/service/transcribe v1.41.7/go.mod h1:BwUrZHaN6ruqmc8+b12wWhJ6fHqLrkZ0Z214feUqWWM= -github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0 h1:IA34IDWH2ooVUIPOidlQL1wZLej8QbcaZsYVgeRiA6w= -github.com/aws/aws-sdk-go-v2/service/transfer v1.54.0/go.mod h1:UV0UI3xdWUkyarrq5gViMKtXx4EWBKQsSpPxc+rdJCA= +github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0 h1:2JFcCNsaT1ykArnJ7B6fFjE4H4OJtT38vHpsufjLvoY= +github.com/aws/aws-sdk-go-v2/service/transfer v1.55.0/go.mod h1:UV0UI3xdWUkyarrq5gViMKtXx4EWBKQsSpPxc+rdJCA= github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3 h1:3HJY3Fym+WfG/BQmrrGq5hS80th6Vlx3VM2ZyaH41Lo= github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.20.3/go.mod h1:myoi8VQCWyHnkfxRjkM1H5lFQilgGXbU2ulwAVqxeow= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1 h1:i2NuSEXw9cKW4zCT57AsL6v4VnX86dsxz4d9GQc4FwU= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.1/go.mod h1:LLTXSn+ChGS/Ejt+akSlR0QBJ2VJVibiKQfp/IovK7Q= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2 h1:AccQsc7IIvDFoQ+ufWB04NQ1Ebgzf6rNAbN7fxkt57g= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.13.2/go.mod h1:LLTXSn+ChGS/Ejt+akSlR0QBJ2VJVibiKQfp/IovK7Q= github.com/aws/aws-sdk-go-v2/service/waf v1.25.7 h1:QatDy5lb2iXs9GPxuPSRDogX2HesmmUXu0GCDCQ7exQ= github.com/aws/aws-sdk-go-v2/service/waf v1.25.7/go.mod h1:Jx83wxDXt4tq2UEhy4ODhqgpb6NBkQRs4TSkcHfBPcg= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.7 h1:9V+YZqYy+FvDzZF16xXE7IWYlNWJKurMay7HC+ZGm0A= @@ -2162,8 +2166,8 @@ github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= github.com/hashicorp/terraform-json v0.19.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= -github.com/hashicorp/terraform-json v0.23.0 h1:sniCkExU4iKtTADReHzACkk8fnpQXrdD2xoR+lppBkI= -github.com/hashicorp/terraform-json v0.23.0/go.mod h1:MHdXbBAbSg0GvzuWazEGKAn/cyNfIB7mN6y7KJN6y2c= +github.com/hashicorp/terraform-json v0.24.0 h1:rUiyF+x1kYawXeRth6fKFm/MdfBS6+lW4NbeATsYz8Q= +github.com/hashicorp/terraform-json v0.24.0/go.mod h1:Nfj5ubo9xbu9uiAoZVBsNOjvNKB66Oyrvtit74kC7ow= github.com/hashicorp/terraform-plugin-framework v1.13.0 h1:8OTG4+oZUfKgnfTdPTJwZ532Bh2BobF4H+yBiYJ/scw= github.com/hashicorp/terraform-plugin-framework v1.13.0/go.mod h1:j64rwMGpgM3NYXTKuxrCnyubQb/4VKldEKlcG8cvmjU= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 h1:SJXL5FfJJm17554Kpt9jFXngdM6fXbnUnZ6iT2IeiYA= @@ -2172,8 +2176,8 @@ 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-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0 h1:RXMmu7JgpFjnI1a5QjMCBb11usrW2OtAG+iOTIj5c9Y= -github.com/hashicorp/terraform-plugin-framework-validators v0.15.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= +github.com/hashicorp/terraform-plugin-framework-validators v0.16.0 h1:O9QqGoYDzQT7lwTXUsZEtgabeWW96zUBh47Smn2lkFA= +github.com/hashicorp/terraform-plugin-framework-validators v0.16.0/go.mod h1:Bh89/hNmqsEWug4/XWKYBwtnw3tbz5BAy1L1OgvbIaY= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks= github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw= diff --git a/provider/resources.go b/provider/resources.go index 748befb7f44..cd33b0447a0 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -1854,6 +1854,9 @@ compatibility shim in favor of the new "name" field.`) Tok: awsResource(elasticacheMod, "ReplicationGroup"), Fields: map[string]*tfbridge.SchemaInfo{ "replication_group_id": tfbridge.AutoNameTransform("replicationGroupId", 40, strings.ToLower), + "at_rest_encryption_enabled": { + Type: "boolean", + }, "auto_minor_version_upgrade": { Type: "boolean", }, @@ -6013,4 +6016,10 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { ) (resource.ID, error) { return attr(state, "arn"), nil } + + prov.Resources["aws_memorydb_multi_region_cluster"].ComputeID = func( + ctx context.Context, state resource.PropertyMap, + ) (resource.ID, error) { + return attr(state, "multiRegionClusterName"), nil + } } diff --git a/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationArgs.cs index 0c421a1328d..28c91b93f9e 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Alb.Inputs public sealed class ListenerMutualAuthenticationArgs : global::Pulumi.ResourceArgs { + /// + /// Valid values are `off` and `on`. + /// + [Input("advertiseTrustStoreCaNames")] + public Input? AdvertiseTrustStoreCaNames { get; set; } + /// /// Whether client certificate expiry is ignored. Default is `false`. /// diff --git a/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationGetArgs.cs b/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationGetArgs.cs index 9cc7b25ab4d..65be222dbce 100644 --- a/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationGetArgs.cs +++ b/sdk/dotnet/Alb/Inputs/ListenerMutualAuthenticationGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Alb.Inputs public sealed class ListenerMutualAuthenticationGetArgs : global::Pulumi.ResourceArgs { + /// + /// Valid values are `off` and `on`. + /// + [Input("advertiseTrustStoreCaNames")] + public Input? AdvertiseTrustStoreCaNames { get; set; } + /// /// Whether client certificate expiry is ignored. Default is `false`. /// diff --git a/sdk/dotnet/Alb/Outputs/ListenerMutualAuthentication.cs b/sdk/dotnet/Alb/Outputs/ListenerMutualAuthentication.cs index c2cd0be8df9..4af580cdc6f 100644 --- a/sdk/dotnet/Alb/Outputs/ListenerMutualAuthentication.cs +++ b/sdk/dotnet/Alb/Outputs/ListenerMutualAuthentication.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.Alb.Outputs [OutputType] public sealed class ListenerMutualAuthentication { + /// + /// Valid values are `off` and `on`. + /// + public readonly string? AdvertiseTrustStoreCaNames; /// /// Whether client certificate expiry is ignored. Default is `false`. /// @@ -28,12 +32,15 @@ public sealed class ListenerMutualAuthentication [OutputConstructor] private ListenerMutualAuthentication( + string? advertiseTrustStoreCaNames, + bool? ignoreClientCertificateExpiry, string mode, string? trustStoreArn) { + AdvertiseTrustStoreCaNames = advertiseTrustStoreCaNames; IgnoreClientCertificateExpiry = ignoreClientCertificateExpiry; Mode = mode; TrustStoreArn = trustStoreArn; diff --git a/sdk/dotnet/Amplify/DomainAssociation.cs b/sdk/dotnet/Amplify/DomainAssociation.cs index c36aab8aba7..d7b4aa6a35c 100644 --- a/sdk/dotnet/Amplify/DomainAssociation.cs +++ b/sdk/dotnet/Amplify/DomainAssociation.cs @@ -91,7 +91,7 @@ public partial class DomainAssociation : global::Pulumi.CustomResource /// The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. /// [Output("certificateSettings")] - public Output CertificateSettings { get; private set; } = null!; + public Output CertificateSettings { get; private set; } = null!; /// /// DNS records for certificate verification in a space-delimited format (`<record> CNAME <target>`). diff --git a/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsArgs.cs b/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsArgs.cs index 6dc3e13e316..08e501ef4c8 100644 --- a/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsArgs.cs +++ b/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsArgs.cs @@ -20,12 +20,14 @@ public sealed class DomainAssociationCertificateSettingsArgs : global::Pulumi.Re /// /// The Amazon resource name (ARN) for the custom certificate. + /// Required when `type` is `CUSTOM`. /// [Input("customCertificateArn")] public Input? CustomCertificateArn { get; set; } /// - /// The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + /// The certificate type. + /// Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsGetArgs.cs b/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsGetArgs.cs index 4f6b37cfee7..e3fdd8b5865 100644 --- a/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsGetArgs.cs +++ b/sdk/dotnet/Amplify/Inputs/DomainAssociationCertificateSettingsGetArgs.cs @@ -20,12 +20,14 @@ public sealed class DomainAssociationCertificateSettingsGetArgs : global::Pulumi /// /// The Amazon resource name (ARN) for the custom certificate. + /// Required when `type` is `CUSTOM`. /// [Input("customCertificateArn")] public Input? CustomCertificateArn { get; set; } /// - /// The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + /// The certificate type. + /// Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Amplify/Outputs/DomainAssociationCertificateSettings.cs b/sdk/dotnet/Amplify/Outputs/DomainAssociationCertificateSettings.cs index b9400b25fe6..11b76117a9c 100644 --- a/sdk/dotnet/Amplify/Outputs/DomainAssociationCertificateSettings.cs +++ b/sdk/dotnet/Amplify/Outputs/DomainAssociationCertificateSettings.cs @@ -19,10 +19,12 @@ public sealed class DomainAssociationCertificateSettings public readonly string? CertificateVerificationDnsRecord; /// /// The Amazon resource name (ARN) for the custom certificate. + /// Required when `type` is `CUSTOM`. /// public readonly string? CustomCertificateArn; /// - /// The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + /// The certificate type. + /// Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. /// public readonly string Type; diff --git a/sdk/dotnet/ApiGateway/DomainNameAccessAssociation.cs b/sdk/dotnet/ApiGateway/DomainNameAccessAssociation.cs new file mode 100644 index 00000000000..4841a5e90fa --- /dev/null +++ b/sdk/dotnet/ApiGateway/DomainNameAccessAssociation.cs @@ -0,0 +1,220 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ApiGateway +{ + /// + /// Creates a domain name access association resource between an access association source and a private custom domain name. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.ApiGateway.DomainNameAccessAssociation("example", new() + /// { + /// AccessAssociationSource = exampleAwsVpcEndpoint.Id, + /// AccessAssociationSourceType = "VPCE", + /// DomainNameArn = exampleAwsApiGatewayDomainName.DomainNameArn, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: + /// + /// ```sh + /// $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 + /// ``` + /// + [AwsResourceType("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation")] + public partial class DomainNameAccessAssociation : global::Pulumi.CustomResource + { + /// + /// The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + /// + [Output("accessAssociationSource")] + public Output AccessAssociationSource { get; private set; } = null!; + + /// + /// The type of the domain name access association source. Valid values are `VPCE`. + /// + [Output("accessAssociationSourceType")] + public Output AccessAssociationSourceType { get; private set; } = null!; + + /// + /// ARN of the domain name access association. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The ARN of the domain name. + /// + [Output("domainNameArn")] + public Output DomainNameArn { get; private set; } = null!; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + + /// + /// Create a DomainNameAccessAssociation resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DomainNameAccessAssociation(string name, DomainNameAccessAssociationArgs args, CustomResourceOptions? options = null) + : base("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, args ?? new DomainNameAccessAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private DomainNameAccessAssociation(string name, Input id, DomainNameAccessAssociationState? state = null, CustomResourceOptions? options = null) + : base("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DomainNameAccessAssociation resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static DomainNameAccessAssociation Get(string name, Input id, DomainNameAccessAssociationState? state = null, CustomResourceOptions? options = null) + { + return new DomainNameAccessAssociation(name, id, state, options); + } + } + + public sealed class DomainNameAccessAssociationArgs : global::Pulumi.ResourceArgs + { + /// + /// The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + /// + [Input("accessAssociationSource", required: true)] + public Input AccessAssociationSource { get; set; } = null!; + + /// + /// The type of the domain name access association source. Valid values are `VPCE`. + /// + [Input("accessAssociationSourceType", required: true)] + public Input AccessAssociationSourceType { get; set; } = null!; + + /// + /// The ARN of the domain name. + /// + [Input("domainNameArn", required: true)] + public Input DomainNameArn { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public DomainNameAccessAssociationArgs() + { + } + public static new DomainNameAccessAssociationArgs Empty => new DomainNameAccessAssociationArgs(); + } + + public sealed class DomainNameAccessAssociationState : global::Pulumi.ResourceArgs + { + /// + /// The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + /// + [Input("accessAssociationSource")] + public Input? AccessAssociationSource { get; set; } + + /// + /// The type of the domain name access association source. Valid values are `VPCE`. + /// + [Input("accessAssociationSourceType")] + public Input? AccessAssociationSourceType { get; set; } + + /// + /// ARN of the domain name access association. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The ARN of the domain name. + /// + [Input("domainNameArn")] + public Input? DomainNameArn { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + public DomainNameAccessAssociationState() + { + } + public static new DomainNameAccessAssociationState Empty => new DomainNameAccessAssociationState(); + } +} diff --git a/sdk/dotnet/AppStream/Inputs/StackUserSettingArgs.cs b/sdk/dotnet/AppStream/Inputs/StackUserSettingArgs.cs index 8152fd0bf40..e78ddd528dc 100644 --- a/sdk/dotnet/AppStream/Inputs/StackUserSettingArgs.cs +++ b/sdk/dotnet/AppStream/Inputs/StackUserSettingArgs.cs @@ -14,7 +14,7 @@ public sealed class StackUserSettingArgs : global::Pulumi.ResourceArgs { /// /// Action that is enabled or disabled. - /// Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + /// Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. /// [Input("action", required: true)] public Input Action { get; set; } = null!; diff --git a/sdk/dotnet/AppStream/Inputs/StackUserSettingGetArgs.cs b/sdk/dotnet/AppStream/Inputs/StackUserSettingGetArgs.cs index cd964027b03..2b18ad0917f 100644 --- a/sdk/dotnet/AppStream/Inputs/StackUserSettingGetArgs.cs +++ b/sdk/dotnet/AppStream/Inputs/StackUserSettingGetArgs.cs @@ -14,7 +14,7 @@ public sealed class StackUserSettingGetArgs : global::Pulumi.ResourceArgs { /// /// Action that is enabled or disabled. - /// Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + /// Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. /// [Input("action", required: true)] public Input Action { get; set; } = null!; diff --git a/sdk/dotnet/AppStream/Outputs/StackUserSetting.cs b/sdk/dotnet/AppStream/Outputs/StackUserSetting.cs index 5f753d4efab..bed1a4dda9a 100644 --- a/sdk/dotnet/AppStream/Outputs/StackUserSetting.cs +++ b/sdk/dotnet/AppStream/Outputs/StackUserSetting.cs @@ -15,7 +15,7 @@ public sealed class StackUserSetting { /// /// Action that is enabled or disabled. - /// Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + /// Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. /// public readonly string Action; /// diff --git a/sdk/dotnet/AppStream/Stack.cs b/sdk/dotnet/AppStream/Stack.cs index 8fc5054139a..c150da693cf 100644 --- a/sdk/dotnet/AppStream/Stack.cs +++ b/sdk/dotnet/AppStream/Stack.cs @@ -40,6 +40,11 @@ namespace Pulumi.Aws.AppStream /// { /// new Aws.AppStream.Inputs.StackUserSettingArgs /// { + /// Action = "AUTO_TIME_ZONE_REDIRECTION", + /// Permission = "DISABLED", + /// }, + /// new Aws.AppStream.Inputs.StackUserSettingArgs + /// { /// Action = "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", /// Permission = "ENABLED", /// }, diff --git a/sdk/dotnet/AutoScaling/Group.cs b/sdk/dotnet/AutoScaling/Group.cs index 4b64d6f9ffa..62d5227b840 100644 --- a/sdk/dotnet/AutoScaling/Group.cs +++ b/sdk/dotnet/AutoScaling/Group.cs @@ -650,6 +650,12 @@ public partial class Group : global::Pulumi.CustomResource [Output("arn")] public Output Arn { get; private set; } = null!; + /// + /// The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + /// + [Output("availabilityZoneDistribution")] + public Output AvailabilityZoneDistribution { get; private set; } = null!; + /// /// A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. /// @@ -976,6 +982,12 @@ public static Group Get(string name, Input id, GroupState? state = null, public sealed class GroupArgs : global::Pulumi.ResourceArgs { + /// + /// The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + /// + [Input("availabilityZoneDistribution")] + public Input? AvailabilityZoneDistribution { get; set; } + [Input("availabilityZones")] private InputList? _availabilityZones; @@ -1318,6 +1330,12 @@ public sealed class GroupState : global::Pulumi.ResourceArgs [Input("arn")] public Input? Arn { get; set; } + /// + /// The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + /// + [Input("availabilityZoneDistribution")] + public Input? AvailabilityZoneDistribution { get; set; } + [Input("availabilityZones")] private InputList? _availabilityZones; diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionArgs.cs new file mode 100644 index 00000000000..b04f277a41a --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.AutoScaling.Inputs +{ + + public sealed class GroupAvailabilityZoneDistributionArgs : global::Pulumi.ResourceArgs + { + /// + /// The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + /// + [Input("capacityDistributionStrategy")] + public Input? CapacityDistributionStrategy { get; set; } + + public GroupAvailabilityZoneDistributionArgs() + { + } + public static new GroupAvailabilityZoneDistributionArgs Empty => new GroupAvailabilityZoneDistributionArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionGetArgs.cs new file mode 100644 index 00000000000..54221db2790 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/GroupAvailabilityZoneDistributionGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.AutoScaling.Inputs +{ + + public sealed class GroupAvailabilityZoneDistributionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + /// + [Input("capacityDistributionStrategy")] + public Input? CapacityDistributionStrategy { get; set; } + + public GroupAvailabilityZoneDistributionGetArgs() + { + } + public static new GroupAvailabilityZoneDistributionGetArgs Empty => new GroupAvailabilityZoneDistributionGetArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupAvailabilityZoneDistribution.cs b/sdk/dotnet/AutoScaling/Outputs/GroupAvailabilityZoneDistribution.cs new file mode 100644 index 00000000000..35642e0ab79 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Outputs/GroupAvailabilityZoneDistribution.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.AutoScaling.Outputs +{ + + [OutputType] + public sealed class GroupAvailabilityZoneDistribution + { + /// + /// The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + /// + public readonly string? CapacityDistributionStrategy; + + [OutputConstructor] + private GroupAvailabilityZoneDistribution(string? capacityDistributionStrategy) + { + CapacityDistributionStrategy = capacityDistributionStrategy; + } + } +} diff --git a/sdk/dotnet/Bedrock/AgentAgent.cs b/sdk/dotnet/Bedrock/AgentAgent.cs index 5f17224a5f1..4fd9c1a32d7 100644 --- a/sdk/dotnet/Bedrock/AgentAgent.cs +++ b/sdk/dotnet/Bedrock/AgentAgent.cs @@ -134,6 +134,12 @@ public partial class AgentAgent : global::Pulumi.CustomResource [Output("agentArn")] public Output AgentArn { get; private set; } = null!; + /// + /// Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + /// + [Output("agentCollaboration")] + public Output AgentCollaboration { get; private set; } = null!; + /// /// Unique identifier of the agent. /// @@ -275,6 +281,12 @@ public static AgentAgent Get(string name, Input id, AgentAgentState? sta public sealed class AgentAgentArgs : global::Pulumi.ResourceArgs { + /// + /// Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + /// + [Input("agentCollaboration")] + public Input? AgentCollaboration { get; set; } + /// /// Name of the agent. /// @@ -384,6 +396,12 @@ public sealed class AgentAgentState : global::Pulumi.ResourceArgs [Input("agentArn")] public Input? AgentArn { get; set; } + /// + /// Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + /// + [Input("agentCollaboration")] + public Input? AgentCollaboration { get; set; } + /// /// Unique identifier of the agent. /// diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs index fe6ae367e2d..9990b702e55 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginArgs.cs @@ -75,6 +75,12 @@ public InputList CustomHeaders [Input("s3OriginConfig")] public Input? S3OriginConfig { get; set; } + /// + /// The VPC origin configuration. + /// + [Input("vpcOriginConfig")] + public Input? VpcOriginConfig { get; set; } + public DistributionOriginArgs() { } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigArgs.cs index ddbd9efe54f..509037c0d28 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigArgs.cs @@ -24,9 +24,6 @@ public sealed class DistributionOriginCustomOriginConfigArgs : global::Pulumi.Re [Input("httpsPort", required: true)] public Input HttpsPort { get; set; } = null!; - /// - /// The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - /// [Input("originKeepaliveTimeout")] public Input? OriginKeepaliveTimeout { get; set; } @@ -36,9 +33,6 @@ public sealed class DistributionOriginCustomOriginConfigArgs : global::Pulumi.Re [Input("originProtocolPolicy", required: true)] public Input OriginProtocolPolicy { get; set; } = null!; - /// - /// The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - /// [Input("originReadTimeout")] public Input? OriginReadTimeout { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigGetArgs.cs index e21f98c52cd..777fda909ff 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginCustomOriginConfigGetArgs.cs @@ -24,9 +24,6 @@ public sealed class DistributionOriginCustomOriginConfigGetArgs : global::Pulumi [Input("httpsPort", required: true)] public Input HttpsPort { get; set; } = null!; - /// - /// The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - /// [Input("originKeepaliveTimeout")] public Input? OriginKeepaliveTimeout { get; set; } @@ -36,9 +33,6 @@ public sealed class DistributionOriginCustomOriginConfigGetArgs : global::Pulumi [Input("originProtocolPolicy", required: true)] public Input OriginProtocolPolicy { get; set; } = null!; - /// - /// The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - /// [Input("originReadTimeout")] public Input? OriginReadTimeout { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs index a2e9bd06c79..b48d98d288b 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginGetArgs.cs @@ -75,6 +75,12 @@ public InputList CustomHeaders [Input("s3OriginConfig")] public Input? S3OriginConfig { get; set; } + /// + /// The VPC origin configuration. + /// + [Input("vpcOriginConfig")] + public Input? VpcOriginConfig { get; set; } + public DistributionOriginGetArgs() { } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigArgs.cs new file mode 100644 index 00000000000..c3687b7ba13 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class DistributionOriginVpcOriginConfigArgs : global::Pulumi.ResourceArgs + { + [Input("originKeepaliveTimeout")] + public Input? OriginKeepaliveTimeout { get; set; } + + [Input("originReadTimeout")] + public Input? OriginReadTimeout { get; set; } + + /// + /// The VPC origin ID. + /// + [Input("vpcOriginId", required: true)] + public Input VpcOriginId { get; set; } = null!; + + public DistributionOriginVpcOriginConfigArgs() + { + } + public static new DistributionOriginVpcOriginConfigArgs Empty => new DistributionOriginVpcOriginConfigArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigGetArgs.cs new file mode 100644 index 00000000000..690ea05b5ed --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/DistributionOriginVpcOriginConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class DistributionOriginVpcOriginConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("originKeepaliveTimeout")] + public Input? OriginKeepaliveTimeout { get; set; } + + [Input("originReadTimeout")] + public Input? OriginReadTimeout { get; set; } + + /// + /// The VPC origin ID. + /// + [Input("vpcOriginId", required: true)] + public Input VpcOriginId { get; set; } = null!; + + public DistributionOriginVpcOriginConfigGetArgs() + { + } + public static new DistributionOriginVpcOriginConfigGetArgs Empty => new DistributionOriginVpcOriginConfigGetArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsArgs.cs new file mode 100644 index 00000000000..f7b04701c9c --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public VpcOriginTimeoutsArgs() + { + } + public static new VpcOriginTimeoutsArgs Empty => new VpcOriginTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsGetArgs.cs new file mode 100644 index 00000000000..d242d338b53 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginTimeoutsGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public VpcOriginTimeoutsGetArgs() + { + } + public static new VpcOriginTimeoutsGetArgs Empty => new VpcOriginTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigArgs.cs new file mode 100644 index 00000000000..f6254b3fb81 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginVpcOriginEndpointConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The VPC origin ARN. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + /// + /// The HTTP port for the CloudFront VPC origin endpoint configuration. + /// + [Input("httpPort", required: true)] + public Input HttpPort { get; set; } = null!; + + /// + /// The HTTPS port for the CloudFront VPC origin endpoint configuration. + /// + [Input("httpsPort", required: true)] + public Input HttpsPort { get; set; } = null!; + + /// + /// The name of the CloudFront VPC origin endpoint configuration. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The origin protocol policy for the CloudFront VPC origin endpoint configuration. + /// + [Input("originProtocolPolicy", required: true)] + public Input OriginProtocolPolicy { get; set; } = null!; + + /// + /// A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + /// + [Input("originSslProtocols")] + public Input? OriginSslProtocols { get; set; } + + public VpcOriginVpcOriginEndpointConfigArgs() + { + } + public static new VpcOriginVpcOriginEndpointConfigArgs Empty => new VpcOriginVpcOriginEndpointConfigArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigGetArgs.cs new file mode 100644 index 00000000000..af69744ff01 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigGetArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginVpcOriginEndpointConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The VPC origin ARN. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + /// + /// The HTTP port for the CloudFront VPC origin endpoint configuration. + /// + [Input("httpPort", required: true)] + public Input HttpPort { get; set; } = null!; + + /// + /// The HTTPS port for the CloudFront VPC origin endpoint configuration. + /// + [Input("httpsPort", required: true)] + public Input HttpsPort { get; set; } = null!; + + /// + /// The name of the CloudFront VPC origin endpoint configuration. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The origin protocol policy for the CloudFront VPC origin endpoint configuration. + /// + [Input("originProtocolPolicy", required: true)] + public Input OriginProtocolPolicy { get; set; } = null!; + + /// + /// A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + /// + [Input("originSslProtocols")] + public Input? OriginSslProtocols { get; set; } + + public VpcOriginVpcOriginEndpointConfigGetArgs() + { + } + public static new VpcOriginVpcOriginEndpointConfigGetArgs Empty => new VpcOriginVpcOriginEndpointConfigGetArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.cs new file mode 100644 index 00000000000..5fc6f310802 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs : global::Pulumi.ResourceArgs + { + [Input("items", required: true)] + private InputList? _items; + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + [Input("quantity", required: true)] + public Input Quantity { get; set; } = null!; + + public VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs() + { + } + public static new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs Empty => new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs.cs b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs.cs new file mode 100644 index 00000000000..59f4d242699 --- /dev/null +++ b/sdk/dotnet/CloudFront/Inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Inputs +{ + + public sealed class VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs : global::Pulumi.ResourceArgs + { + [Input("items", required: true)] + private InputList? _items; + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + [Input("quantity", required: true)] + public Input Quantity { get; set; } = null!; + + public VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs() + { + } + public static new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs Empty => new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsGetArgs(); + } +} diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs index c03067304a9..74c0c82f7b6 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOrigin.cs @@ -50,6 +50,10 @@ public sealed class DistributionOrigin /// CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. /// public readonly Outputs.DistributionOriginS3OriginConfig? S3OriginConfig; + /// + /// The VPC origin configuration. + /// + public readonly Outputs.DistributionOriginVpcOriginConfig? VpcOriginConfig; [OutputConstructor] private DistributionOrigin( @@ -71,7 +75,9 @@ private DistributionOrigin( Outputs.DistributionOriginOriginShield? originShield, - Outputs.DistributionOriginS3OriginConfig? s3OriginConfig) + Outputs.DistributionOriginS3OriginConfig? s3OriginConfig, + + Outputs.DistributionOriginVpcOriginConfig? vpcOriginConfig) { ConnectionAttempts = connectionAttempts; ConnectionTimeout = connectionTimeout; @@ -83,6 +89,7 @@ private DistributionOrigin( OriginPath = originPath; OriginShield = originShield; S3OriginConfig = s3OriginConfig; + VpcOriginConfig = vpcOriginConfig; } } } diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOriginCustomOriginConfig.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOriginCustomOriginConfig.cs index feed883ecdd..41e42354b46 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionOriginCustomOriginConfig.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOriginCustomOriginConfig.cs @@ -21,17 +21,11 @@ public sealed class DistributionOriginCustomOriginConfig /// HTTPS port the custom origin listens on. /// public readonly int HttpsPort; - /// - /// The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - /// public readonly int? OriginKeepaliveTimeout; /// /// Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. /// public readonly string OriginProtocolPolicy; - /// - /// The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - /// public readonly int? OriginReadTimeout; /// /// List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionOriginVpcOriginConfig.cs b/sdk/dotnet/CloudFront/Outputs/DistributionOriginVpcOriginConfig.cs new file mode 100644 index 00000000000..32634d565c7 --- /dev/null +++ b/sdk/dotnet/CloudFront/Outputs/DistributionOriginVpcOriginConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Outputs +{ + + [OutputType] + public sealed class DistributionOriginVpcOriginConfig + { + public readonly int? OriginKeepaliveTimeout; + public readonly int? OriginReadTimeout; + /// + /// The VPC origin ID. + /// + public readonly string VpcOriginId; + + [OutputConstructor] + private DistributionOriginVpcOriginConfig( + int? originKeepaliveTimeout, + + int? originReadTimeout, + + string vpcOriginId) + { + OriginKeepaliveTimeout = originKeepaliveTimeout; + OriginReadTimeout = originReadTimeout; + VpcOriginId = vpcOriginId; + } + } +} diff --git a/sdk/dotnet/CloudFront/Outputs/VpcOriginTimeouts.cs b/sdk/dotnet/CloudFront/Outputs/VpcOriginTimeouts.cs new file mode 100644 index 00000000000..25c5a5b9c57 --- /dev/null +++ b/sdk/dotnet/CloudFront/Outputs/VpcOriginTimeouts.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Outputs +{ + + [OutputType] + public sealed class VpcOriginTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private VpcOriginTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfig.cs b/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfig.cs new file mode 100644 index 00000000000..facf8c4ebca --- /dev/null +++ b/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfig.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Outputs +{ + + [OutputType] + public sealed class VpcOriginVpcOriginEndpointConfig + { + /// + /// The VPC origin ARN. + /// + public readonly string Arn; + /// + /// The HTTP port for the CloudFront VPC origin endpoint configuration. + /// + public readonly int HttpPort; + /// + /// The HTTPS port for the CloudFront VPC origin endpoint configuration. + /// + public readonly int HttpsPort; + /// + /// The name of the CloudFront VPC origin endpoint configuration. + /// + public readonly string Name; + /// + /// The origin protocol policy for the CloudFront VPC origin endpoint configuration. + /// + public readonly string OriginProtocolPolicy; + /// + /// A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + /// + public readonly Outputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocols? OriginSslProtocols; + + [OutputConstructor] + private VpcOriginVpcOriginEndpointConfig( + string arn, + + int httpPort, + + int httpsPort, + + string name, + + string originProtocolPolicy, + + Outputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocols? originSslProtocols) + { + Arn = arn; + HttpPort = httpPort; + HttpsPort = httpsPort; + Name = name; + OriginProtocolPolicy = originProtocolPolicy; + OriginSslProtocols = originSslProtocols; + } + } +} diff --git a/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.cs b/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.cs new file mode 100644 index 00000000000..cbf0a8b4c8c --- /dev/null +++ b/sdk/dotnet/CloudFront/Outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront.Outputs +{ + + [OutputType] + public sealed class VpcOriginVpcOriginEndpointConfigOriginSslProtocols + { + public readonly ImmutableArray Items; + public readonly int Quantity; + + [OutputConstructor] + private VpcOriginVpcOriginEndpointConfigOriginSslProtocols( + ImmutableArray items, + + int quantity) + { + Items = items; + Quantity = quantity; + } + } +} diff --git a/sdk/dotnet/CloudFront/VpcOrigin.cs b/sdk/dotnet/CloudFront/VpcOrigin.cs new file mode 100644 index 00000000000..36f04b588e4 --- /dev/null +++ b/sdk/dotnet/CloudFront/VpcOrigin.cs @@ -0,0 +1,215 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.CloudFront +{ + /// + /// Creates an Amazon CloudFront VPC origin. + /// + /// For information about CloudFront VPC origins, see + /// [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. + /// + /// ## Example Usage + /// + /// ### Application Load Balancer + /// + /// The following example below creates a CloudFront VPC origin for a Application Load Balancer. + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var alb = new Aws.CloudFront.VpcOrigin("alb", new() + /// { + /// VpcOriginEndpointConfig = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigArgs + /// { + /// Name = "Example VPC Origin", + /// Arn = @this.Arn, + /// HttpPort = 8080, + /// HttpsPort = 8443, + /// OriginProtocolPolicy = "https-only", + /// OriginSslProtocols = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs + /// { + /// Items = new[] + /// { + /// "TLSv1.2", + /// }, + /// Quantity = 1, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// terraform + /// + /// import { + /// + /// to = aws_cloudfront_vpc_origin.origin + /// + /// id = vo_JQEa410sssUFoY6wMkx69j + /// + /// } + /// + /// Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: + /// + /// console + /// + /// % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j + /// + [AwsResourceType("aws:cloudfront/vpcOrigin:VpcOrigin")] + public partial class VpcOrigin : global::Pulumi.CustomResource + { + /// + /// The VPC origin ARN. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The current version of the origin. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + [Output("vpcOriginEndpointConfig")] + public Output VpcOriginEndpointConfig { get; private set; } = null!; + + + /// + /// Create a VpcOrigin resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public VpcOrigin(string name, VpcOriginArgs? args = null, CustomResourceOptions? options = null) + : base("aws:cloudfront/vpcOrigin:VpcOrigin", name, args ?? new VpcOriginArgs(), MakeResourceOptions(options, "")) + { + } + + private VpcOrigin(string name, Input id, VpcOriginState? state = null, CustomResourceOptions? options = null) + : base("aws:cloudfront/vpcOrigin:VpcOrigin", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing VpcOrigin resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static VpcOrigin Get(string name, Input id, VpcOriginState? state = null, CustomResourceOptions? options = null) + { + return new VpcOrigin(name, id, state, options); + } + } + + public sealed class VpcOriginArgs : global::Pulumi.ResourceArgs + { + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + [Input("vpcOriginEndpointConfig")] + public Input? VpcOriginEndpointConfig { get; set; } + + public VpcOriginArgs() + { + } + public static new VpcOriginArgs Empty => new VpcOriginArgs(); + } + + public sealed class VpcOriginState : global::Pulumi.ResourceArgs + { + /// + /// The VPC origin ARN. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The current version of the origin. + /// + [Input("etag")] + public Input? Etag { get; set; } + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + [Input("vpcOriginEndpointConfig")] + public Input? VpcOriginEndpointConfig { get; set; } + + public VpcOriginState() + { + } + public static new VpcOriginState Empty => new VpcOriginState(); + } +} diff --git a/sdk/dotnet/CloudWatch/LogAccountPolicy.cs b/sdk/dotnet/CloudWatch/LogAccountPolicy.cs index 0849d7a84ad..c6f532c3e7a 100644 --- a/sdk/dotnet/CloudWatch/LogAccountPolicy.cs +++ b/sdk/dotnet/CloudWatch/LogAccountPolicy.cs @@ -102,6 +102,34 @@ namespace Pulumi.Aws.CloudWatch /// }); /// ``` /// + /// ### Field Index Policy + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var fieldIndex = new Aws.CloudWatch.LogAccountPolicy("field_index", new() + /// { + /// PolicyName = "field-index", + /// PolicyType = "FIELD_INDEX_POLICY", + /// PolicyDocument = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Fields"] = new[] + /// { + /// "field1", + /// "field2", + /// }, + /// }), + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -126,7 +154,7 @@ public partial class LogAccountPolicy : global::Pulumi.CustomResource public Output PolicyName { get; private set; } = null!; /// - /// Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + /// Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. /// [Output("policyType")] public Output PolicyType { get; private set; } = null!; @@ -202,7 +230,7 @@ public sealed class LogAccountPolicyArgs : global::Pulumi.ResourceArgs public Input PolicyName { get; set; } = null!; /// - /// Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + /// Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. /// [Input("policyType", required: true)] public Input PolicyType { get; set; } = null!; @@ -240,7 +268,7 @@ public sealed class LogAccountPolicyState : global::Pulumi.ResourceArgs public Input? PolicyName { get; set; } /// - /// Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + /// Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. /// [Input("policyType")] public Input? PolicyType { get; set; } diff --git a/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationArgs.cs b/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationArgs.cs index f96996c2bdf..38eb1833f54 100644 --- a/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationArgs.cs +++ b/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationArgs.cs @@ -39,8 +39,8 @@ public InputList SubnetIds /// /// The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. /// - [Input("tlsCertificate", required: true)] - public Input TlsCertificate { get; set; } = null!; + [Input("tlsCertificate")] + public Input? TlsCertificate { get; set; } /// /// The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. diff --git a/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationGetArgs.cs b/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationGetArgs.cs index e552789af80..26beef433e8 100644 --- a/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationGetArgs.cs +++ b/sdk/dotnet/CodeConnections/Inputs/HostVpcConfigurationGetArgs.cs @@ -39,8 +39,8 @@ public InputList SubnetIds /// /// The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. /// - [Input("tlsCertificate", required: true)] - public Input TlsCertificate { get; set; } = null!; + [Input("tlsCertificate")] + public Input? TlsCertificate { get; set; } /// /// The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. diff --git a/sdk/dotnet/CodeConnections/Outputs/HostVpcConfiguration.cs b/sdk/dotnet/CodeConnections/Outputs/HostVpcConfiguration.cs index 9da28a5fcb6..ce09323976d 100644 --- a/sdk/dotnet/CodeConnections/Outputs/HostVpcConfiguration.cs +++ b/sdk/dotnet/CodeConnections/Outputs/HostVpcConfiguration.cs @@ -24,7 +24,7 @@ public sealed class HostVpcConfiguration /// /// The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. /// - public readonly string TlsCertificate; + public readonly string? TlsCertificate; /// /// The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. /// @@ -36,7 +36,7 @@ private HostVpcConfiguration( ImmutableArray subnetIds, - string tlsCertificate, + string? tlsCertificate, string vpcId) { diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index ad59f31309d..291e2dc0730 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -1189,6 +1189,10 @@ public class Endpoints public string? Memorydb { get; set; } = null!; /// /// Use this to override the default service endpoint URL + /// + public string? Mgn { get; set; } = null!; + /// + /// Use this to override the default service endpoint URL /// public string? Mq { get; set; } = null!; /// @@ -1561,6 +1565,10 @@ public class Endpoints public string? Timestreaminfluxdb { get; set; } = null!; /// /// Use this to override the default service endpoint URL + /// + public string? Timestreamquery { get; set; } = null!; + /// + /// Use this to override the default service endpoint URL /// public string? Timestreamwrite { get; set; } = null!; /// diff --git a/sdk/dotnet/DirectConnect/Gateway.cs b/sdk/dotnet/DirectConnect/Gateway.cs index 4ebb17381cc..d9e35430da9 100644 --- a/sdk/dotnet/DirectConnect/Gateway.cs +++ b/sdk/dotnet/DirectConnect/Gateway.cs @@ -48,6 +48,12 @@ public partial class Gateway : global::Pulumi.CustomResource [Output("amazonSideAsn")] public Output AmazonSideAsn { get; private set; } = null!; + /// + /// The ARN of the gateway. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + /// /// The name of the connection. /// @@ -132,6 +138,12 @@ public sealed class GatewayState : global::Pulumi.ResourceArgs [Input("amazonSideAsn")] public Input? AmazonSideAsn { get; set; } + /// + /// The ARN of the gateway. + /// + [Input("arn")] + public Input? Arn { get; set; } + /// /// The name of the connection. /// diff --git a/sdk/dotnet/DirectConnect/GetGateway.cs b/sdk/dotnet/DirectConnect/GetGateway.cs index ad16e34d797..1c8b8fb9877 100644 --- a/sdk/dotnet/DirectConnect/GetGateway.cs +++ b/sdk/dotnet/DirectConnect/GetGateway.cs @@ -122,6 +122,10 @@ public sealed class GetGatewayResult /// public readonly string AmazonSideAsn; /// + /// ARN of the gateway. + /// + public readonly string Arn; + /// /// The provider-assigned unique ID for this managed resource. /// public readonly string Id; @@ -135,6 +139,8 @@ public sealed class GetGatewayResult private GetGatewayResult( string amazonSideAsn, + string arn, + string id, string name, @@ -142,6 +148,7 @@ private GetGatewayResult( string ownerAccountId) { AmazonSideAsn = amazonSideAsn; + Arn = arn; Id = id; Name = name; OwnerAccountId = ownerAccountId; diff --git a/sdk/dotnet/Ec2/VpcEndpoint.cs b/sdk/dotnet/Ec2/VpcEndpoint.cs index bd3cbeaedd2..b449a1adc1d 100644 --- a/sdk/dotnet/Ec2/VpcEndpoint.cs +++ b/sdk/dotnet/Ec2/VpcEndpoint.cs @@ -269,6 +269,12 @@ public partial class VpcEndpoint : global::Pulumi.CustomResource [Output("serviceName")] public Output ServiceName { get; private set; } = null!; + /// + /// The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + /// + [Output("serviceRegion")] + public Output ServiceRegion { get; private set; } = null!; + /// /// The state of the VPC endpoint. /// @@ -419,6 +425,12 @@ public InputList SecurityGroupIds [Input("serviceName", required: true)] public Input ServiceName { get; set; } = null!; + /// + /// The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + /// + [Input("serviceRegion")] + public Input? ServiceRegion { get; set; } + [Input("subnetConfigurations")] private InputList? _subnetConfigurations; @@ -597,6 +609,12 @@ public InputList SecurityGroupIds [Input("serviceName")] public Input? ServiceName { get; set; } + /// + /// The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + /// + [Input("serviceRegion")] + public Input? ServiceRegion { get; set; } + /// /// The state of the VPC endpoint. /// diff --git a/sdk/dotnet/Eks/Cluster.cs b/sdk/dotnet/Eks/Cluster.cs index 5a64d18cee2..f329863af98 100644 --- a/sdk/dotnet/Eks/Cluster.cs +++ b/sdk/dotnet/Eks/Cluster.cs @@ -87,7 +87,7 @@ namespace Pulumi.Aws.Eks /// /// ### EKS Cluster with EKS Auto Mode /// - /// > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. + /// > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrap_self_managed_addons` is set to `false`. /// /// ```csharp /// using System.Collections.Generic; @@ -186,6 +186,7 @@ namespace Pulumi.Aws.Eks /// }, /// RoleArn = cluster.Arn, /// Version = "1.31", + /// BootstrapSelfManagedAddons = false, /// ComputeConfig = new Aws.Eks.Inputs.ClusterComputeConfigArgs /// { /// Enabled = true, diff --git a/sdk/dotnet/ElastiCache/ReplicationGroup.cs b/sdk/dotnet/ElastiCache/ReplicationGroup.cs index c1288aae4b6..a9f20b95e0a 100644 --- a/sdk/dotnet/ElastiCache/ReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/ReplicationGroup.cs @@ -279,6 +279,8 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource /// /// Whether to enable encryption at rest. + /// When `engine` is `redis`, default is `false`. + /// When `engine` is `valkey`, default is `true`. /// [Output("atRestEncryptionEnabled")] public Output AtRestEncryptionEnabled { get; private set; } = null!; @@ -340,7 +342,9 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + /// Name of the cache engine to be used for the clusters in this replication group. + /// Valid values are `redis` or `valkey`. + /// Default is `redis`. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -634,6 +638,8 @@ public sealed class ReplicationGroupArgs : global::Pulumi.ResourceArgs /// /// Whether to enable encryption at rest. + /// When `engine` is `redis`, default is `false`. + /// When `engine` is `valkey`, default is `true`. /// [Input("atRestEncryptionEnabled")] public Input? AtRestEncryptionEnabled { get; set; } @@ -693,7 +699,9 @@ public Input? AuthToken public Input Description { get; set; } = null!; /// - /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + /// Name of the cache engine to be used for the clusters in this replication group. + /// Valid values are `redis` or `valkey`. + /// Default is `redis`. /// [Input("engine")] public Input? Engine { get; set; } @@ -963,6 +971,8 @@ public sealed class ReplicationGroupState : global::Pulumi.ResourceArgs /// /// Whether to enable encryption at rest. + /// When `engine` is `redis`, default is `false`. + /// When `engine` is `valkey`, default is `true`. /// [Input("atRestEncryptionEnabled")] public Input? AtRestEncryptionEnabled { get; set; } @@ -1034,7 +1044,9 @@ public Input? AuthToken public Input? Description { get; set; } /// - /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + /// Name of the cache engine to be used for the clusters in this replication group. + /// Valid values are `redis` or `valkey`. + /// Default is `redis`. /// [Input("engine")] public Input? Engine { get; set; } diff --git a/sdk/dotnet/Fsx/LustreFileSystem.cs b/sdk/dotnet/Fsx/LustreFileSystem.cs index abeef248840..628503ed18e 100644 --- a/sdk/dotnet/Fsx/LustreFileSystem.cs +++ b/sdk/dotnet/Fsx/LustreFileSystem.cs @@ -106,6 +106,12 @@ public partial class LustreFileSystem : global::Pulumi.CustomResource [Output("driveCacheType")] public Output DriveCacheType { get; private set; } = null!; + /// + /// Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + /// + [Output("efaEnabled")] + public Output EfaEnabled { get; private set; } = null!; + /// /// S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. /// @@ -338,6 +344,12 @@ public sealed class LustreFileSystemArgs : global::Pulumi.ResourceArgs [Input("driveCacheType")] public Input? DriveCacheType { get; set; } + /// + /// Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + /// + [Input("efaEnabled")] + public Input? EfaEnabled { get; set; } + /// /// S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. /// @@ -532,6 +544,12 @@ public sealed class LustreFileSystemState : global::Pulumi.ResourceArgs [Input("driveCacheType")] public Input? DriveCacheType { get; set; } + /// + /// Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + /// + [Input("efaEnabled")] + public Input? EfaEnabled { get; set; } + /// /// S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. /// diff --git a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs index 97638a6e5a1..6c42920601e 100644 --- a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs +++ b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs @@ -1134,6 +1134,12 @@ public sealed class ProviderEndpointArgs : global::Pulumi.ResourceArgs [Input("memorydb")] public Input? Memorydb { get; set; } + /// + /// Use this to override the default service endpoint URL + /// + [Input("mgn")] + public Input? Mgn { get; set; } + /// /// Use this to override the default service endpoint URL /// @@ -1692,6 +1698,12 @@ public sealed class ProviderEndpointArgs : global::Pulumi.ResourceArgs [Input("timestreaminfluxdb")] public Input? Timestreaminfluxdb { get; set; } + /// + /// Use this to override the default service endpoint URL + /// + [Input("timestreamquery")] + public Input? Timestreamquery { get; set; } + /// /// Use this to override the default service endpoint URL /// diff --git a/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationArgs.cs b/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationArgs.cs index e1cf3662603..60df4108c71 100644 --- a/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.LB.Inputs public sealed class ListenerMutualAuthenticationArgs : global::Pulumi.ResourceArgs { + /// + /// Valid values are `off` and `on`. + /// + [Input("advertiseTrustStoreCaNames")] + public Input? AdvertiseTrustStoreCaNames { get; set; } + /// /// Whether client certificate expiry is ignored. Default is `false`. /// diff --git a/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationGetArgs.cs b/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationGetArgs.cs index 88e1f3fc507..aa55d72daf7 100644 --- a/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationGetArgs.cs +++ b/sdk/dotnet/LB/Inputs/ListenerMutualAuthenticationGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.LB.Inputs public sealed class ListenerMutualAuthenticationGetArgs : global::Pulumi.ResourceArgs { + /// + /// Valid values are `off` and `on`. + /// + [Input("advertiseTrustStoreCaNames")] + public Input? AdvertiseTrustStoreCaNames { get; set; } + /// /// Whether client certificate expiry is ignored. Default is `false`. /// diff --git a/sdk/dotnet/LB/Outputs/ListenerMutualAuthentication.cs b/sdk/dotnet/LB/Outputs/ListenerMutualAuthentication.cs index 708a6bc30aa..57b0e248293 100644 --- a/sdk/dotnet/LB/Outputs/ListenerMutualAuthentication.cs +++ b/sdk/dotnet/LB/Outputs/ListenerMutualAuthentication.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.LB.Outputs [OutputType] public sealed class ListenerMutualAuthentication { + /// + /// Valid values are `off` and `on`. + /// + public readonly string? AdvertiseTrustStoreCaNames; /// /// Whether client certificate expiry is ignored. Default is `false`. /// @@ -28,12 +32,15 @@ public sealed class ListenerMutualAuthentication [OutputConstructor] private ListenerMutualAuthentication( + string? advertiseTrustStoreCaNames, + bool? ignoreClientCertificateExpiry, string mode, string? trustStoreArn) { + AdvertiseTrustStoreCaNames = advertiseTrustStoreCaNames; IgnoreClientCertificateExpiry = ignoreClientCertificateExpiry; Mode = mode; TrustStoreArn = trustStoreArn; diff --git a/sdk/dotnet/LakeFormation/Permissions.cs b/sdk/dotnet/LakeFormation/Permissions.cs index c18c0a94537..7d32c75d77b 100644 --- a/sdk/dotnet/LakeFormation/Permissions.cs +++ b/sdk/dotnet/LakeFormation/Permissions.cs @@ -125,6 +125,21 @@ namespace Pulumi.Aws.LakeFormation /// | ---- | ---- | /// | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) | /// + /// ## `ALLIAMPrincipals` group + /// + /// AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined. + /// + /// resource "aws.lakeformation.Permissions" "example" { + /// permissions = ["SELECT"] + /// principal = "123456789012:IAMPrincipals" + /// + /// table_with_columns { + /// database_name = aws_glue_catalog_table.example.database_name + /// name = aws_glue_catalog_table.example.name + /// column_names = ["event"] + /// } + /// } + /// /// ## Using Lake Formation Permissions /// /// Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed. diff --git a/sdk/dotnet/LicenseManager/Outputs/GetReceivedLicenseEntitlementResult.cs b/sdk/dotnet/LicenseManager/Outputs/GetReceivedLicenseEntitlementResult.cs index a207a39d6e0..bdc5bf28974 100644 --- a/sdk/dotnet/LicenseManager/Outputs/GetReceivedLicenseEntitlementResult.cs +++ b/sdk/dotnet/LicenseManager/Outputs/GetReceivedLicenseEntitlementResult.cs @@ -26,6 +26,10 @@ public sealed class GetReceivedLicenseEntitlementResult /// public readonly string Name; /// + /// Indicates whether overages are allowed. + /// + public readonly bool Overage; + /// /// Entitlement unit. /// public readonly string Unit; @@ -42,6 +46,8 @@ private GetReceivedLicenseEntitlementResult( string name, + bool overage, + string unit, string value) @@ -49,6 +55,7 @@ private GetReceivedLicenseEntitlementResult( AllowCheckIn = allowCheckIn; MaxCount = maxCount; Name = name; + Overage = overage; Unit = unit; Value = value; } diff --git a/sdk/dotnet/MemoryDb/Cluster.cs b/sdk/dotnet/MemoryDb/Cluster.cs index 011c9092cc0..f6caa4baeb5 100644 --- a/sdk/dotnet/MemoryDb/Cluster.cs +++ b/sdk/dotnet/MemoryDb/Cluster.cs @@ -123,6 +123,12 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("maintenanceWindow")] public Output MaintenanceWindow { get; private set; } = null!; + /// + /// The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + /// + [Output("multiRegionClusterName")] + public Output MultiRegionClusterName { get; private set; } = null!; + /// /// Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. /// @@ -333,6 +339,12 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs [Input("maintenanceWindow")] public Input? MaintenanceWindow { get; set; } + /// + /// The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + /// + [Input("multiRegionClusterName")] + public Input? MultiRegionClusterName { get; set; } + /// /// Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. /// @@ -531,6 +543,12 @@ public InputList ClusterEndpoints [Input("maintenanceWindow")] public Input? MaintenanceWindow { get; set; } + /// + /// The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + /// + [Input("multiRegionClusterName")] + public Input? MultiRegionClusterName { get; set; } + /// /// Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. /// diff --git a/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsArgs.cs b/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsArgs.cs new file mode 100644 index 00000000000..2cf6b582e8d --- /dev/null +++ b/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.MemoryDb.Inputs +{ + + public sealed class MultiRegionClusterTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public MultiRegionClusterTimeoutsArgs() + { + } + public static new MultiRegionClusterTimeoutsArgs Empty => new MultiRegionClusterTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsGetArgs.cs b/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsGetArgs.cs new file mode 100644 index 00000000000..f2faa2f2fc1 --- /dev/null +++ b/sdk/dotnet/MemoryDb/Inputs/MultiRegionClusterTimeoutsGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.MemoryDb.Inputs +{ + + public sealed class MultiRegionClusterTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public MultiRegionClusterTimeoutsGetArgs() + { + } + public static new MultiRegionClusterTimeoutsGetArgs Empty => new MultiRegionClusterTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/MemoryDb/MultiRegionCluster.cs b/sdk/dotnet/MemoryDb/MultiRegionCluster.cs new file mode 100644 index 00000000000..14d0ec63fbe --- /dev/null +++ b/sdk/dotnet/MemoryDb/MultiRegionCluster.cs @@ -0,0 +1,369 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.MemoryDb +{ + /// + /// Provides a MemoryDB Multi Region Cluster. + /// + /// More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html). + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.MemoryDb.MultiRegionCluster("example", new() + /// { + /// MultiRegionClusterNameSuffix = "example", + /// NodeType = "db.r7g.xlarge", + /// }); + /// + /// var exampleCluster = new Aws.MemoryDb.Cluster("example", new() + /// { + /// AclName = exampleAwsMemorydbAcl.Id, + /// AutoMinorVersionUpgrade = false, + /// Name = "example", + /// NodeType = "db.t4g.small", + /// NumShards = 2, + /// SecurityGroupIds = new[] + /// { + /// exampleAwsSecurityGroup.Id, + /// }, + /// SnapshotRetentionLimit = 7, + /// SubnetGroupName = exampleAwsMemorydbSubnetGroup.Id, + /// MultiRegionClusterName = example.MultiRegionClusterName, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: + /// + /// ```sh + /// $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example + /// ``` + /// + [AwsResourceType("aws:memorydb/multiRegionCluster:MultiRegionCluster")] + public partial class MultiRegionCluster : global::Pulumi.CustomResource + { + /// + /// The ARN of the multi-region cluster. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// description for the multi-region cluster. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + /// + [Output("engine")] + public Output Engine { get; private set; } = null!; + + /// + /// The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + /// + [Output("engineVersion")] + public Output EngineVersion { get; private set; } = null!; + + /// + /// The name of the multi-region cluster. + /// + [Output("multiRegionClusterName")] + public Output MultiRegionClusterName { get; private set; } = null!; + + /// + /// A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + /// + [Output("multiRegionClusterNameSuffix")] + public Output MultiRegionClusterNameSuffix { get; private set; } = null!; + + /// + /// The name of the multi-region parameter group to be associated with the cluster. + /// + [Output("multiRegionParameterGroupName")] + public Output MultiRegionParameterGroupName { get; private set; } = null!; + + /// + /// The node type to be used for the multi-region cluster. + /// + /// The following arguments are optional: + /// + [Output("nodeType")] + public Output NodeType { get; private set; } = null!; + + /// + /// The number of shards for the multi-region cluster. + /// + [Output("numShards")] + public Output NumShards { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// A flag to enable in-transit encryption on the cluster. + /// + [Output("tlsEnabled")] + public Output TlsEnabled { get; private set; } = null!; + + [Output("updateStrategy")] + public Output UpdateStrategy { get; private set; } = null!; + + + /// + /// Create a MultiRegionCluster resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public MultiRegionCluster(string name, MultiRegionClusterArgs args, CustomResourceOptions? options = null) + : base("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, args ?? new MultiRegionClusterArgs(), MakeResourceOptions(options, "")) + { + } + + private MultiRegionCluster(string name, Input id, MultiRegionClusterState? state = null, CustomResourceOptions? options = null) + : base("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing MultiRegionCluster resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static MultiRegionCluster Get(string name, Input id, MultiRegionClusterState? state = null, CustomResourceOptions? options = null) + { + return new MultiRegionCluster(name, id, state, options); + } + } + + public sealed class MultiRegionClusterArgs : global::Pulumi.ResourceArgs + { + /// + /// description for the multi-region cluster. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + /// + [Input("engine")] + public Input? Engine { get; set; } + + /// + /// The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + /// + [Input("engineVersion")] + public Input? EngineVersion { get; set; } + + /// + /// A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + /// + [Input("multiRegionClusterNameSuffix", required: true)] + public Input MultiRegionClusterNameSuffix { get; set; } = null!; + + /// + /// The name of the multi-region parameter group to be associated with the cluster. + /// + [Input("multiRegionParameterGroupName")] + public Input? MultiRegionParameterGroupName { get; set; } + + /// + /// The node type to be used for the multi-region cluster. + /// + /// The following arguments are optional: + /// + [Input("nodeType", required: true)] + public Input NodeType { get; set; } = null!; + + /// + /// The number of shards for the multi-region cluster. + /// + [Input("numShards")] + public Input? NumShards { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// A flag to enable in-transit encryption on the cluster. + /// + [Input("tlsEnabled")] + public Input? TlsEnabled { get; set; } + + [Input("updateStrategy")] + public Input? UpdateStrategy { get; set; } + + public MultiRegionClusterArgs() + { + } + public static new MultiRegionClusterArgs Empty => new MultiRegionClusterArgs(); + } + + public sealed class MultiRegionClusterState : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the multi-region cluster. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// description for the multi-region cluster. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + /// + [Input("engine")] + public Input? Engine { get; set; } + + /// + /// The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + /// + [Input("engineVersion")] + public Input? EngineVersion { get; set; } + + /// + /// The name of the multi-region cluster. + /// + [Input("multiRegionClusterName")] + public Input? MultiRegionClusterName { get; set; } + + /// + /// A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + /// + [Input("multiRegionClusterNameSuffix")] + public Input? MultiRegionClusterNameSuffix { get; set; } + + /// + /// The name of the multi-region parameter group to be associated with the cluster. + /// + [Input("multiRegionParameterGroupName")] + public Input? MultiRegionParameterGroupName { get; set; } + + /// + /// The node type to be used for the multi-region cluster. + /// + /// The following arguments are optional: + /// + [Input("nodeType")] + public Input? NodeType { get; set; } + + /// + /// The number of shards for the multi-region cluster. + /// + [Input("numShards")] + public Input? NumShards { get; set; } + + [Input("status")] + public Input? Status { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// A flag to enable in-transit encryption on the cluster. + /// + [Input("tlsEnabled")] + public Input? TlsEnabled { get; set; } + + [Input("updateStrategy")] + public Input? UpdateStrategy { get; set; } + + public MultiRegionClusterState() + { + } + public static new MultiRegionClusterState Empty => new MultiRegionClusterState(); + } +} diff --git a/sdk/dotnet/MemoryDb/Outputs/MultiRegionClusterTimeouts.cs b/sdk/dotnet/MemoryDb/Outputs/MultiRegionClusterTimeouts.cs new file mode 100644 index 00000000000..01560535e8d --- /dev/null +++ b/sdk/dotnet/MemoryDb/Outputs/MultiRegionClusterTimeouts.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.MemoryDb.Outputs +{ + + [OutputType] + public sealed class MultiRegionClusterTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private MultiRegionClusterTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/NetworkManager/AttachmentAccepter.cs b/sdk/dotnet/NetworkManager/AttachmentAccepter.cs index 9fca2f81ef2..bd74bccb5fc 100644 --- a/sdk/dotnet/NetworkManager/AttachmentAccepter.cs +++ b/sdk/dotnet/NetworkManager/AttachmentAccepter.cs @@ -86,11 +86,17 @@ public partial class AttachmentAccepter : global::Pulumi.CustomResource public Output CoreNetworkId { get; private set; } = null!; /// - /// The Region where the edge is located. + /// The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. /// [Output("edgeLocation")] public Output EdgeLocation { get; private set; } = null!; + /// + /// The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + /// + [Output("edgeLocations")] + public Output> EdgeLocations { get; private set; } = null!; + /// /// The ID of the attachment account owner. /// @@ -212,11 +218,23 @@ public sealed class AttachmentAccepterState : global::Pulumi.ResourceArgs public Input? CoreNetworkId { get; set; } /// - /// The Region where the edge is located. + /// The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. /// [Input("edgeLocation")] public Input? EdgeLocation { get; set; } + [Input("edgeLocations")] + private InputList? _edgeLocations; + + /// + /// The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + /// + public InputList EdgeLocations + { + get => _edgeLocations ?? (_edgeLocations = new InputList()); + set => _edgeLocations = value; + } + /// /// The ID of the attachment account owner. /// diff --git a/sdk/dotnet/NetworkManager/DxGatewayAttachment.cs b/sdk/dotnet/NetworkManager/DxGatewayAttachment.cs new file mode 100644 index 00000000000..5884b3b498b --- /dev/null +++ b/sdk/dotnet/NetworkManager/DxGatewayAttachment.cs @@ -0,0 +1,318 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.NetworkManager +{ + /// + /// Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = new Aws.NetworkManager.DxGatewayAttachment("test", new() + /// { + /// CoreNetworkId = testAwsNetworkmanagerCoreNetworkPolicyAttachment.CoreNetworkId, + /// DirectConnectGatewayArn = $"arn:aws:directconnect::{current.AccountId}:dx-gateway/{testAwsDxGateway.Id}", + /// EdgeLocations = new[] + /// { + /// currentAwsRegion.Name, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g + /// ``` + /// + [AwsResourceType("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment")] + public partial class DxGatewayAttachment : global::Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Policy rule number associated with the attachment. + /// + [Output("attachmentPolicyRuleNumber")] + public Output AttachmentPolicyRuleNumber { get; private set; } = null!; + + /// + /// Type of attachment. + /// + [Output("attachmentType")] + public Output AttachmentType { get; private set; } = null!; + + /// + /// ARN of the core network for the attachment. + /// + [Output("coreNetworkArn")] + public Output CoreNetworkArn { get; private set; } = null!; + + /// + /// ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + /// + [Output("coreNetworkId")] + public Output CoreNetworkId { get; private set; } = null!; + + /// + /// ARN of the Direct Connect gateway attachment. + /// + [Output("directConnectGatewayArn")] + public Output DirectConnectGatewayArn { get; private set; } = null!; + + /// + /// One or more core network edge locations to associate with the Direct Connect gateway attachment. + /// + /// The following arguments are optional: + /// + [Output("edgeLocations")] + public Output> EdgeLocations { get; private set; } = null!; + + /// + /// ID of the attachment account owner. + /// + [Output("ownerAccountId")] + public Output OwnerAccountId { get; private set; } = null!; + + /// + /// Name of the segment attachment. + /// + [Output("segmentName")] + public Output SegmentName { get; private set; } = null!; + + /// + /// State of the attachment. + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a DxGatewayAttachment resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DxGatewayAttachment(string name, DxGatewayAttachmentArgs args, CustomResourceOptions? options = null) + : base("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, args ?? new DxGatewayAttachmentArgs(), MakeResourceOptions(options, "")) + { + } + + private DxGatewayAttachment(string name, Input id, DxGatewayAttachmentState? state = null, CustomResourceOptions? options = null) + : base("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DxGatewayAttachment resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static DxGatewayAttachment Get(string name, Input id, DxGatewayAttachmentState? state = null, CustomResourceOptions? options = null) + { + return new DxGatewayAttachment(name, id, state, options); + } + } + + public sealed class DxGatewayAttachmentArgs : global::Pulumi.ResourceArgs + { + /// + /// ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + /// + [Input("coreNetworkId", required: true)] + public Input CoreNetworkId { get; set; } = null!; + + /// + /// ARN of the Direct Connect gateway attachment. + /// + [Input("directConnectGatewayArn", required: true)] + public Input DirectConnectGatewayArn { get; set; } = null!; + + [Input("edgeLocations", required: true)] + private InputList? _edgeLocations; + + /// + /// One or more core network edge locations to associate with the Direct Connect gateway attachment. + /// + /// The following arguments are optional: + /// + public InputList EdgeLocations + { + get => _edgeLocations ?? (_edgeLocations = new InputList()); + set => _edgeLocations = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public DxGatewayAttachmentArgs() + { + } + public static new DxGatewayAttachmentArgs Empty => new DxGatewayAttachmentArgs(); + } + + public sealed class DxGatewayAttachmentState : global::Pulumi.ResourceArgs + { + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Policy rule number associated with the attachment. + /// + [Input("attachmentPolicyRuleNumber")] + public Input? AttachmentPolicyRuleNumber { get; set; } + + /// + /// Type of attachment. + /// + [Input("attachmentType")] + public Input? AttachmentType { get; set; } + + /// + /// ARN of the core network for the attachment. + /// + [Input("coreNetworkArn")] + public Input? CoreNetworkArn { get; set; } + + /// + /// ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + /// + [Input("coreNetworkId")] + public Input? CoreNetworkId { get; set; } + + /// + /// ARN of the Direct Connect gateway attachment. + /// + [Input("directConnectGatewayArn")] + public Input? DirectConnectGatewayArn { get; set; } + + [Input("edgeLocations")] + private InputList? _edgeLocations; + + /// + /// One or more core network edge locations to associate with the Direct Connect gateway attachment. + /// + /// The following arguments are optional: + /// + public InputList EdgeLocations + { + get => _edgeLocations ?? (_edgeLocations = new InputList()); + set => _edgeLocations = value; + } + + /// + /// ID of the attachment account owner. + /// + [Input("ownerAccountId")] + public Input? OwnerAccountId { get; set; } + + /// + /// Name of the segment attachment. + /// + [Input("segmentName")] + public Input? SegmentName { get; set; } + + /// + /// State of the attachment. + /// + [Input("state")] + public Input? State { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public DxGatewayAttachmentState() + { + } + public static new DxGatewayAttachmentState Empty => new DxGatewayAttachmentState(); + } +} diff --git a/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsArgs.cs b/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsArgs.cs new file mode 100644 index 00000000000..ac3f0fbc114 --- /dev/null +++ b/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.NetworkManager.Inputs +{ + + public sealed class DxGatewayAttachmentTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public DxGatewayAttachmentTimeoutsArgs() + { + } + public static new DxGatewayAttachmentTimeoutsArgs Empty => new DxGatewayAttachmentTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsGetArgs.cs b/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsGetArgs.cs new file mode 100644 index 00000000000..9bbef7a7a1b --- /dev/null +++ b/sdk/dotnet/NetworkManager/Inputs/DxGatewayAttachmentTimeoutsGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.NetworkManager.Inputs +{ + + public sealed class DxGatewayAttachmentTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public DxGatewayAttachmentTimeoutsGetArgs() + { + } + public static new DxGatewayAttachmentTimeoutsGetArgs Empty => new DxGatewayAttachmentTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/NetworkManager/Outputs/DxGatewayAttachmentTimeouts.cs b/sdk/dotnet/NetworkManager/Outputs/DxGatewayAttachmentTimeouts.cs new file mode 100644 index 00000000000..a4c49df0ee9 --- /dev/null +++ b/sdk/dotnet/NetworkManager/Outputs/DxGatewayAttachmentTimeouts.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.NetworkManager.Outputs +{ + + [OutputType] + public sealed class DxGatewayAttachmentTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private DxGatewayAttachmentTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/Rds/Cluster.cs b/sdk/dotnet/Rds/Cluster.cs index 3b2b3c11ca7..33e57325846 100644 --- a/sdk/dotnet/Rds/Cluster.cs +++ b/sdk/dotnet/Rds/Cluster.cs @@ -588,19 +588,19 @@ public partial class Cluster : global::Pulumi.CustomResource public Output NetworkType { get; private set; } = null!; /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + /// Enables Performance Insights for the RDS Cluster /// [Output("performanceInsightsEnabled")] public Output PerformanceInsightsEnabled { get; private set; } = null!; /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + /// Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). /// [Output("performanceInsightsKmsKeyId")] public Output PerformanceInsightsKmsKeyId { get; private set; } = null!; /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + /// Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. /// [Output("performanceInsightsRetentionPeriod")] public Output PerformanceInsightsRetentionPeriod { get; private set; } = null!; @@ -1036,19 +1036,19 @@ public Input? MasterPassword public Input? NetworkType { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + /// Enables Performance Insights for the RDS Cluster /// [Input("performanceInsightsEnabled")] public Input? PerformanceInsightsEnabled { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + /// Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). /// [Input("performanceInsightsKmsKeyId")] public Input? PerformanceInsightsKmsKeyId { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + /// Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. /// [Input("performanceInsightsRetentionPeriod")] public Input? PerformanceInsightsRetentionPeriod { get; set; } @@ -1489,19 +1489,19 @@ public InputList MasterUserSecrets public Input? NetworkType { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + /// Enables Performance Insights for the RDS Cluster /// [Input("performanceInsightsEnabled")] public Input? PerformanceInsightsEnabled { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + /// Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). /// [Input("performanceInsightsKmsKeyId")] public Input? PerformanceInsightsKmsKeyId { get; set; } /// - /// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + /// Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. /// [Input("performanceInsightsRetentionPeriod")] public Input? PerformanceInsightsRetentionPeriod { get; set; } diff --git a/sdk/dotnet/Rds/ClusterSnapshotCopy.cs b/sdk/dotnet/Rds/ClusterSnapshotCopy.cs new file mode 100644 index 00000000000..936c2b95d20 --- /dev/null +++ b/sdk/dotnet/Rds/ClusterSnapshotCopy.cs @@ -0,0 +1,424 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rds +{ + /// + /// Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `aws.rds.SnapshotCopy` resource. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Rds.Cluster("example", new() + /// { + /// ClusterIdentifier = "aurora-cluster-demo", + /// DatabaseName = "test", + /// Engine = Aws.Rds.EngineType.AuroraMysql, + /// MasterUsername = "tfacctest", + /// MasterPassword = "avoid-plaintext-passwords", + /// SkipFinalSnapshot = true, + /// }); + /// + /// var exampleClusterSnapshot = new Aws.Rds.ClusterSnapshot("example", new() + /// { + /// DbClusterIdentifier = example.ClusterIdentifier, + /// DbClusterSnapshotIdentifier = "example", + /// }); + /// + /// var exampleClusterSnapshotCopy = new Aws.Rds.ClusterSnapshotCopy("example", new() + /// { + /// SourceDbClusterSnapshotIdentifier = exampleClusterSnapshot.DbClusterSnapshotArn, + /// TargetDbClusterSnapshotIdentifier = "example-copy", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot + /// ``` + /// + [AwsResourceType("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy")] + public partial class ClusterSnapshotCopy : global::Pulumi.CustomResource + { + /// + /// Specifies the allocated storage size in gigabytes (GB). + /// + [Output("allocatedStorage")] + public Output AllocatedStorage { get; private set; } = null!; + + /// + /// Whether to copy existing tags. Defaults to `false`. + /// + [Output("copyTags")] + public Output CopyTags { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) for the DB cluster snapshot. + /// + [Output("dbClusterSnapshotArn")] + public Output DbClusterSnapshotArn { get; private set; } = null!; + + /// + /// The Destination region to place snapshot copy. + /// + [Output("destinationRegion")] + public Output DestinationRegion { get; private set; } = null!; + + /// + /// Specifies the name of the database engine. + /// + [Output("engine")] + public Output Engine { get; private set; } = null!; + + /// + /// Specifies the version of the database engine. + /// + [Output("engineVersion")] + public Output EngineVersion { get; private set; } = null!; + + /// + /// KMS key ID. + /// + [Output("kmsKeyId")] + public Output KmsKeyId { get; private set; } = null!; + + /// + /// License model information for the restored DB instance. + /// + [Output("licenseModel")] + public Output LicenseModel { get; private set; } = null!; + + /// + /// URL that contains a Signature Version 4 signed request. + /// + [Output("presignedUrl")] + public Output PresignedUrl { get; private set; } = null!; + + /// + /// List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + /// + [Output("sharedAccounts")] + public Output> SharedAccounts { get; private set; } = null!; + + [Output("snapshotType")] + public Output SnapshotType { get; private set; } = null!; + + /// + /// Identifier of the source snapshot. + /// + [Output("sourceDbClusterSnapshotIdentifier")] + public Output SourceDbClusterSnapshotIdentifier { get; private set; } = null!; + + /// + /// Specifies whether the DB cluster snapshot is encrypted. + /// + [Output("storageEncrypted")] + public Output StorageEncrypted { get; private set; } = null!; + + /// + /// Specifies the storage type associated with DB cluster snapshot. + /// + [Output("storageType")] + public Output StorageType { get; private set; } = null!; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + /// + /// Identifier for the snapshot. + /// + /// The following arguments are optional: + /// + [Output("targetDbClusterSnapshotIdentifier")] + public Output TargetDbClusterSnapshotIdentifier { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// Provides the VPC ID associated with the DB cluster snapshot. + /// + [Output("vpcId")] + public Output VpcId { get; private set; } = null!; + + + /// + /// Create a ClusterSnapshotCopy resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ClusterSnapshotCopy(string name, ClusterSnapshotCopyArgs args, CustomResourceOptions? options = null) + : base("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, args ?? new ClusterSnapshotCopyArgs(), MakeResourceOptions(options, "")) + { + } + + private ClusterSnapshotCopy(string name, Input id, ClusterSnapshotCopyState? state = null, CustomResourceOptions? options = null) + : base("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ClusterSnapshotCopy resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ClusterSnapshotCopy Get(string name, Input id, ClusterSnapshotCopyState? state = null, CustomResourceOptions? options = null) + { + return new ClusterSnapshotCopy(name, id, state, options); + } + } + + public sealed class ClusterSnapshotCopyArgs : global::Pulumi.ResourceArgs + { + /// + /// Whether to copy existing tags. Defaults to `false`. + /// + [Input("copyTags")] + public Input? CopyTags { get; set; } + + /// + /// The Destination region to place snapshot copy. + /// + [Input("destinationRegion")] + public Input? DestinationRegion { get; set; } + + /// + /// KMS key ID. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// URL that contains a Signature Version 4 signed request. + /// + [Input("presignedUrl")] + public Input? PresignedUrl { get; set; } + + [Input("sharedAccounts")] + private InputList? _sharedAccounts; + + /// + /// List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + /// + public InputList SharedAccounts + { + get => _sharedAccounts ?? (_sharedAccounts = new InputList()); + set => _sharedAccounts = value; + } + + /// + /// Identifier of the source snapshot. + /// + [Input("sourceDbClusterSnapshotIdentifier", required: true)] + public Input SourceDbClusterSnapshotIdentifier { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// Identifier for the snapshot. + /// + /// The following arguments are optional: + /// + [Input("targetDbClusterSnapshotIdentifier", required: true)] + public Input TargetDbClusterSnapshotIdentifier { get; set; } = null!; + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ClusterSnapshotCopyArgs() + { + } + public static new ClusterSnapshotCopyArgs Empty => new ClusterSnapshotCopyArgs(); + } + + public sealed class ClusterSnapshotCopyState : global::Pulumi.ResourceArgs + { + /// + /// Specifies the allocated storage size in gigabytes (GB). + /// + [Input("allocatedStorage")] + public Input? AllocatedStorage { get; set; } + + /// + /// Whether to copy existing tags. Defaults to `false`. + /// + [Input("copyTags")] + public Input? CopyTags { get; set; } + + /// + /// The Amazon Resource Name (ARN) for the DB cluster snapshot. + /// + [Input("dbClusterSnapshotArn")] + public Input? DbClusterSnapshotArn { get; set; } + + /// + /// The Destination region to place snapshot copy. + /// + [Input("destinationRegion")] + public Input? DestinationRegion { get; set; } + + /// + /// Specifies the name of the database engine. + /// + [Input("engine")] + public Input? Engine { get; set; } + + /// + /// Specifies the version of the database engine. + /// + [Input("engineVersion")] + public Input? EngineVersion { get; set; } + + /// + /// KMS key ID. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// License model information for the restored DB instance. + /// + [Input("licenseModel")] + public Input? LicenseModel { get; set; } + + /// + /// URL that contains a Signature Version 4 signed request. + /// + [Input("presignedUrl")] + public Input? PresignedUrl { get; set; } + + [Input("sharedAccounts")] + private InputList? _sharedAccounts; + + /// + /// List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + /// + public InputList SharedAccounts + { + get => _sharedAccounts ?? (_sharedAccounts = new InputList()); + set => _sharedAccounts = value; + } + + [Input("snapshotType")] + public Input? SnapshotType { get; set; } + + /// + /// Identifier of the source snapshot. + /// + [Input("sourceDbClusterSnapshotIdentifier")] + public Input? SourceDbClusterSnapshotIdentifier { get; set; } + + /// + /// Specifies whether the DB cluster snapshot is encrypted. + /// + [Input("storageEncrypted")] + public Input? StorageEncrypted { get; set; } + + /// + /// Specifies the storage type associated with DB cluster snapshot. + /// + [Input("storageType")] + public Input? StorageType { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + /// + /// Identifier for the snapshot. + /// + /// The following arguments are optional: + /// + [Input("targetDbClusterSnapshotIdentifier")] + public Input? TargetDbClusterSnapshotIdentifier { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// Provides the VPC ID associated with the DB cluster snapshot. + /// + [Input("vpcId")] + public Input? VpcId { get; set; } + + public ClusterSnapshotCopyState() + { + } + public static new ClusterSnapshotCopyState Empty => new ClusterSnapshotCopyState(); + } +} diff --git a/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsArgs.cs b/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsArgs.cs new file mode 100644 index 00000000000..b3352b1856f --- /dev/null +++ b/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rds.Inputs +{ + + public sealed class ClusterSnapshotCopyTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public ClusterSnapshotCopyTimeoutsArgs() + { + } + public static new ClusterSnapshotCopyTimeoutsArgs Empty => new ClusterSnapshotCopyTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsGetArgs.cs b/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsGetArgs.cs new file mode 100644 index 00000000000..a3d768b288e --- /dev/null +++ b/sdk/dotnet/Rds/Inputs/ClusterSnapshotCopyTimeoutsGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rds.Inputs +{ + + public sealed class ClusterSnapshotCopyTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public ClusterSnapshotCopyTimeoutsGetArgs() + { + } + public static new ClusterSnapshotCopyTimeoutsGetArgs Empty => new ClusterSnapshotCopyTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Rds/Outputs/ClusterSnapshotCopyTimeouts.cs b/sdk/dotnet/Rds/Outputs/ClusterSnapshotCopyTimeouts.cs new file mode 100644 index 00000000000..750d4dc6317 --- /dev/null +++ b/sdk/dotnet/Rds/Outputs/ClusterSnapshotCopyTimeouts.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Rds.Outputs +{ + + [OutputType] + public sealed class ClusterSnapshotCopyTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + + [OutputConstructor] + private ClusterSnapshotCopyTimeouts(string? create) + { + Create = create; + } + } +} diff --git a/sdk/dotnet/ResourceGroups/Resource.cs b/sdk/dotnet/ResourceGroups/Resource.cs index 0c4a02dd03c..d6ed1451253 100644 --- a/sdk/dotnet/ResourceGroups/Resource.cs +++ b/sdk/dotnet/ResourceGroups/Resource.cs @@ -45,20 +45,26 @@ namespace Pulumi.Aws.ResourceGroups /// /// }); /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: + /// + /// ```sh + /// $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example + /// ``` /// [AwsResourceType("aws:resourcegroups/resource:Resource")] public partial class Resource : global::Pulumi.CustomResource { /// - /// The name or the ARN of the resource group to add resources to. - /// - /// The following arguments are optional: + /// Name or ARN of the resource group to add resources to. /// [Output("groupArn")] public Output GroupArn { get; private set; } = null!; /// - /// The ARN of the resource to be added to the group. + /// ARN of the resource to be added to the group. /// [Output("resourceArn")] public Output ResourceArn { get; private set; } = null!; @@ -116,15 +122,13 @@ public static Resource Get(string name, Input id, ResourceState? state = public sealed class ResourceArgs : global::Pulumi.ResourceArgs { /// - /// The name or the ARN of the resource group to add resources to. - /// - /// The following arguments are optional: + /// Name or ARN of the resource group to add resources to. /// [Input("groupArn", required: true)] public Input GroupArn { get; set; } = null!; /// - /// The ARN of the resource to be added to the group. + /// ARN of the resource to be added to the group. /// [Input("resourceArn", required: true)] public Input ResourceArn { get; set; } = null!; @@ -138,15 +142,13 @@ public ResourceArgs() public sealed class ResourceState : global::Pulumi.ResourceArgs { /// - /// The name or the ARN of the resource group to add resources to. - /// - /// The following arguments are optional: + /// Name or ARN of the resource group to add resources to. /// [Input("groupArn")] public Input? GroupArn { get; set; } /// - /// The ARN of the resource to be added to the group. + /// ARN of the resource to be added to the group. /// [Input("resourceArn")] public Input? ResourceArn { get; set; } diff --git a/sdk/dotnet/ServiceCatalog/GetAppregistryAttributeGroupAssociations.cs b/sdk/dotnet/ServiceCatalog/GetAppregistryAttributeGroupAssociations.cs new file mode 100644 index 00000000000..6293b51ae6e --- /dev/null +++ b/sdk/dotnet/ServiceCatalog/GetAppregistryAttributeGroupAssociations.cs @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ServiceCatalog +{ + public static class GetAppregistryAttributeGroupAssociations + { + /// + /// Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ServiceCatalog.GetAppregistryAttributeGroupAssociations.Invoke(new() + /// { + /// Id = "12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3", + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetAppregistryAttributeGroupAssociationsArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", args ?? new GetAppregistryAttributeGroupAssociationsArgs(), options.WithDefaults()); + + /// + /// Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ServiceCatalog.GetAppregistryAttributeGroupAssociations.Invoke(new() + /// { + /// Id = "12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetAppregistryAttributeGroupAssociationsInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", args ?? new GetAppregistryAttributeGroupAssociationsInvokeArgs(), options.WithDefaults()); + + /// + /// Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ServiceCatalog.GetAppregistryAttributeGroupAssociations.Invoke(new() + /// { + /// Id = "12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetAppregistryAttributeGroupAssociationsInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", args ?? new GetAppregistryAttributeGroupAssociationsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAppregistryAttributeGroupAssociationsArgs : global::Pulumi.InvokeArgs + { + /// + /// ID of the application to which attribute groups are associated. + /// + [Input("id")] + public string? Id { get; set; } + + /// + /// Name of the application to which attribute groups are associated. + /// + /// The following arguments are optional: + /// + [Input("name")] + public string? Name { get; set; } + + public GetAppregistryAttributeGroupAssociationsArgs() + { + } + public static new GetAppregistryAttributeGroupAssociationsArgs Empty => new GetAppregistryAttributeGroupAssociationsArgs(); + } + + public sealed class GetAppregistryAttributeGroupAssociationsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// ID of the application to which attribute groups are associated. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// Name of the application to which attribute groups are associated. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + public GetAppregistryAttributeGroupAssociationsInvokeArgs() + { + } + public static new GetAppregistryAttributeGroupAssociationsInvokeArgs Empty => new GetAppregistryAttributeGroupAssociationsInvokeArgs(); + } + + + [OutputType] + public sealed class GetAppregistryAttributeGroupAssociationsResult + { + /// + /// Set of attribute group IDs this application is associated with. + /// + public readonly ImmutableArray AttributeGroupIds; + public readonly string? Id; + public readonly string? Name; + + [OutputConstructor] + private GetAppregistryAttributeGroupAssociationsResult( + ImmutableArray attributeGroupIds, + + string? id, + + string? name) + { + AttributeGroupIds = attributeGroupIds; + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationArgs.cs b/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationArgs.cs index 89515ebebe9..1d276488f3c 100644 --- a/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationArgs.cs +++ b/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.Aws.VerifiedAccess.Inputs public sealed class GroupSseConfigurationArgs : global::Pulumi.ResourceArgs { + /// + /// Boolean flag to indicate that the CMK should be used. + /// [Input("customerManagedKeyEnabled")] public Input? CustomerManagedKeyEnabled { get; set; } diff --git a/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationGetArgs.cs b/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationGetArgs.cs index 1055e0c134a..503c7c0066b 100644 --- a/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationGetArgs.cs +++ b/sdk/dotnet/VerifiedAccess/Inputs/GroupSseConfigurationGetArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.Aws.VerifiedAccess.Inputs public sealed class GroupSseConfigurationGetArgs : global::Pulumi.ResourceArgs { + /// + /// Boolean flag to indicate that the CMK should be used. + /// [Input("customerManagedKeyEnabled")] public Input? CustomerManagedKeyEnabled { get; set; } diff --git a/sdk/dotnet/VerifiedAccess/Outputs/GroupSseConfiguration.cs b/sdk/dotnet/VerifiedAccess/Outputs/GroupSseConfiguration.cs index 8bcbd15250a..83b0a66a068 100644 --- a/sdk/dotnet/VerifiedAccess/Outputs/GroupSseConfiguration.cs +++ b/sdk/dotnet/VerifiedAccess/Outputs/GroupSseConfiguration.cs @@ -13,6 +13,9 @@ namespace Pulumi.Aws.VerifiedAccess.Outputs [OutputType] public sealed class GroupSseConfiguration { + /// + /// Boolean flag to indicate that the CMK should be used. + /// public readonly bool? CustomerManagedKeyEnabled; /// /// ARN of the KMS key to use. diff --git a/sdk/go/aws/alb/pulumiTypes.go b/sdk/go/aws/alb/pulumiTypes.go index 13defc1fe00..9f22d33293a 100644 --- a/sdk/go/aws/alb/pulumiTypes.go +++ b/sdk/go/aws/alb/pulumiTypes.go @@ -1660,6 +1660,8 @@ func (o ListenerDefaultActionRedirectPtrOutput) StatusCode() pulumi.StringPtrOut } type ListenerMutualAuthentication struct { + // Valid values are `off` and `on`. + AdvertiseTrustStoreCaNames *string `pulumi:"advertiseTrustStoreCaNames"` // Whether client certificate expiry is ignored. Default is `false`. IgnoreClientCertificateExpiry *bool `pulumi:"ignoreClientCertificateExpiry"` // Valid values are `off`, `verify` and `passthrough`. @@ -1680,6 +1682,8 @@ type ListenerMutualAuthenticationInput interface { } type ListenerMutualAuthenticationArgs struct { + // Valid values are `off` and `on`. + AdvertiseTrustStoreCaNames pulumi.StringPtrInput `pulumi:"advertiseTrustStoreCaNames"` // Whether client certificate expiry is ignored. Default is `false`. IgnoreClientCertificateExpiry pulumi.BoolPtrInput `pulumi:"ignoreClientCertificateExpiry"` // Valid values are `off`, `verify` and `passthrough`. @@ -1765,6 +1769,11 @@ func (o ListenerMutualAuthenticationOutput) ToListenerMutualAuthenticationPtrOut }).(ListenerMutualAuthenticationPtrOutput) } +// Valid values are `off` and `on`. +func (o ListenerMutualAuthenticationOutput) AdvertiseTrustStoreCaNames() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListenerMutualAuthentication) *string { return v.AdvertiseTrustStoreCaNames }).(pulumi.StringPtrOutput) +} + // Whether client certificate expiry is ignored. Default is `false`. func (o ListenerMutualAuthenticationOutput) IgnoreClientCertificateExpiry() pulumi.BoolPtrOutput { return o.ApplyT(func(v ListenerMutualAuthentication) *bool { return v.IgnoreClientCertificateExpiry }).(pulumi.BoolPtrOutput) @@ -1804,6 +1813,16 @@ func (o ListenerMutualAuthenticationPtrOutput) Elem() ListenerMutualAuthenticati }).(ListenerMutualAuthenticationOutput) } +// Valid values are `off` and `on`. +func (o ListenerMutualAuthenticationPtrOutput) AdvertiseTrustStoreCaNames() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ListenerMutualAuthentication) *string { + if v == nil { + return nil + } + return v.AdvertiseTrustStoreCaNames + }).(pulumi.StringPtrOutput) +} + // Whether client certificate expiry is ignored. Default is `false`. func (o ListenerMutualAuthenticationPtrOutput) IgnoreClientCertificateExpiry() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ListenerMutualAuthentication) *bool { diff --git a/sdk/go/aws/amplify/domainAssociation.go b/sdk/go/aws/amplify/domainAssociation.go index 904b2254455..7f47b8d3222 100644 --- a/sdk/go/aws/amplify/domainAssociation.go +++ b/sdk/go/aws/amplify/domainAssociation.go @@ -86,7 +86,7 @@ type DomainAssociation struct { // ARN for the domain association. Arn pulumi.StringOutput `pulumi:"arn"` // The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. - CertificateSettings DomainAssociationCertificateSettingsPtrOutput `pulumi:"certificateSettings"` + CertificateSettings DomainAssociationCertificateSettingsOutput `pulumi:"certificateSettings"` // DNS records for certificate verification in a space-delimited format (` CNAME `). CertificateVerificationDnsRecord pulumi.StringOutput `pulumi:"certificateVerificationDnsRecord"` // Domain name for the domain association. @@ -308,8 +308,8 @@ func (o DomainAssociationOutput) Arn() pulumi.StringOutput { } // The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. -func (o DomainAssociationOutput) CertificateSettings() DomainAssociationCertificateSettingsPtrOutput { - return o.ApplyT(func(v *DomainAssociation) DomainAssociationCertificateSettingsPtrOutput { return v.CertificateSettings }).(DomainAssociationCertificateSettingsPtrOutput) +func (o DomainAssociationOutput) CertificateSettings() DomainAssociationCertificateSettingsOutput { + return o.ApplyT(func(v *DomainAssociation) DomainAssociationCertificateSettingsOutput { return v.CertificateSettings }).(DomainAssociationCertificateSettingsOutput) } // DNS records for certificate verification in a space-delimited format (` CNAME `). diff --git a/sdk/go/aws/amplify/pulumiTypes.go b/sdk/go/aws/amplify/pulumiTypes.go index 642497c5758..1aa61e5cd45 100644 --- a/sdk/go/aws/amplify/pulumiTypes.go +++ b/sdk/go/aws/amplify/pulumiTypes.go @@ -710,8 +710,10 @@ type DomainAssociationCertificateSettings struct { // DNS records for certificate verification in a space-delimited format (` CNAME `). CertificateVerificationDnsRecord *string `pulumi:"certificateVerificationDnsRecord"` // The Amazon resource name (ARN) for the custom certificate. + // Required when `type` is `CUSTOM`. CustomCertificateArn *string `pulumi:"customCertificateArn"` - // The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + // The certificate type. + // Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. Type string `pulumi:"type"` } @@ -730,8 +732,10 @@ type DomainAssociationCertificateSettingsArgs struct { // DNS records for certificate verification in a space-delimited format (` CNAME `). CertificateVerificationDnsRecord pulumi.StringPtrInput `pulumi:"certificateVerificationDnsRecord"` // The Amazon resource name (ARN) for the custom certificate. + // Required when `type` is `CUSTOM`. CustomCertificateArn pulumi.StringPtrInput `pulumi:"customCertificateArn"` - // The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + // The certificate type. + // Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. Type pulumi.StringInput `pulumi:"type"` } @@ -818,11 +822,13 @@ func (o DomainAssociationCertificateSettingsOutput) CertificateVerificationDnsRe } // The Amazon resource name (ARN) for the custom certificate. +// Required when `type` is `CUSTOM`. func (o DomainAssociationCertificateSettingsOutput) CustomCertificateArn() pulumi.StringPtrOutput { return o.ApplyT(func(v DomainAssociationCertificateSettings) *string { return v.CustomCertificateArn }).(pulumi.StringPtrOutput) } -// The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. +// The certificate type. +// Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. func (o DomainAssociationCertificateSettingsOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v DomainAssociationCertificateSettings) string { return v.Type }).(pulumi.StringOutput) } @@ -862,6 +868,7 @@ func (o DomainAssociationCertificateSettingsPtrOutput) CertificateVerificationDn } // The Amazon resource name (ARN) for the custom certificate. +// Required when `type` is `CUSTOM`. func (o DomainAssociationCertificateSettingsPtrOutput) CustomCertificateArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *DomainAssociationCertificateSettings) *string { if v == nil { @@ -871,7 +878,8 @@ func (o DomainAssociationCertificateSettingsPtrOutput) CustomCertificateArn() pu }).(pulumi.StringPtrOutput) } -// The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. +// The certificate type. +// Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. func (o DomainAssociationCertificateSettingsPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *DomainAssociationCertificateSettings) *string { if v == nil { diff --git a/sdk/go/aws/apigateway/domainNameAccessAssociation.go b/sdk/go/aws/apigateway/domainNameAccessAssociation.go new file mode 100644 index 00000000000..60b8496b41c --- /dev/null +++ b/sdk/go/aws/apigateway/domainNameAccessAssociation.go @@ -0,0 +1,336 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package apigateway + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Creates a domain name access association resource between an access association source and a private custom domain name. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := apigateway.NewDomainNameAccessAssociation(ctx, "example", &apigateway.DomainNameAccessAssociationArgs{ +// AccessAssociationSource: pulumi.Any(exampleAwsVpcEndpoint.Id), +// AccessAssociationSourceType: pulumi.String("VPCE"), +// DomainNameArn: pulumi.Any(exampleAwsApiGatewayDomainName.DomainNameArn), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: +// +// ```sh +// $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 +// ``` +type DomainNameAccessAssociation struct { + pulumi.CustomResourceState + + // The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + AccessAssociationSource pulumi.StringOutput `pulumi:"accessAssociationSource"` + // The type of the domain name access association source. Valid values are `VPCE`. + AccessAssociationSourceType pulumi.StringOutput `pulumi:"accessAssociationSourceType"` + // ARN of the domain name access association. + Arn pulumi.StringOutput `pulumi:"arn"` + // The ARN of the domain name. + DomainNameArn pulumi.StringOutput `pulumi:"domainNameArn"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewDomainNameAccessAssociation registers a new resource with the given unique name, arguments, and options. +func NewDomainNameAccessAssociation(ctx *pulumi.Context, + name string, args *DomainNameAccessAssociationArgs, opts ...pulumi.ResourceOption) (*DomainNameAccessAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccessAssociationSource == nil { + return nil, errors.New("invalid value for required argument 'AccessAssociationSource'") + } + if args.AccessAssociationSourceType == nil { + return nil, errors.New("invalid value for required argument 'AccessAssociationSourceType'") + } + if args.DomainNameArn == nil { + return nil, errors.New("invalid value for required argument 'DomainNameArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DomainNameAccessAssociation + err := ctx.RegisterResource("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDomainNameAccessAssociation gets an existing DomainNameAccessAssociation resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDomainNameAccessAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DomainNameAccessAssociationState, opts ...pulumi.ResourceOption) (*DomainNameAccessAssociation, error) { + var resource DomainNameAccessAssociation + err := ctx.ReadResource("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DomainNameAccessAssociation resources. +type domainNameAccessAssociationState struct { + // The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + AccessAssociationSource *string `pulumi:"accessAssociationSource"` + // The type of the domain name access association source. Valid values are `VPCE`. + AccessAssociationSourceType *string `pulumi:"accessAssociationSourceType"` + // ARN of the domain name access association. + Arn *string `pulumi:"arn"` + // The ARN of the domain name. + DomainNameArn *string `pulumi:"domainNameArn"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type DomainNameAccessAssociationState struct { + // The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + AccessAssociationSource pulumi.StringPtrInput + // The type of the domain name access association source. Valid values are `VPCE`. + AccessAssociationSourceType pulumi.StringPtrInput + // ARN of the domain name access association. + Arn pulumi.StringPtrInput + // The ARN of the domain name. + DomainNameArn pulumi.StringPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (DomainNameAccessAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*domainNameAccessAssociationState)(nil)).Elem() +} + +type domainNameAccessAssociationArgs struct { + // The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + AccessAssociationSource string `pulumi:"accessAssociationSource"` + // The type of the domain name access association source. Valid values are `VPCE`. + AccessAssociationSourceType string `pulumi:"accessAssociationSourceType"` + // The ARN of the domain name. + DomainNameArn string `pulumi:"domainNameArn"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a DomainNameAccessAssociation resource. +type DomainNameAccessAssociationArgs struct { + // The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + AccessAssociationSource pulumi.StringInput + // The type of the domain name access association source. Valid values are `VPCE`. + AccessAssociationSourceType pulumi.StringInput + // The ARN of the domain name. + DomainNameArn pulumi.StringInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (DomainNameAccessAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*domainNameAccessAssociationArgs)(nil)).Elem() +} + +type DomainNameAccessAssociationInput interface { + pulumi.Input + + ToDomainNameAccessAssociationOutput() DomainNameAccessAssociationOutput + ToDomainNameAccessAssociationOutputWithContext(ctx context.Context) DomainNameAccessAssociationOutput +} + +func (*DomainNameAccessAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**DomainNameAccessAssociation)(nil)).Elem() +} + +func (i *DomainNameAccessAssociation) ToDomainNameAccessAssociationOutput() DomainNameAccessAssociationOutput { + return i.ToDomainNameAccessAssociationOutputWithContext(context.Background()) +} + +func (i *DomainNameAccessAssociation) ToDomainNameAccessAssociationOutputWithContext(ctx context.Context) DomainNameAccessAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameAccessAssociationOutput) +} + +// DomainNameAccessAssociationArrayInput is an input type that accepts DomainNameAccessAssociationArray and DomainNameAccessAssociationArrayOutput values. +// You can construct a concrete instance of `DomainNameAccessAssociationArrayInput` via: +// +// DomainNameAccessAssociationArray{ DomainNameAccessAssociationArgs{...} } +type DomainNameAccessAssociationArrayInput interface { + pulumi.Input + + ToDomainNameAccessAssociationArrayOutput() DomainNameAccessAssociationArrayOutput + ToDomainNameAccessAssociationArrayOutputWithContext(context.Context) DomainNameAccessAssociationArrayOutput +} + +type DomainNameAccessAssociationArray []DomainNameAccessAssociationInput + +func (DomainNameAccessAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DomainNameAccessAssociation)(nil)).Elem() +} + +func (i DomainNameAccessAssociationArray) ToDomainNameAccessAssociationArrayOutput() DomainNameAccessAssociationArrayOutput { + return i.ToDomainNameAccessAssociationArrayOutputWithContext(context.Background()) +} + +func (i DomainNameAccessAssociationArray) ToDomainNameAccessAssociationArrayOutputWithContext(ctx context.Context) DomainNameAccessAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameAccessAssociationArrayOutput) +} + +// DomainNameAccessAssociationMapInput is an input type that accepts DomainNameAccessAssociationMap and DomainNameAccessAssociationMapOutput values. +// You can construct a concrete instance of `DomainNameAccessAssociationMapInput` via: +// +// DomainNameAccessAssociationMap{ "key": DomainNameAccessAssociationArgs{...} } +type DomainNameAccessAssociationMapInput interface { + pulumi.Input + + ToDomainNameAccessAssociationMapOutput() DomainNameAccessAssociationMapOutput + ToDomainNameAccessAssociationMapOutputWithContext(context.Context) DomainNameAccessAssociationMapOutput +} + +type DomainNameAccessAssociationMap map[string]DomainNameAccessAssociationInput + +func (DomainNameAccessAssociationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DomainNameAccessAssociation)(nil)).Elem() +} + +func (i DomainNameAccessAssociationMap) ToDomainNameAccessAssociationMapOutput() DomainNameAccessAssociationMapOutput { + return i.ToDomainNameAccessAssociationMapOutputWithContext(context.Background()) +} + +func (i DomainNameAccessAssociationMap) ToDomainNameAccessAssociationMapOutputWithContext(ctx context.Context) DomainNameAccessAssociationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameAccessAssociationMapOutput) +} + +type DomainNameAccessAssociationOutput struct{ *pulumi.OutputState } + +func (DomainNameAccessAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainNameAccessAssociation)(nil)).Elem() +} + +func (o DomainNameAccessAssociationOutput) ToDomainNameAccessAssociationOutput() DomainNameAccessAssociationOutput { + return o +} + +func (o DomainNameAccessAssociationOutput) ToDomainNameAccessAssociationOutputWithContext(ctx context.Context) DomainNameAccessAssociationOutput { + return o +} + +// The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. +func (o DomainNameAccessAssociationOutput) AccessAssociationSource() pulumi.StringOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringOutput { return v.AccessAssociationSource }).(pulumi.StringOutput) +} + +// The type of the domain name access association source. Valid values are `VPCE`. +func (o DomainNameAccessAssociationOutput) AccessAssociationSourceType() pulumi.StringOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringOutput { return v.AccessAssociationSourceType }).(pulumi.StringOutput) +} + +// ARN of the domain name access association. +func (o DomainNameAccessAssociationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The ARN of the domain name. +func (o DomainNameAccessAssociationOutput) DomainNameArn() pulumi.StringOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringOutput { return v.DomainNameArn }).(pulumi.StringOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o DomainNameAccessAssociationOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o DomainNameAccessAssociationOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *DomainNameAccessAssociation) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type DomainNameAccessAssociationArrayOutput struct{ *pulumi.OutputState } + +func (DomainNameAccessAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DomainNameAccessAssociation)(nil)).Elem() +} + +func (o DomainNameAccessAssociationArrayOutput) ToDomainNameAccessAssociationArrayOutput() DomainNameAccessAssociationArrayOutput { + return o +} + +func (o DomainNameAccessAssociationArrayOutput) ToDomainNameAccessAssociationArrayOutputWithContext(ctx context.Context) DomainNameAccessAssociationArrayOutput { + return o +} + +func (o DomainNameAccessAssociationArrayOutput) Index(i pulumi.IntInput) DomainNameAccessAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DomainNameAccessAssociation { + return vs[0].([]*DomainNameAccessAssociation)[vs[1].(int)] + }).(DomainNameAccessAssociationOutput) +} + +type DomainNameAccessAssociationMapOutput struct{ *pulumi.OutputState } + +func (DomainNameAccessAssociationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DomainNameAccessAssociation)(nil)).Elem() +} + +func (o DomainNameAccessAssociationMapOutput) ToDomainNameAccessAssociationMapOutput() DomainNameAccessAssociationMapOutput { + return o +} + +func (o DomainNameAccessAssociationMapOutput) ToDomainNameAccessAssociationMapOutputWithContext(ctx context.Context) DomainNameAccessAssociationMapOutput { + return o +} + +func (o DomainNameAccessAssociationMapOutput) MapIndex(k pulumi.StringInput) DomainNameAccessAssociationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DomainNameAccessAssociation { + return vs[0].(map[string]*DomainNameAccessAssociation)[vs[1].(string)] + }).(DomainNameAccessAssociationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DomainNameAccessAssociationInput)(nil)).Elem(), &DomainNameAccessAssociation{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainNameAccessAssociationArrayInput)(nil)).Elem(), DomainNameAccessAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainNameAccessAssociationMapInput)(nil)).Elem(), DomainNameAccessAssociationMap{}) + pulumi.RegisterOutputType(DomainNameAccessAssociationOutput{}) + pulumi.RegisterOutputType(DomainNameAccessAssociationArrayOutput{}) + pulumi.RegisterOutputType(DomainNameAccessAssociationMapOutput{}) +} diff --git a/sdk/go/aws/apigateway/init.go b/sdk/go/aws/apigateway/init.go index abafdff6df2..019de27147e 100644 --- a/sdk/go/aws/apigateway/init.go +++ b/sdk/go/aws/apigateway/init.go @@ -39,6 +39,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &DocumentationVersion{} case "aws:apigateway/domainName:DomainName": r = &DomainName{} + case "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation": + r = &DomainNameAccessAssociation{} case "aws:apigateway/integration:Integration": r = &Integration{} case "aws:apigateway/integrationResponse:IntegrationResponse": @@ -127,6 +129,11 @@ func init() { "apigateway/domainName", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "apigateway/domainNameAccessAssociation", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "apigateway/integration", diff --git a/sdk/go/aws/appstream/pulumiTypes.go b/sdk/go/aws/appstream/pulumiTypes.go index a640b333444..4ecab9bdf0d 100644 --- a/sdk/go/aws/appstream/pulumiTypes.go +++ b/sdk/go/aws/appstream/pulumiTypes.go @@ -1646,7 +1646,7 @@ func (o StackStreamingExperienceSettingsPtrOutput) PreferredProtocol() pulumi.St type StackUserSetting struct { // Action that is enabled or disabled. - // Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + // Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. Action string `pulumi:"action"` // Whether the action is enabled or disabled. // Valid values are `ENABLED` or `DISABLED`. @@ -1666,7 +1666,7 @@ type StackUserSettingInput interface { type StackUserSettingArgs struct { // Action that is enabled or disabled. - // Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + // Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. Action pulumi.StringInput `pulumi:"action"` // Whether the action is enabled or disabled. // Valid values are `ENABLED` or `DISABLED`. @@ -1725,7 +1725,7 @@ func (o StackUserSettingOutput) ToStackUserSettingOutputWithContext(ctx context. } // Action that is enabled or disabled. -// Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. +// Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. func (o StackUserSettingOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v StackUserSetting) string { return v.Action }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/appstream/stack.go b/sdk/go/aws/appstream/stack.go index 4aa764ca956..25323bfa9a8 100644 --- a/sdk/go/aws/appstream/stack.go +++ b/sdk/go/aws/appstream/stack.go @@ -40,6 +40,10 @@ import ( // }, // UserSettings: appstream.StackUserSettingArray{ // &appstream.StackUserSettingArgs{ +// Action: pulumi.String("AUTO_TIME_ZONE_REDIRECTION"), +// Permission: pulumi.String("DISABLED"), +// }, +// &appstream.StackUserSettingArgs{ // Action: pulumi.String("CLIPBOARD_COPY_FROM_LOCAL_DEVICE"), // Permission: pulumi.String("ENABLED"), // }, diff --git a/sdk/go/aws/autoscaling/group.go b/sdk/go/aws/autoscaling/group.go index 5c8993dce41..54eb1860a40 100644 --- a/sdk/go/aws/autoscaling/group.go +++ b/sdk/go/aws/autoscaling/group.go @@ -594,6 +594,8 @@ type Group struct { // ARN for this Auto Scaling Group Arn pulumi.StringOutput `pulumi:"arn"` + // The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + AvailabilityZoneDistribution GroupAvailabilityZoneDistributionOutput `pulumi:"availabilityZoneDistribution"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` // Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. @@ -750,6 +752,8 @@ func GetGroup(ctx *pulumi.Context, type groupState struct { // ARN for this Auto Scaling Group Arn *string `pulumi:"arn"` + // The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + AvailabilityZoneDistribution *GroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. AvailabilityZones []string `pulumi:"availabilityZones"` // Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. @@ -871,6 +875,8 @@ type groupState struct { type GroupState struct { // ARN for this Auto Scaling Group Arn pulumi.StringPtrInput + // The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + AvailabilityZoneDistribution GroupAvailabilityZoneDistributionPtrInput // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. AvailabilityZones pulumi.StringArrayInput // Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. @@ -994,6 +1000,8 @@ func (GroupState) ElementType() reflect.Type { } type groupArgs struct { + // The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + AvailabilityZoneDistribution *GroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. AvailabilityZones []string `pulumi:"availabilityZones"` // Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. @@ -1110,6 +1118,8 @@ type groupArgs struct { // The set of arguments for constructing a Group resource. type GroupArgs struct { + // The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + AvailabilityZoneDistribution GroupAvailabilityZoneDistributionPtrInput // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. AvailabilityZones pulumi.StringArrayInput // Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. @@ -1316,6 +1326,11 @@ func (o GroupOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Group) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } +// The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. +func (o GroupOutput) AvailabilityZoneDistribution() GroupAvailabilityZoneDistributionOutput { + return o.ApplyT(func(v *Group) GroupAvailabilityZoneDistributionOutput { return v.AvailabilityZoneDistribution }).(GroupAvailabilityZoneDistributionOutput) +} + // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. func (o GroupOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v *Group) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/autoscaling/pulumiTypes.go b/sdk/go/aws/autoscaling/pulumiTypes.go index 7ebc3672fd5..796af59bf3b 100644 --- a/sdk/go/aws/autoscaling/pulumiTypes.go +++ b/sdk/go/aws/autoscaling/pulumiTypes.go @@ -13,6 +13,143 @@ import ( var _ = internal.GetEnvOrDefault +type GroupAvailabilityZoneDistribution struct { + // The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + CapacityDistributionStrategy *string `pulumi:"capacityDistributionStrategy"` +} + +// GroupAvailabilityZoneDistributionInput is an input type that accepts GroupAvailabilityZoneDistributionArgs and GroupAvailabilityZoneDistributionOutput values. +// You can construct a concrete instance of `GroupAvailabilityZoneDistributionInput` via: +// +// GroupAvailabilityZoneDistributionArgs{...} +type GroupAvailabilityZoneDistributionInput interface { + pulumi.Input + + ToGroupAvailabilityZoneDistributionOutput() GroupAvailabilityZoneDistributionOutput + ToGroupAvailabilityZoneDistributionOutputWithContext(context.Context) GroupAvailabilityZoneDistributionOutput +} + +type GroupAvailabilityZoneDistributionArgs struct { + // The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + CapacityDistributionStrategy pulumi.StringPtrInput `pulumi:"capacityDistributionStrategy"` +} + +func (GroupAvailabilityZoneDistributionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GroupAvailabilityZoneDistribution)(nil)).Elem() +} + +func (i GroupAvailabilityZoneDistributionArgs) ToGroupAvailabilityZoneDistributionOutput() GroupAvailabilityZoneDistributionOutput { + return i.ToGroupAvailabilityZoneDistributionOutputWithContext(context.Background()) +} + +func (i GroupAvailabilityZoneDistributionArgs) ToGroupAvailabilityZoneDistributionOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupAvailabilityZoneDistributionOutput) +} + +func (i GroupAvailabilityZoneDistributionArgs) ToGroupAvailabilityZoneDistributionPtrOutput() GroupAvailabilityZoneDistributionPtrOutput { + return i.ToGroupAvailabilityZoneDistributionPtrOutputWithContext(context.Background()) +} + +func (i GroupAvailabilityZoneDistributionArgs) ToGroupAvailabilityZoneDistributionPtrOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupAvailabilityZoneDistributionOutput).ToGroupAvailabilityZoneDistributionPtrOutputWithContext(ctx) +} + +// GroupAvailabilityZoneDistributionPtrInput is an input type that accepts GroupAvailabilityZoneDistributionArgs, GroupAvailabilityZoneDistributionPtr and GroupAvailabilityZoneDistributionPtrOutput values. +// You can construct a concrete instance of `GroupAvailabilityZoneDistributionPtrInput` via: +// +// GroupAvailabilityZoneDistributionArgs{...} +// +// or: +// +// nil +type GroupAvailabilityZoneDistributionPtrInput interface { + pulumi.Input + + ToGroupAvailabilityZoneDistributionPtrOutput() GroupAvailabilityZoneDistributionPtrOutput + ToGroupAvailabilityZoneDistributionPtrOutputWithContext(context.Context) GroupAvailabilityZoneDistributionPtrOutput +} + +type groupAvailabilityZoneDistributionPtrType GroupAvailabilityZoneDistributionArgs + +func GroupAvailabilityZoneDistributionPtr(v *GroupAvailabilityZoneDistributionArgs) GroupAvailabilityZoneDistributionPtrInput { + return (*groupAvailabilityZoneDistributionPtrType)(v) +} + +func (*groupAvailabilityZoneDistributionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GroupAvailabilityZoneDistribution)(nil)).Elem() +} + +func (i *groupAvailabilityZoneDistributionPtrType) ToGroupAvailabilityZoneDistributionPtrOutput() GroupAvailabilityZoneDistributionPtrOutput { + return i.ToGroupAvailabilityZoneDistributionPtrOutputWithContext(context.Background()) +} + +func (i *groupAvailabilityZoneDistributionPtrType) ToGroupAvailabilityZoneDistributionPtrOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupAvailabilityZoneDistributionPtrOutput) +} + +type GroupAvailabilityZoneDistributionOutput struct{ *pulumi.OutputState } + +func (GroupAvailabilityZoneDistributionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupAvailabilityZoneDistribution)(nil)).Elem() +} + +func (o GroupAvailabilityZoneDistributionOutput) ToGroupAvailabilityZoneDistributionOutput() GroupAvailabilityZoneDistributionOutput { + return o +} + +func (o GroupAvailabilityZoneDistributionOutput) ToGroupAvailabilityZoneDistributionOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionOutput { + return o +} + +func (o GroupAvailabilityZoneDistributionOutput) ToGroupAvailabilityZoneDistributionPtrOutput() GroupAvailabilityZoneDistributionPtrOutput { + return o.ToGroupAvailabilityZoneDistributionPtrOutputWithContext(context.Background()) +} + +func (o GroupAvailabilityZoneDistributionOutput) ToGroupAvailabilityZoneDistributionPtrOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GroupAvailabilityZoneDistribution) *GroupAvailabilityZoneDistribution { + return &v + }).(GroupAvailabilityZoneDistributionPtrOutput) +} + +// The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. +func (o GroupAvailabilityZoneDistributionOutput) CapacityDistributionStrategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v GroupAvailabilityZoneDistribution) *string { return v.CapacityDistributionStrategy }).(pulumi.StringPtrOutput) +} + +type GroupAvailabilityZoneDistributionPtrOutput struct{ *pulumi.OutputState } + +func (GroupAvailabilityZoneDistributionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupAvailabilityZoneDistribution)(nil)).Elem() +} + +func (o GroupAvailabilityZoneDistributionPtrOutput) ToGroupAvailabilityZoneDistributionPtrOutput() GroupAvailabilityZoneDistributionPtrOutput { + return o +} + +func (o GroupAvailabilityZoneDistributionPtrOutput) ToGroupAvailabilityZoneDistributionPtrOutputWithContext(ctx context.Context) GroupAvailabilityZoneDistributionPtrOutput { + return o +} + +func (o GroupAvailabilityZoneDistributionPtrOutput) Elem() GroupAvailabilityZoneDistributionOutput { + return o.ApplyT(func(v *GroupAvailabilityZoneDistribution) GroupAvailabilityZoneDistribution { + if v != nil { + return *v + } + var ret GroupAvailabilityZoneDistribution + return ret + }).(GroupAvailabilityZoneDistributionOutput) +} + +// The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. +func (o GroupAvailabilityZoneDistributionPtrOutput) CapacityDistributionStrategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GroupAvailabilityZoneDistribution) *string { + if v == nil { + return nil + } + return v.CapacityDistributionStrategy + }).(pulumi.StringPtrOutput) +} + type GroupInitialLifecycleHook struct { DefaultResult *string `pulumi:"defaultResult"` HeartbeatTimeout *int `pulumi:"heartbeatTimeout"` @@ -12638,6 +12775,8 @@ func (o GetGroupWarmPoolInstanceReusePolicyArrayOutput) Index(i pulumi.IntInput) } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupAvailabilityZoneDistributionInput)(nil)).Elem(), GroupAvailabilityZoneDistributionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupAvailabilityZoneDistributionPtrInput)(nil)).Elem(), GroupAvailabilityZoneDistributionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupInitialLifecycleHookInput)(nil)).Elem(), GroupInitialLifecycleHookArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupInitialLifecycleHookArrayInput)(nil)).Elem(), GroupInitialLifecycleHookArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupInstanceMaintenancePolicyInput)(nil)).Elem(), GroupInstanceMaintenancePolicyArgs{}) @@ -12798,6 +12937,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetGroupWarmPoolArrayInput)(nil)).Elem(), GetGroupWarmPoolArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupWarmPoolInstanceReusePolicyInput)(nil)).Elem(), GetGroupWarmPoolInstanceReusePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGroupWarmPoolInstanceReusePolicyArrayInput)(nil)).Elem(), GetGroupWarmPoolInstanceReusePolicyArray{}) + pulumi.RegisterOutputType(GroupAvailabilityZoneDistributionOutput{}) + pulumi.RegisterOutputType(GroupAvailabilityZoneDistributionPtrOutput{}) pulumi.RegisterOutputType(GroupInitialLifecycleHookOutput{}) pulumi.RegisterOutputType(GroupInitialLifecycleHookArrayOutput{}) pulumi.RegisterOutputType(GroupInstanceMaintenancePolicyOutput{}) diff --git a/sdk/go/aws/bedrock/agentAgent.go b/sdk/go/aws/bedrock/agentAgent.go index 76ea4b5e394..b0085da78ac 100644 --- a/sdk/go/aws/bedrock/agentAgent.go +++ b/sdk/go/aws/bedrock/agentAgent.go @@ -139,6 +139,8 @@ type AgentAgent struct { // ARN of the agent. AgentArn pulumi.StringOutput `pulumi:"agentArn"` + // Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + AgentCollaboration pulumi.StringOutput `pulumi:"agentCollaboration"` // Unique identifier of the agent. AgentId pulumi.StringOutput `pulumi:"agentId"` // Name of the agent. @@ -217,6 +219,8 @@ func GetAgentAgent(ctx *pulumi.Context, type agentAgentState struct { // ARN of the agent. AgentArn *string `pulumi:"agentArn"` + // Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + AgentCollaboration *string `pulumi:"agentCollaboration"` // Unique identifier of the agent. AgentId *string `pulumi:"agentId"` // Name of the agent. @@ -257,6 +261,8 @@ type agentAgentState struct { type AgentAgentState struct { // ARN of the agent. AgentArn pulumi.StringPtrInput + // Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + AgentCollaboration pulumi.StringPtrInput // Unique identifier of the agent. AgentId pulumi.StringPtrInput // Name of the agent. @@ -299,6 +305,8 @@ func (AgentAgentState) ElementType() reflect.Type { } type agentAgentArgs struct { + // Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + AgentCollaboration *string `pulumi:"agentCollaboration"` // Name of the agent. AgentName string `pulumi:"agentName"` // ARN of the IAM role with permissions to invoke API operations on the agent. @@ -330,6 +338,8 @@ type agentAgentArgs struct { // The set of arguments for constructing a AgentAgent resource. type AgentAgentArgs struct { + // Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + AgentCollaboration pulumi.StringPtrInput // Name of the agent. AgentName pulumi.StringInput // ARN of the IAM role with permissions to invoke API operations on the agent. @@ -451,6 +461,11 @@ func (o AgentAgentOutput) AgentArn() pulumi.StringOutput { return o.ApplyT(func(v *AgentAgent) pulumi.StringOutput { return v.AgentArn }).(pulumi.StringOutput) } +// Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. +func (o AgentAgentOutput) AgentCollaboration() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAgent) pulumi.StringOutput { return v.AgentCollaboration }).(pulumi.StringOutput) +} + // Unique identifier of the agent. func (o AgentAgentOutput) AgentId() pulumi.StringOutput { return o.ApplyT(func(v *AgentAgent) pulumi.StringOutput { return v.AgentId }).(pulumi.StringOutput) diff --git a/sdk/go/aws/cloudfront/init.go b/sdk/go/aws/cloudfront/init.go index 123c5e8d05b..748dfe48eaf 100644 --- a/sdk/go/aws/cloudfront/init.go +++ b/sdk/go/aws/cloudfront/init.go @@ -53,6 +53,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RealtimeLogConfig{} case "aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy": r = &ResponseHeadersPolicy{} + case "aws:cloudfront/vpcOrigin:VpcOrigin": + r = &VpcOrigin{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -146,4 +148,9 @@ func init() { "cloudfront/responseHeadersPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "cloudfront/vpcOrigin", + &module{version}, + ) } diff --git a/sdk/go/aws/cloudfront/pulumiTypes.go b/sdk/go/aws/cloudfront/pulumiTypes.go index 366c3e9d737..da00ce7ce33 100644 --- a/sdk/go/aws/cloudfront/pulumiTypes.go +++ b/sdk/go/aws/cloudfront/pulumiTypes.go @@ -4162,6 +4162,8 @@ type DistributionOrigin struct { OriginShield *DistributionOriginOriginShield `pulumi:"originShield"` // CloudFront S3 origin configuration information. If a custom origin is required, use `customOriginConfig` instead. S3OriginConfig *DistributionOriginS3OriginConfig `pulumi:"s3OriginConfig"` + // The VPC origin configuration. + VpcOriginConfig *DistributionOriginVpcOriginConfig `pulumi:"vpcOriginConfig"` } // DistributionOriginInput is an input type that accepts DistributionOriginArgs and DistributionOriginOutput values. @@ -4195,6 +4197,8 @@ type DistributionOriginArgs struct { OriginShield DistributionOriginOriginShieldPtrInput `pulumi:"originShield"` // CloudFront S3 origin configuration information. If a custom origin is required, use `customOriginConfig` instead. S3OriginConfig DistributionOriginS3OriginConfigPtrInput `pulumi:"s3OriginConfig"` + // The VPC origin configuration. + VpcOriginConfig DistributionOriginVpcOriginConfigPtrInput `pulumi:"vpcOriginConfig"` } func (DistributionOriginArgs) ElementType() reflect.Type { @@ -4297,6 +4301,11 @@ func (o DistributionOriginOutput) S3OriginConfig() DistributionOriginS3OriginCon return o.ApplyT(func(v DistributionOrigin) *DistributionOriginS3OriginConfig { return v.S3OriginConfig }).(DistributionOriginS3OriginConfigPtrOutput) } +// The VPC origin configuration. +func (o DistributionOriginOutput) VpcOriginConfig() DistributionOriginVpcOriginConfigPtrOutput { + return o.ApplyT(func(v DistributionOrigin) *DistributionOriginVpcOriginConfig { return v.VpcOriginConfig }).(DistributionOriginVpcOriginConfigPtrOutput) +} + type DistributionOriginArrayOutput struct{ *pulumi.OutputState } func (DistributionOriginArrayOutput) ElementType() reflect.Type { @@ -4421,13 +4430,11 @@ type DistributionOriginCustomOriginConfig struct { // HTTP port the custom origin listens on. HttpPort int `pulumi:"httpPort"` // HTTPS port the custom origin listens on. - HttpsPort int `pulumi:"httpsPort"` - // The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. + HttpsPort int `pulumi:"httpsPort"` OriginKeepaliveTimeout *int `pulumi:"originKeepaliveTimeout"` // Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. OriginProtocolPolicy string `pulumi:"originProtocolPolicy"` - // The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - OriginReadTimeout *int `pulumi:"originReadTimeout"` + OriginReadTimeout *int `pulumi:"originReadTimeout"` // List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. OriginSslProtocols []string `pulumi:"originSslProtocols"` } @@ -4447,13 +4454,11 @@ type DistributionOriginCustomOriginConfigArgs struct { // HTTP port the custom origin listens on. HttpPort pulumi.IntInput `pulumi:"httpPort"` // HTTPS port the custom origin listens on. - HttpsPort pulumi.IntInput `pulumi:"httpsPort"` - // The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. + HttpsPort pulumi.IntInput `pulumi:"httpsPort"` OriginKeepaliveTimeout pulumi.IntPtrInput `pulumi:"originKeepaliveTimeout"` // Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. OriginProtocolPolicy pulumi.StringInput `pulumi:"originProtocolPolicy"` - // The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - OriginReadTimeout pulumi.IntPtrInput `pulumi:"originReadTimeout"` + OriginReadTimeout pulumi.IntPtrInput `pulumi:"originReadTimeout"` // List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. OriginSslProtocols pulumi.StringArrayInput `pulumi:"originSslProtocols"` } @@ -4545,7 +4550,6 @@ func (o DistributionOriginCustomOriginConfigOutput) HttpsPort() pulumi.IntOutput return o.ApplyT(func(v DistributionOriginCustomOriginConfig) int { return v.HttpsPort }).(pulumi.IntOutput) } -// The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. func (o DistributionOriginCustomOriginConfigOutput) OriginKeepaliveTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v DistributionOriginCustomOriginConfig) *int { return v.OriginKeepaliveTimeout }).(pulumi.IntPtrOutput) } @@ -4555,7 +4559,6 @@ func (o DistributionOriginCustomOriginConfigOutput) OriginProtocolPolicy() pulum return o.ApplyT(func(v DistributionOriginCustomOriginConfig) string { return v.OriginProtocolPolicy }).(pulumi.StringOutput) } -// The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. func (o DistributionOriginCustomOriginConfigOutput) OriginReadTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v DistributionOriginCustomOriginConfig) *int { return v.OriginReadTimeout }).(pulumi.IntPtrOutput) } @@ -4609,7 +4612,6 @@ func (o DistributionOriginCustomOriginConfigPtrOutput) HttpsPort() pulumi.IntPtr }).(pulumi.IntPtrOutput) } -// The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. func (o DistributionOriginCustomOriginConfigPtrOutput) OriginKeepaliveTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v *DistributionOriginCustomOriginConfig) *int { if v == nil { @@ -4629,7 +4631,6 @@ func (o DistributionOriginCustomOriginConfigPtrOutput) OriginProtocolPolicy() pu }).(pulumi.StringPtrOutput) } -// The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. func (o DistributionOriginCustomOriginConfigPtrOutput) OriginReadTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v *DistributionOriginCustomOriginConfig) *int { if v == nil { @@ -5200,6 +5201,173 @@ func (o DistributionOriginS3OriginConfigPtrOutput) OriginAccessIdentity() pulumi }).(pulumi.StringPtrOutput) } +type DistributionOriginVpcOriginConfig struct { + OriginKeepaliveTimeout *int `pulumi:"originKeepaliveTimeout"` + OriginReadTimeout *int `pulumi:"originReadTimeout"` + // The VPC origin ID. + VpcOriginId string `pulumi:"vpcOriginId"` +} + +// DistributionOriginVpcOriginConfigInput is an input type that accepts DistributionOriginVpcOriginConfigArgs and DistributionOriginVpcOriginConfigOutput values. +// You can construct a concrete instance of `DistributionOriginVpcOriginConfigInput` via: +// +// DistributionOriginVpcOriginConfigArgs{...} +type DistributionOriginVpcOriginConfigInput interface { + pulumi.Input + + ToDistributionOriginVpcOriginConfigOutput() DistributionOriginVpcOriginConfigOutput + ToDistributionOriginVpcOriginConfigOutputWithContext(context.Context) DistributionOriginVpcOriginConfigOutput +} + +type DistributionOriginVpcOriginConfigArgs struct { + OriginKeepaliveTimeout pulumi.IntPtrInput `pulumi:"originKeepaliveTimeout"` + OriginReadTimeout pulumi.IntPtrInput `pulumi:"originReadTimeout"` + // The VPC origin ID. + VpcOriginId pulumi.StringInput `pulumi:"vpcOriginId"` +} + +func (DistributionOriginVpcOriginConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DistributionOriginVpcOriginConfig)(nil)).Elem() +} + +func (i DistributionOriginVpcOriginConfigArgs) ToDistributionOriginVpcOriginConfigOutput() DistributionOriginVpcOriginConfigOutput { + return i.ToDistributionOriginVpcOriginConfigOutputWithContext(context.Background()) +} + +func (i DistributionOriginVpcOriginConfigArgs) ToDistributionOriginVpcOriginConfigOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(DistributionOriginVpcOriginConfigOutput) +} + +func (i DistributionOriginVpcOriginConfigArgs) ToDistributionOriginVpcOriginConfigPtrOutput() DistributionOriginVpcOriginConfigPtrOutput { + return i.ToDistributionOriginVpcOriginConfigPtrOutputWithContext(context.Background()) +} + +func (i DistributionOriginVpcOriginConfigArgs) ToDistributionOriginVpcOriginConfigPtrOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DistributionOriginVpcOriginConfigOutput).ToDistributionOriginVpcOriginConfigPtrOutputWithContext(ctx) +} + +// DistributionOriginVpcOriginConfigPtrInput is an input type that accepts DistributionOriginVpcOriginConfigArgs, DistributionOriginVpcOriginConfigPtr and DistributionOriginVpcOriginConfigPtrOutput values. +// You can construct a concrete instance of `DistributionOriginVpcOriginConfigPtrInput` via: +// +// DistributionOriginVpcOriginConfigArgs{...} +// +// or: +// +// nil +type DistributionOriginVpcOriginConfigPtrInput interface { + pulumi.Input + + ToDistributionOriginVpcOriginConfigPtrOutput() DistributionOriginVpcOriginConfigPtrOutput + ToDistributionOriginVpcOriginConfigPtrOutputWithContext(context.Context) DistributionOriginVpcOriginConfigPtrOutput +} + +type distributionOriginVpcOriginConfigPtrType DistributionOriginVpcOriginConfigArgs + +func DistributionOriginVpcOriginConfigPtr(v *DistributionOriginVpcOriginConfigArgs) DistributionOriginVpcOriginConfigPtrInput { + return (*distributionOriginVpcOriginConfigPtrType)(v) +} + +func (*distributionOriginVpcOriginConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DistributionOriginVpcOriginConfig)(nil)).Elem() +} + +func (i *distributionOriginVpcOriginConfigPtrType) ToDistributionOriginVpcOriginConfigPtrOutput() DistributionOriginVpcOriginConfigPtrOutput { + return i.ToDistributionOriginVpcOriginConfigPtrOutputWithContext(context.Background()) +} + +func (i *distributionOriginVpcOriginConfigPtrType) ToDistributionOriginVpcOriginConfigPtrOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DistributionOriginVpcOriginConfigPtrOutput) +} + +type DistributionOriginVpcOriginConfigOutput struct{ *pulumi.OutputState } + +func (DistributionOriginVpcOriginConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DistributionOriginVpcOriginConfig)(nil)).Elem() +} + +func (o DistributionOriginVpcOriginConfigOutput) ToDistributionOriginVpcOriginConfigOutput() DistributionOriginVpcOriginConfigOutput { + return o +} + +func (o DistributionOriginVpcOriginConfigOutput) ToDistributionOriginVpcOriginConfigOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigOutput { + return o +} + +func (o DistributionOriginVpcOriginConfigOutput) ToDistributionOriginVpcOriginConfigPtrOutput() DistributionOriginVpcOriginConfigPtrOutput { + return o.ToDistributionOriginVpcOriginConfigPtrOutputWithContext(context.Background()) +} + +func (o DistributionOriginVpcOriginConfigOutput) ToDistributionOriginVpcOriginConfigPtrOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DistributionOriginVpcOriginConfig) *DistributionOriginVpcOriginConfig { + return &v + }).(DistributionOriginVpcOriginConfigPtrOutput) +} + +func (o DistributionOriginVpcOriginConfigOutput) OriginKeepaliveTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v DistributionOriginVpcOriginConfig) *int { return v.OriginKeepaliveTimeout }).(pulumi.IntPtrOutput) +} + +func (o DistributionOriginVpcOriginConfigOutput) OriginReadTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v DistributionOriginVpcOriginConfig) *int { return v.OriginReadTimeout }).(pulumi.IntPtrOutput) +} + +// The VPC origin ID. +func (o DistributionOriginVpcOriginConfigOutput) VpcOriginId() pulumi.StringOutput { + return o.ApplyT(func(v DistributionOriginVpcOriginConfig) string { return v.VpcOriginId }).(pulumi.StringOutput) +} + +type DistributionOriginVpcOriginConfigPtrOutput struct{ *pulumi.OutputState } + +func (DistributionOriginVpcOriginConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DistributionOriginVpcOriginConfig)(nil)).Elem() +} + +func (o DistributionOriginVpcOriginConfigPtrOutput) ToDistributionOriginVpcOriginConfigPtrOutput() DistributionOriginVpcOriginConfigPtrOutput { + return o +} + +func (o DistributionOriginVpcOriginConfigPtrOutput) ToDistributionOriginVpcOriginConfigPtrOutputWithContext(ctx context.Context) DistributionOriginVpcOriginConfigPtrOutput { + return o +} + +func (o DistributionOriginVpcOriginConfigPtrOutput) Elem() DistributionOriginVpcOriginConfigOutput { + return o.ApplyT(func(v *DistributionOriginVpcOriginConfig) DistributionOriginVpcOriginConfig { + if v != nil { + return *v + } + var ret DistributionOriginVpcOriginConfig + return ret + }).(DistributionOriginVpcOriginConfigOutput) +} + +func (o DistributionOriginVpcOriginConfigPtrOutput) OriginKeepaliveTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DistributionOriginVpcOriginConfig) *int { + if v == nil { + return nil + } + return v.OriginKeepaliveTimeout + }).(pulumi.IntPtrOutput) +} + +func (o DistributionOriginVpcOriginConfigPtrOutput) OriginReadTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DistributionOriginVpcOriginConfig) *int { + if v == nil { + return nil + } + return v.OriginReadTimeout + }).(pulumi.IntPtrOutput) +} + +// The VPC origin ID. +func (o DistributionOriginVpcOriginConfigPtrOutput) VpcOriginId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DistributionOriginVpcOriginConfig) *string { + if v == nil { + return nil + } + return &v.VpcOriginId + }).(pulumi.StringPtrOutput) +} + type DistributionRestrictions struct { GeoRestriction DistributionRestrictionsGeoRestriction `pulumi:"geoRestriction"` } @@ -11479,6 +11647,563 @@ func (o ResponseHeadersPolicyServerTimingHeadersConfigPtrOutput) SamplingRate() }).(pulumi.Float64PtrOutput) } +type VpcOriginTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// VpcOriginTimeoutsInput is an input type that accepts VpcOriginTimeoutsArgs and VpcOriginTimeoutsOutput values. +// You can construct a concrete instance of `VpcOriginTimeoutsInput` via: +// +// VpcOriginTimeoutsArgs{...} +type VpcOriginTimeoutsInput interface { + pulumi.Input + + ToVpcOriginTimeoutsOutput() VpcOriginTimeoutsOutput + ToVpcOriginTimeoutsOutputWithContext(context.Context) VpcOriginTimeoutsOutput +} + +type VpcOriginTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (VpcOriginTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginTimeouts)(nil)).Elem() +} + +func (i VpcOriginTimeoutsArgs) ToVpcOriginTimeoutsOutput() VpcOriginTimeoutsOutput { + return i.ToVpcOriginTimeoutsOutputWithContext(context.Background()) +} + +func (i VpcOriginTimeoutsArgs) ToVpcOriginTimeoutsOutputWithContext(ctx context.Context) VpcOriginTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginTimeoutsOutput) +} + +func (i VpcOriginTimeoutsArgs) ToVpcOriginTimeoutsPtrOutput() VpcOriginTimeoutsPtrOutput { + return i.ToVpcOriginTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i VpcOriginTimeoutsArgs) ToVpcOriginTimeoutsPtrOutputWithContext(ctx context.Context) VpcOriginTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginTimeoutsOutput).ToVpcOriginTimeoutsPtrOutputWithContext(ctx) +} + +// VpcOriginTimeoutsPtrInput is an input type that accepts VpcOriginTimeoutsArgs, VpcOriginTimeoutsPtr and VpcOriginTimeoutsPtrOutput values. +// You can construct a concrete instance of `VpcOriginTimeoutsPtrInput` via: +// +// VpcOriginTimeoutsArgs{...} +// +// or: +// +// nil +type VpcOriginTimeoutsPtrInput interface { + pulumi.Input + + ToVpcOriginTimeoutsPtrOutput() VpcOriginTimeoutsPtrOutput + ToVpcOriginTimeoutsPtrOutputWithContext(context.Context) VpcOriginTimeoutsPtrOutput +} + +type vpcOriginTimeoutsPtrType VpcOriginTimeoutsArgs + +func VpcOriginTimeoutsPtr(v *VpcOriginTimeoutsArgs) VpcOriginTimeoutsPtrInput { + return (*vpcOriginTimeoutsPtrType)(v) +} + +func (*vpcOriginTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginTimeouts)(nil)).Elem() +} + +func (i *vpcOriginTimeoutsPtrType) ToVpcOriginTimeoutsPtrOutput() VpcOriginTimeoutsPtrOutput { + return i.ToVpcOriginTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *vpcOriginTimeoutsPtrType) ToVpcOriginTimeoutsPtrOutputWithContext(ctx context.Context) VpcOriginTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginTimeoutsPtrOutput) +} + +type VpcOriginTimeoutsOutput struct{ *pulumi.OutputState } + +func (VpcOriginTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginTimeouts)(nil)).Elem() +} + +func (o VpcOriginTimeoutsOutput) ToVpcOriginTimeoutsOutput() VpcOriginTimeoutsOutput { + return o +} + +func (o VpcOriginTimeoutsOutput) ToVpcOriginTimeoutsOutputWithContext(ctx context.Context) VpcOriginTimeoutsOutput { + return o +} + +func (o VpcOriginTimeoutsOutput) ToVpcOriginTimeoutsPtrOutput() VpcOriginTimeoutsPtrOutput { + return o.ToVpcOriginTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o VpcOriginTimeoutsOutput) ToVpcOriginTimeoutsPtrOutputWithContext(ctx context.Context) VpcOriginTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VpcOriginTimeouts) *VpcOriginTimeouts { + return &v + }).(VpcOriginTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o VpcOriginTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcOriginTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o VpcOriginTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcOriginTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o VpcOriginTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcOriginTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type VpcOriginTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (VpcOriginTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginTimeouts)(nil)).Elem() +} + +func (o VpcOriginTimeoutsPtrOutput) ToVpcOriginTimeoutsPtrOutput() VpcOriginTimeoutsPtrOutput { + return o +} + +func (o VpcOriginTimeoutsPtrOutput) ToVpcOriginTimeoutsPtrOutputWithContext(ctx context.Context) VpcOriginTimeoutsPtrOutput { + return o +} + +func (o VpcOriginTimeoutsPtrOutput) Elem() VpcOriginTimeoutsOutput { + return o.ApplyT(func(v *VpcOriginTimeouts) VpcOriginTimeouts { + if v != nil { + return *v + } + var ret VpcOriginTimeouts + return ret + }).(VpcOriginTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o VpcOriginTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o VpcOriginTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o VpcOriginTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type VpcOriginVpcOriginEndpointConfig struct { + // The VPC origin ARN. + Arn string `pulumi:"arn"` + // The HTTP port for the CloudFront VPC origin endpoint configuration. + HttpPort int `pulumi:"httpPort"` + // The HTTPS port for the CloudFront VPC origin endpoint configuration. + HttpsPort int `pulumi:"httpsPort"` + // The name of the CloudFront VPC origin endpoint configuration. + Name string `pulumi:"name"` + // The origin protocol policy for the CloudFront VPC origin endpoint configuration. + OriginProtocolPolicy string `pulumi:"originProtocolPolicy"` + // A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + OriginSslProtocols *VpcOriginVpcOriginEndpointConfigOriginSslProtocols `pulumi:"originSslProtocols"` +} + +// VpcOriginVpcOriginEndpointConfigInput is an input type that accepts VpcOriginVpcOriginEndpointConfigArgs and VpcOriginVpcOriginEndpointConfigOutput values. +// You can construct a concrete instance of `VpcOriginVpcOriginEndpointConfigInput` via: +// +// VpcOriginVpcOriginEndpointConfigArgs{...} +type VpcOriginVpcOriginEndpointConfigInput interface { + pulumi.Input + + ToVpcOriginVpcOriginEndpointConfigOutput() VpcOriginVpcOriginEndpointConfigOutput + ToVpcOriginVpcOriginEndpointConfigOutputWithContext(context.Context) VpcOriginVpcOriginEndpointConfigOutput +} + +type VpcOriginVpcOriginEndpointConfigArgs struct { + // The VPC origin ARN. + Arn pulumi.StringInput `pulumi:"arn"` + // The HTTP port for the CloudFront VPC origin endpoint configuration. + HttpPort pulumi.IntInput `pulumi:"httpPort"` + // The HTTPS port for the CloudFront VPC origin endpoint configuration. + HttpsPort pulumi.IntInput `pulumi:"httpsPort"` + // The name of the CloudFront VPC origin endpoint configuration. + Name pulumi.StringInput `pulumi:"name"` + // The origin protocol policy for the CloudFront VPC origin endpoint configuration. + OriginProtocolPolicy pulumi.StringInput `pulumi:"originProtocolPolicy"` + // A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + OriginSslProtocols VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput `pulumi:"originSslProtocols"` +} + +func (VpcOriginVpcOriginEndpointConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginVpcOriginEndpointConfig)(nil)).Elem() +} + +func (i VpcOriginVpcOriginEndpointConfigArgs) ToVpcOriginVpcOriginEndpointConfigOutput() VpcOriginVpcOriginEndpointConfigOutput { + return i.ToVpcOriginVpcOriginEndpointConfigOutputWithContext(context.Background()) +} + +func (i VpcOriginVpcOriginEndpointConfigArgs) ToVpcOriginVpcOriginEndpointConfigOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigOutput) +} + +func (i VpcOriginVpcOriginEndpointConfigArgs) ToVpcOriginVpcOriginEndpointConfigPtrOutput() VpcOriginVpcOriginEndpointConfigPtrOutput { + return i.ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (i VpcOriginVpcOriginEndpointConfigArgs) ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigOutput).ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(ctx) +} + +// VpcOriginVpcOriginEndpointConfigPtrInput is an input type that accepts VpcOriginVpcOriginEndpointConfigArgs, VpcOriginVpcOriginEndpointConfigPtr and VpcOriginVpcOriginEndpointConfigPtrOutput values. +// You can construct a concrete instance of `VpcOriginVpcOriginEndpointConfigPtrInput` via: +// +// VpcOriginVpcOriginEndpointConfigArgs{...} +// +// or: +// +// nil +type VpcOriginVpcOriginEndpointConfigPtrInput interface { + pulumi.Input + + ToVpcOriginVpcOriginEndpointConfigPtrOutput() VpcOriginVpcOriginEndpointConfigPtrOutput + ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(context.Context) VpcOriginVpcOriginEndpointConfigPtrOutput +} + +type vpcOriginVpcOriginEndpointConfigPtrType VpcOriginVpcOriginEndpointConfigArgs + +func VpcOriginVpcOriginEndpointConfigPtr(v *VpcOriginVpcOriginEndpointConfigArgs) VpcOriginVpcOriginEndpointConfigPtrInput { + return (*vpcOriginVpcOriginEndpointConfigPtrType)(v) +} + +func (*vpcOriginVpcOriginEndpointConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginVpcOriginEndpointConfig)(nil)).Elem() +} + +func (i *vpcOriginVpcOriginEndpointConfigPtrType) ToVpcOriginVpcOriginEndpointConfigPtrOutput() VpcOriginVpcOriginEndpointConfigPtrOutput { + return i.ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (i *vpcOriginVpcOriginEndpointConfigPtrType) ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigPtrOutput) +} + +type VpcOriginVpcOriginEndpointConfigOutput struct{ *pulumi.OutputState } + +func (VpcOriginVpcOriginEndpointConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginVpcOriginEndpointConfig)(nil)).Elem() +} + +func (o VpcOriginVpcOriginEndpointConfigOutput) ToVpcOriginVpcOriginEndpointConfigOutput() VpcOriginVpcOriginEndpointConfigOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOutput) ToVpcOriginVpcOriginEndpointConfigOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOutput) ToVpcOriginVpcOriginEndpointConfigPtrOutput() VpcOriginVpcOriginEndpointConfigPtrOutput { + return o.ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(context.Background()) +} + +func (o VpcOriginVpcOriginEndpointConfigOutput) ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VpcOriginVpcOriginEndpointConfig) *VpcOriginVpcOriginEndpointConfig { + return &v + }).(VpcOriginVpcOriginEndpointConfigPtrOutput) +} + +// The VPC origin ARN. +func (o VpcOriginVpcOriginEndpointConfigOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) string { return v.Arn }).(pulumi.StringOutput) +} + +// The HTTP port for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigOutput) HttpPort() pulumi.IntOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) int { return v.HttpPort }).(pulumi.IntOutput) +} + +// The HTTPS port for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigOutput) HttpsPort() pulumi.IntOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) int { return v.HttpsPort }).(pulumi.IntOutput) +} + +// The name of the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) string { return v.Name }).(pulumi.StringOutput) +} + +// The origin protocol policy for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigOutput) OriginProtocolPolicy() pulumi.StringOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) string { return v.OriginProtocolPolicy }).(pulumi.StringOutput) +} + +// A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. +func (o VpcOriginVpcOriginEndpointConfigOutput) OriginSslProtocols() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfig) *VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + return v.OriginSslProtocols + }).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) +} + +type VpcOriginVpcOriginEndpointConfigPtrOutput struct{ *pulumi.OutputState } + +func (VpcOriginVpcOriginEndpointConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginVpcOriginEndpointConfig)(nil)).Elem() +} + +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) ToVpcOriginVpcOriginEndpointConfigPtrOutput() VpcOriginVpcOriginEndpointConfigPtrOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) ToVpcOriginVpcOriginEndpointConfigPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigPtrOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) Elem() VpcOriginVpcOriginEndpointConfigOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) VpcOriginVpcOriginEndpointConfig { + if v != nil { + return *v + } + var ret VpcOriginVpcOriginEndpointConfig + return ret + }).(VpcOriginVpcOriginEndpointConfigOutput) +} + +// The VPC origin ARN. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *string { + if v == nil { + return nil + } + return &v.Arn + }).(pulumi.StringPtrOutput) +} + +// The HTTP port for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) HttpPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *int { + if v == nil { + return nil + } + return &v.HttpPort + }).(pulumi.IntPtrOutput) +} + +// The HTTPS port for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) HttpsPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *int { + if v == nil { + return nil + } + return &v.HttpsPort + }).(pulumi.IntPtrOutput) +} + +// The name of the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// The origin protocol policy for the CloudFront VPC origin endpoint configuration. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) OriginProtocolPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *string { + if v == nil { + return nil + } + return &v.OriginProtocolPolicy + }).(pulumi.StringPtrOutput) +} + +// A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. +func (o VpcOriginVpcOriginEndpointConfigPtrOutput) OriginSslProtocols() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfig) *VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + if v == nil { + return nil + } + return v.OriginSslProtocols + }).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) +} + +type VpcOriginVpcOriginEndpointConfigOriginSslProtocols struct { + Items []string `pulumi:"items"` + Quantity int `pulumi:"quantity"` +} + +// VpcOriginVpcOriginEndpointConfigOriginSslProtocolsInput is an input type that accepts VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs and VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput values. +// You can construct a concrete instance of `VpcOriginVpcOriginEndpointConfigOriginSslProtocolsInput` via: +// +// VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{...} +type VpcOriginVpcOriginEndpointConfigOriginSslProtocolsInput interface { + pulumi.Input + + ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput + ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutputWithContext(context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput +} + +type VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs struct { + Items pulumi.StringArrayInput `pulumi:"items"` + Quantity pulumi.IntInput `pulumi:"quantity"` +} + +func (VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigOriginSslProtocols)(nil)).Elem() +} + +func (i VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput { + return i.ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutputWithContext(context.Background()) +} + +func (i VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) +} + +func (i VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return i.ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(context.Background()) +} + +func (i VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput).ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(ctx) +} + +// VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput is an input type that accepts VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs, VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtr and VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput values. +// You can construct a concrete instance of `VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput` via: +// +// VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{...} +// +// or: +// +// nil +type VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput interface { + pulumi.Input + + ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput + ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput +} + +type vpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrType VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs + +func VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtr(v *VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput { + return (*vpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrType)(v) +} + +func (*vpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginVpcOriginEndpointConfigOriginSslProtocols)(nil)).Elem() +} + +func (i *vpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrType) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return i.ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(context.Background()) +} + +func (i *vpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrType) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) +} + +type VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput struct{ *pulumi.OutputState } + +func (VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigOriginSslProtocols)(nil)).Elem() +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o.ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(context.Background()) +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VpcOriginVpcOriginEndpointConfigOriginSslProtocols) *VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + return &v + }).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) Items() pulumi.StringArrayOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfigOriginSslProtocols) []string { return v.Items }).(pulumi.StringArrayOutput) +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) Quantity() pulumi.IntOutput { + return o.ApplyT(func(v VpcOriginVpcOriginEndpointConfigOriginSslProtocols) int { return v.Quantity }).(pulumi.IntOutput) +} + +type VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput struct{ *pulumi.OutputState } + +func (VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOriginVpcOriginEndpointConfigOriginSslProtocols)(nil)).Elem() +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) ToVpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutputWithContext(ctx context.Context) VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput { + return o +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) Elem() VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfigOriginSslProtocols) VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + if v != nil { + return *v + } + var ret VpcOriginVpcOriginEndpointConfigOriginSslProtocols + return ret + }).(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput) +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) Items() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfigOriginSslProtocols) []string { + if v == nil { + return nil + } + return v.Items + }).(pulumi.StringArrayOutput) +} + +func (o VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput) Quantity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VpcOriginVpcOriginEndpointConfigOriginSslProtocols) *int { + if v == nil { + return nil + } + return &v.Quantity + }).(pulumi.IntPtrOutput) +} + type GetCachePolicyParametersInCacheKeyAndForwardedToOrigin struct { // Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information. CookiesConfigs []GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig `pulumi:"cookiesConfigs"` @@ -14981,6 +15706,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DistributionOriginOriginShieldPtrInput)(nil)).Elem(), DistributionOriginOriginShieldArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionOriginS3OriginConfigInput)(nil)).Elem(), DistributionOriginS3OriginConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionOriginS3OriginConfigPtrInput)(nil)).Elem(), DistributionOriginS3OriginConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DistributionOriginVpcOriginConfigInput)(nil)).Elem(), DistributionOriginVpcOriginConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DistributionOriginVpcOriginConfigPtrInput)(nil)).Elem(), DistributionOriginVpcOriginConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionRestrictionsInput)(nil)).Elem(), DistributionRestrictionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionRestrictionsPtrInput)(nil)).Elem(), DistributionRestrictionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionRestrictionsGeoRestrictionInput)(nil)).Elem(), DistributionRestrictionsGeoRestrictionArgs{}) @@ -15068,6 +15795,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ResponseHeadersPolicySecurityHeadersConfigXssProtectionPtrInput)(nil)).Elem(), ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResponseHeadersPolicyServerTimingHeadersConfigInput)(nil)).Elem(), ResponseHeadersPolicyServerTimingHeadersConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResponseHeadersPolicyServerTimingHeadersConfigPtrInput)(nil)).Elem(), ResponseHeadersPolicyServerTimingHeadersConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginTimeoutsInput)(nil)).Elem(), VpcOriginTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginTimeoutsPtrInput)(nil)).Elem(), VpcOriginTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigInput)(nil)).Elem(), VpcOriginVpcOriginEndpointConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigPtrInput)(nil)).Elem(), VpcOriginVpcOriginEndpointConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigOriginSslProtocolsInput)(nil)).Elem(), VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrInput)(nil)).Elem(), VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCachePolicyParametersInCacheKeyAndForwardedToOriginInput)(nil)).Elem(), GetCachePolicyParametersInCacheKeyAndForwardedToOriginArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCachePolicyParametersInCacheKeyAndForwardedToOriginArrayInput)(nil)).Elem(), GetCachePolicyParametersInCacheKeyAndForwardedToOriginArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigInput)(nil)).Elem(), GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigArgs{}) @@ -15195,6 +15928,8 @@ func init() { pulumi.RegisterOutputType(DistributionOriginOriginShieldPtrOutput{}) pulumi.RegisterOutputType(DistributionOriginS3OriginConfigOutput{}) pulumi.RegisterOutputType(DistributionOriginS3OriginConfigPtrOutput{}) + pulumi.RegisterOutputType(DistributionOriginVpcOriginConfigOutput{}) + pulumi.RegisterOutputType(DistributionOriginVpcOriginConfigPtrOutput{}) pulumi.RegisterOutputType(DistributionRestrictionsOutput{}) pulumi.RegisterOutputType(DistributionRestrictionsPtrOutput{}) pulumi.RegisterOutputType(DistributionRestrictionsGeoRestrictionOutput{}) @@ -15282,6 +16017,12 @@ func init() { pulumi.RegisterOutputType(ResponseHeadersPolicySecurityHeadersConfigXssProtectionPtrOutput{}) pulumi.RegisterOutputType(ResponseHeadersPolicyServerTimingHeadersConfigOutput{}) pulumi.RegisterOutputType(ResponseHeadersPolicyServerTimingHeadersConfigPtrOutput{}) + pulumi.RegisterOutputType(VpcOriginTimeoutsOutput{}) + pulumi.RegisterOutputType(VpcOriginTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(VpcOriginVpcOriginEndpointConfigOutput{}) + pulumi.RegisterOutputType(VpcOriginVpcOriginEndpointConfigPtrOutput{}) + pulumi.RegisterOutputType(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsOutput{}) + pulumi.RegisterOutputType(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsPtrOutput{}) pulumi.RegisterOutputType(GetCachePolicyParametersInCacheKeyAndForwardedToOriginOutput{}) pulumi.RegisterOutputType(GetCachePolicyParametersInCacheKeyAndForwardedToOriginArrayOutput{}) pulumi.RegisterOutputType(GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigOutput{}) diff --git a/sdk/go/aws/cloudfront/vpcOrigin.go b/sdk/go/aws/cloudfront/vpcOrigin.go new file mode 100644 index 00000000000..aa02af71c43 --- /dev/null +++ b/sdk/go/aws/cloudfront/vpcOrigin.go @@ -0,0 +1,331 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudfront + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Creates an Amazon CloudFront VPC origin. +// +// For information about CloudFront VPC origins, see +// [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. +// +// ## Example Usage +// +// ### Application Load Balancer +// +// The following example below creates a CloudFront VPC origin for a Application Load Balancer. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudfront.NewVpcOrigin(ctx, "alb", &cloudfront.VpcOriginArgs{ +// VpcOriginEndpointConfig: &cloudfront.VpcOriginVpcOriginEndpointConfigArgs{ +// Name: pulumi.String("Example VPC Origin"), +// Arn: pulumi.Any(this.Arn), +// HttpPort: pulumi.Int(8080), +// HttpsPort: pulumi.Int(8443), +// OriginProtocolPolicy: pulumi.String("https-only"), +// OriginSslProtocols: &cloudfront.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{ +// Items: pulumi.StringArray{ +// pulumi.String("TLSv1.2"), +// }, +// Quantity: pulumi.Int(1), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// terraform +// +// import { +// +// to = aws_cloudfront_vpc_origin.origin +// +// id = vo_JQEa410sssUFoY6wMkx69j +// +// } +// +// Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: +// +// console +// +// % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j +type VpcOrigin struct { + pulumi.CustomResourceState + + // The VPC origin ARN. + Arn pulumi.StringOutput `pulumi:"arn"` + // The current version of the origin. + Etag pulumi.StringOutput `pulumi:"etag"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts VpcOriginTimeoutsPtrOutput `pulumi:"timeouts"` + VpcOriginEndpointConfig VpcOriginVpcOriginEndpointConfigPtrOutput `pulumi:"vpcOriginEndpointConfig"` +} + +// NewVpcOrigin registers a new resource with the given unique name, arguments, and options. +func NewVpcOrigin(ctx *pulumi.Context, + name string, args *VpcOriginArgs, opts ...pulumi.ResourceOption) (*VpcOrigin, error) { + if args == nil { + args = &VpcOriginArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource VpcOrigin + err := ctx.RegisterResource("aws:cloudfront/vpcOrigin:VpcOrigin", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetVpcOrigin gets an existing VpcOrigin resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetVpcOrigin(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *VpcOriginState, opts ...pulumi.ResourceOption) (*VpcOrigin, error) { + var resource VpcOrigin + err := ctx.ReadResource("aws:cloudfront/vpcOrigin:VpcOrigin", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering VpcOrigin resources. +type vpcOriginState struct { + // The VPC origin ARN. + Arn *string `pulumi:"arn"` + // The current version of the origin. + Etag *string `pulumi:"etag"` + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *VpcOriginTimeouts `pulumi:"timeouts"` + VpcOriginEndpointConfig *VpcOriginVpcOriginEndpointConfig `pulumi:"vpcOriginEndpointConfig"` +} + +type VpcOriginState struct { + // The VPC origin ARN. + Arn pulumi.StringPtrInput + // The current version of the origin. + Etag pulumi.StringPtrInput + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + Timeouts VpcOriginTimeoutsPtrInput + VpcOriginEndpointConfig VpcOriginVpcOriginEndpointConfigPtrInput +} + +func (VpcOriginState) ElementType() reflect.Type { + return reflect.TypeOf((*vpcOriginState)(nil)).Elem() +} + +type vpcOriginArgs struct { + Tags map[string]string `pulumi:"tags"` + Timeouts *VpcOriginTimeouts `pulumi:"timeouts"` + VpcOriginEndpointConfig *VpcOriginVpcOriginEndpointConfig `pulumi:"vpcOriginEndpointConfig"` +} + +// The set of arguments for constructing a VpcOrigin resource. +type VpcOriginArgs struct { + Tags pulumi.StringMapInput + Timeouts VpcOriginTimeoutsPtrInput + VpcOriginEndpointConfig VpcOriginVpcOriginEndpointConfigPtrInput +} + +func (VpcOriginArgs) ElementType() reflect.Type { + return reflect.TypeOf((*vpcOriginArgs)(nil)).Elem() +} + +type VpcOriginInput interface { + pulumi.Input + + ToVpcOriginOutput() VpcOriginOutput + ToVpcOriginOutputWithContext(ctx context.Context) VpcOriginOutput +} + +func (*VpcOrigin) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOrigin)(nil)).Elem() +} + +func (i *VpcOrigin) ToVpcOriginOutput() VpcOriginOutput { + return i.ToVpcOriginOutputWithContext(context.Background()) +} + +func (i *VpcOrigin) ToVpcOriginOutputWithContext(ctx context.Context) VpcOriginOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginOutput) +} + +// VpcOriginArrayInput is an input type that accepts VpcOriginArray and VpcOriginArrayOutput values. +// You can construct a concrete instance of `VpcOriginArrayInput` via: +// +// VpcOriginArray{ VpcOriginArgs{...} } +type VpcOriginArrayInput interface { + pulumi.Input + + ToVpcOriginArrayOutput() VpcOriginArrayOutput + ToVpcOriginArrayOutputWithContext(context.Context) VpcOriginArrayOutput +} + +type VpcOriginArray []VpcOriginInput + +func (VpcOriginArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VpcOrigin)(nil)).Elem() +} + +func (i VpcOriginArray) ToVpcOriginArrayOutput() VpcOriginArrayOutput { + return i.ToVpcOriginArrayOutputWithContext(context.Background()) +} + +func (i VpcOriginArray) ToVpcOriginArrayOutputWithContext(ctx context.Context) VpcOriginArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginArrayOutput) +} + +// VpcOriginMapInput is an input type that accepts VpcOriginMap and VpcOriginMapOutput values. +// You can construct a concrete instance of `VpcOriginMapInput` via: +// +// VpcOriginMap{ "key": VpcOriginArgs{...} } +type VpcOriginMapInput interface { + pulumi.Input + + ToVpcOriginMapOutput() VpcOriginMapOutput + ToVpcOriginMapOutputWithContext(context.Context) VpcOriginMapOutput +} + +type VpcOriginMap map[string]VpcOriginInput + +func (VpcOriginMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VpcOrigin)(nil)).Elem() +} + +func (i VpcOriginMap) ToVpcOriginMapOutput() VpcOriginMapOutput { + return i.ToVpcOriginMapOutputWithContext(context.Background()) +} + +func (i VpcOriginMap) ToVpcOriginMapOutputWithContext(ctx context.Context) VpcOriginMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpcOriginMapOutput) +} + +type VpcOriginOutput struct{ *pulumi.OutputState } + +func (VpcOriginOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VpcOrigin)(nil)).Elem() +} + +func (o VpcOriginOutput) ToVpcOriginOutput() VpcOriginOutput { + return o +} + +func (o VpcOriginOutput) ToVpcOriginOutputWithContext(ctx context.Context) VpcOriginOutput { + return o +} + +// The VPC origin ARN. +func (o VpcOriginOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *VpcOrigin) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The current version of the origin. +func (o VpcOriginOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *VpcOrigin) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +func (o VpcOriginOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *VpcOrigin) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o VpcOriginOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *VpcOrigin) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o VpcOriginOutput) Timeouts() VpcOriginTimeoutsPtrOutput { + return o.ApplyT(func(v *VpcOrigin) VpcOriginTimeoutsPtrOutput { return v.Timeouts }).(VpcOriginTimeoutsPtrOutput) +} + +func (o VpcOriginOutput) VpcOriginEndpointConfig() VpcOriginVpcOriginEndpointConfigPtrOutput { + return o.ApplyT(func(v *VpcOrigin) VpcOriginVpcOriginEndpointConfigPtrOutput { return v.VpcOriginEndpointConfig }).(VpcOriginVpcOriginEndpointConfigPtrOutput) +} + +type VpcOriginArrayOutput struct{ *pulumi.OutputState } + +func (VpcOriginArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VpcOrigin)(nil)).Elem() +} + +func (o VpcOriginArrayOutput) ToVpcOriginArrayOutput() VpcOriginArrayOutput { + return o +} + +func (o VpcOriginArrayOutput) ToVpcOriginArrayOutputWithContext(ctx context.Context) VpcOriginArrayOutput { + return o +} + +func (o VpcOriginArrayOutput) Index(i pulumi.IntInput) VpcOriginOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcOrigin { + return vs[0].([]*VpcOrigin)[vs[1].(int)] + }).(VpcOriginOutput) +} + +type VpcOriginMapOutput struct{ *pulumi.OutputState } + +func (VpcOriginMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VpcOrigin)(nil)).Elem() +} + +func (o VpcOriginMapOutput) ToVpcOriginMapOutput() VpcOriginMapOutput { + return o +} + +func (o VpcOriginMapOutput) ToVpcOriginMapOutputWithContext(ctx context.Context) VpcOriginMapOutput { + return o +} + +func (o VpcOriginMapOutput) MapIndex(k pulumi.StringInput) VpcOriginOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcOrigin { + return vs[0].(map[string]*VpcOrigin)[vs[1].(string)] + }).(VpcOriginOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginInput)(nil)).Elem(), &VpcOrigin{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginArrayInput)(nil)).Elem(), VpcOriginArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*VpcOriginMapInput)(nil)).Elem(), VpcOriginMap{}) + pulumi.RegisterOutputType(VpcOriginOutput{}) + pulumi.RegisterOutputType(VpcOriginArrayOutput{}) + pulumi.RegisterOutputType(VpcOriginMapOutput{}) +} diff --git a/sdk/go/aws/cloudwatch/logAccountPolicy.go b/sdk/go/aws/cloudwatch/logAccountPolicy.go index a31b5c9dfab..ddf5b4cca65 100644 --- a/sdk/go/aws/cloudwatch/logAccountPolicy.go +++ b/sdk/go/aws/cloudwatch/logAccountPolicy.go @@ -117,6 +117,46 @@ import ( // // ``` // +// ### Field Index Policy +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Fields": []string{ +// "field1", +// "field2", +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = cloudwatch.NewLogAccountPolicy(ctx, "field_index", &cloudwatch.LogAccountPolicyArgs{ +// PolicyName: pulumi.String("field-index"), +// PolicyType: pulumi.String("FIELD_INDEX_POLICY"), +// PolicyDocument: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -131,7 +171,7 @@ type LogAccountPolicy struct { PolicyDocument pulumi.StringOutput `pulumi:"policyDocument"` // Name of the account policy. PolicyName pulumi.StringOutput `pulumi:"policyName"` - // Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + // Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. PolicyType pulumi.StringOutput `pulumi:"policyType"` // Currently defaults to and only accepts the value: `ALL`. Scope pulumi.StringPtrOutput `pulumi:"scope"` @@ -182,7 +222,7 @@ type logAccountPolicyState struct { PolicyDocument *string `pulumi:"policyDocument"` // Name of the account policy. PolicyName *string `pulumi:"policyName"` - // Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + // Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. PolicyType *string `pulumi:"policyType"` // Currently defaults to and only accepts the value: `ALL`. Scope *string `pulumi:"scope"` @@ -195,7 +235,7 @@ type LogAccountPolicyState struct { PolicyDocument pulumi.StringPtrInput // Name of the account policy. PolicyName pulumi.StringPtrInput - // Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + // Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. PolicyType pulumi.StringPtrInput // Currently defaults to and only accepts the value: `ALL`. Scope pulumi.StringPtrInput @@ -212,7 +252,7 @@ type logAccountPolicyArgs struct { PolicyDocument string `pulumi:"policyDocument"` // Name of the account policy. PolicyName string `pulumi:"policyName"` - // Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + // Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. PolicyType string `pulumi:"policyType"` // Currently defaults to and only accepts the value: `ALL`. Scope *string `pulumi:"scope"` @@ -226,7 +266,7 @@ type LogAccountPolicyArgs struct { PolicyDocument pulumi.StringInput // Name of the account policy. PolicyName pulumi.StringInput - // Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + // Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. PolicyType pulumi.StringInput // Currently defaults to and only accepts the value: `ALL`. Scope pulumi.StringPtrInput @@ -331,7 +371,7 @@ func (o LogAccountPolicyOutput) PolicyName() pulumi.StringOutput { return o.ApplyT(func(v *LogAccountPolicy) pulumi.StringOutput { return v.PolicyName }).(pulumi.StringOutput) } -// Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. +// Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. func (o LogAccountPolicyOutput) PolicyType() pulumi.StringOutput { return o.ApplyT(func(v *LogAccountPolicy) pulumi.StringOutput { return v.PolicyType }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/codeconnections/pulumiTypes.go b/sdk/go/aws/codeconnections/pulumiTypes.go index 3f7b284b293..1cb0d7c3892 100644 --- a/sdk/go/aws/codeconnections/pulumiTypes.go +++ b/sdk/go/aws/codeconnections/pulumiTypes.go @@ -369,7 +369,7 @@ type HostVpcConfiguration struct { // The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. SubnetIds []string `pulumi:"subnetIds"` // The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. - TlsCertificate string `pulumi:"tlsCertificate"` + TlsCertificate *string `pulumi:"tlsCertificate"` // The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. VpcId string `pulumi:"vpcId"` } @@ -391,7 +391,7 @@ type HostVpcConfigurationArgs struct { // The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` // The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. - TlsCertificate pulumi.StringInput `pulumi:"tlsCertificate"` + TlsCertificate pulumi.StringPtrInput `pulumi:"tlsCertificate"` // The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. VpcId pulumi.StringInput `pulumi:"vpcId"` } @@ -484,8 +484,8 @@ func (o HostVpcConfigurationOutput) SubnetIds() pulumi.StringArrayOutput { } // The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. -func (o HostVpcConfigurationOutput) TlsCertificate() pulumi.StringOutput { - return o.ApplyT(func(v HostVpcConfiguration) string { return v.TlsCertificate }).(pulumi.StringOutput) +func (o HostVpcConfigurationOutput) TlsCertificate() pulumi.StringPtrOutput { + return o.ApplyT(func(v HostVpcConfiguration) *string { return v.TlsCertificate }).(pulumi.StringPtrOutput) } // The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. @@ -543,7 +543,7 @@ func (o HostVpcConfigurationPtrOutput) TlsCertificate() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.TlsCertificate + return v.TlsCertificate }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/config/pulumiTypes.go b/sdk/go/aws/config/pulumiTypes.go index 025c6a21620..7d47d72b9da 100644 --- a/sdk/go/aws/config/pulumiTypes.go +++ b/sdk/go/aws/config/pulumiTypes.go @@ -665,6 +665,8 @@ type Endpoints struct { // Use this to override the default service endpoint URL Memorydb *string `pulumi:"memorydb"` // Use this to override the default service endpoint URL + Mgn *string `pulumi:"mgn"` + // Use this to override the default service endpoint URL Mq *string `pulumi:"mq"` // Use this to override the default service endpoint URL Msk *string `pulumi:"msk"` @@ -851,6 +853,8 @@ type Endpoints struct { // Use this to override the default service endpoint URL Timestreaminfluxdb *string `pulumi:"timestreaminfluxdb"` // Use this to override the default service endpoint URL + Timestreamquery *string `pulumi:"timestreamquery"` + // Use this to override the default service endpoint URL Timestreamwrite *string `pulumi:"timestreamwrite"` // Use this to override the default service endpoint URL Transcribe *string `pulumi:"transcribe"` @@ -1267,6 +1271,8 @@ type EndpointsArgs struct { // Use this to override the default service endpoint URL Memorydb pulumi.StringPtrInput `pulumi:"memorydb"` // Use this to override the default service endpoint URL + Mgn pulumi.StringPtrInput `pulumi:"mgn"` + // Use this to override the default service endpoint URL Mq pulumi.StringPtrInput `pulumi:"mq"` // Use this to override the default service endpoint URL Msk pulumi.StringPtrInput `pulumi:"msk"` @@ -1453,6 +1459,8 @@ type EndpointsArgs struct { // Use this to override the default service endpoint URL Timestreaminfluxdb pulumi.StringPtrInput `pulumi:"timestreaminfluxdb"` // Use this to override the default service endpoint URL + Timestreamquery pulumi.StringPtrInput `pulumi:"timestreamquery"` + // Use this to override the default service endpoint URL Timestreamwrite pulumi.StringPtrInput `pulumi:"timestreamwrite"` // Use this to override the default service endpoint URL Transcribe pulumi.StringPtrInput `pulumi:"transcribe"` @@ -2468,6 +2476,11 @@ func (o EndpointsOutput) Memorydb() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Memorydb }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o EndpointsOutput) Mgn() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.Mgn }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o EndpointsOutput) Mq() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Mq }).(pulumi.StringPtrOutput) @@ -2933,6 +2946,11 @@ func (o EndpointsOutput) Timestreaminfluxdb() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Timestreaminfluxdb }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o EndpointsOutput) Timestreamquery() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.Timestreamquery }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o EndpointsOutput) Timestreamwrite() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Timestreamwrite }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/directconnect/gateway.go b/sdk/go/aws/directconnect/gateway.go index 65b9bab73fc..3e49bd89ab8 100644 --- a/sdk/go/aws/directconnect/gateway.go +++ b/sdk/go/aws/directconnect/gateway.go @@ -53,6 +53,8 @@ type Gateway struct { // The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. AmazonSideAsn pulumi.StringOutput `pulumi:"amazonSideAsn"` + // The ARN of the gateway. + Arn pulumi.StringOutput `pulumi:"arn"` // The name of the connection. Name pulumi.StringOutput `pulumi:"name"` // AWS Account ID of the gateway. @@ -94,6 +96,8 @@ func GetGateway(ctx *pulumi.Context, type gatewayState struct { // The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. AmazonSideAsn *string `pulumi:"amazonSideAsn"` + // The ARN of the gateway. + Arn *string `pulumi:"arn"` // The name of the connection. Name *string `pulumi:"name"` // AWS Account ID of the gateway. @@ -103,6 +107,8 @@ type gatewayState struct { type GatewayState struct { // The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. AmazonSideAsn pulumi.StringPtrInput + // The ARN of the gateway. + Arn pulumi.StringPtrInput // The name of the connection. Name pulumi.StringPtrInput // AWS Account ID of the gateway. @@ -220,6 +226,11 @@ func (o GatewayOutput) AmazonSideAsn() pulumi.StringOutput { return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.AmazonSideAsn }).(pulumi.StringOutput) } +// The ARN of the gateway. +func (o GatewayOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + // The name of the connection. func (o GatewayOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Gateway) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/aws/directconnect/getGateway.go b/sdk/go/aws/directconnect/getGateway.go index 1bb91730742..8363f14d81a 100644 --- a/sdk/go/aws/directconnect/getGateway.go +++ b/sdk/go/aws/directconnect/getGateway.go @@ -58,6 +58,8 @@ type LookupGatewayArgs struct { type LookupGatewayResult struct { // ASN on the Amazon side of the connection. AmazonSideAsn string `pulumi:"amazonSideAsn"` + // ARN of the gateway. + Arn string `pulumi:"arn"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` Name string `pulumi:"name"` @@ -104,6 +106,11 @@ func (o LookupGatewayResultOutput) AmazonSideAsn() pulumi.StringOutput { return o.ApplyT(func(v LookupGatewayResult) string { return v.AmazonSideAsn }).(pulumi.StringOutput) } +// ARN of the gateway. +func (o LookupGatewayResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupGatewayResult) string { return v.Arn }).(pulumi.StringOutput) +} + // The provider-assigned unique ID for this managed resource. func (o LookupGatewayResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupGatewayResult) string { return v.Id }).(pulumi.StringOutput) diff --git a/sdk/go/aws/ec2/vpcEndpoint.go b/sdk/go/aws/ec2/vpcEndpoint.go index 01df256cc47..97c032748fb 100644 --- a/sdk/go/aws/ec2/vpcEndpoint.go +++ b/sdk/go/aws/ec2/vpcEndpoint.go @@ -245,6 +245,8 @@ type VpcEndpoint struct { SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + ServiceRegion pulumi.StringOutput `pulumi:"serviceRegion"` // The state of the VPC endpoint. State pulumi.StringOutput `pulumi:"state"` // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. @@ -331,6 +333,8 @@ type vpcEndpointState struct { SecurityGroupIds []string `pulumi:"securityGroupIds"` // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName *string `pulumi:"serviceName"` + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + ServiceRegion *string `pulumi:"serviceRegion"` // The state of the VPC endpoint. State *string `pulumi:"state"` // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. @@ -382,6 +386,8 @@ type VpcEndpointState struct { SecurityGroupIds pulumi.StringArrayInput // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName pulumi.StringPtrInput + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + ServiceRegion pulumi.StringPtrInput // The state of the VPC endpoint. State pulumi.StringPtrInput // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. @@ -423,6 +429,8 @@ type vpcEndpointArgs struct { SecurityGroupIds []string `pulumi:"securityGroupIds"` // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName string `pulumi:"serviceName"` + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + ServiceRegion *string `pulumi:"serviceRegion"` // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. SubnetConfigurations []VpcEndpointSubnetConfiguration `pulumi:"subnetConfigurations"` // The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. @@ -455,6 +463,8 @@ type VpcEndpointArgs struct { SecurityGroupIds pulumi.StringArrayInput // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName pulumi.StringInput + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + ServiceRegion pulumi.StringPtrInput // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. SubnetConfigurations VpcEndpointSubnetConfigurationArrayInput // The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. @@ -631,6 +641,11 @@ func (o VpcEndpointOutput) ServiceName() pulumi.StringOutput { return o.ApplyT(func(v *VpcEndpoint) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) } +// The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. +func (o VpcEndpointOutput) ServiceRegion() pulumi.StringOutput { + return o.ApplyT(func(v *VpcEndpoint) pulumi.StringOutput { return v.ServiceRegion }).(pulumi.StringOutput) +} + // The state of the VPC endpoint. func (o VpcEndpointOutput) State() pulumi.StringOutput { return o.ApplyT(func(v *VpcEndpoint) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) diff --git a/sdk/go/aws/eks/cluster.go b/sdk/go/aws/eks/cluster.go index a532dcb2751..0393e7227d7 100644 --- a/sdk/go/aws/eks/cluster.go +++ b/sdk/go/aws/eks/cluster.go @@ -94,7 +94,7 @@ import ( // // ### EKS Cluster with EKS Auto Mode // -// > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. +// > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrapSelfManagedAddons` is set to `false`. // // ```go // package main @@ -202,8 +202,9 @@ import ( // AccessConfig: &eks.ClusterAccessConfigArgs{ // AuthenticationMode: pulumi.String("API"), // }, -// RoleArn: cluster.Arn, -// Version: pulumi.String("1.31"), +// RoleArn: cluster.Arn, +// Version: pulumi.String("1.31"), +// BootstrapSelfManagedAddons: pulumi.Bool(false), // ComputeConfig: &eks.ClusterComputeConfigArgs{ // Enabled: pulumi.Bool(true), // NodePools: pulumi.StringArray{ diff --git a/sdk/go/aws/elasticache/replicationGroup.go b/sdk/go/aws/elasticache/replicationGroup.go index b3336e3bf72..ebd029522d0 100644 --- a/sdk/go/aws/elasticache/replicationGroup.go +++ b/sdk/go/aws/elasticache/replicationGroup.go @@ -320,6 +320,8 @@ type ReplicationGroup struct { // ARN of the created ElastiCache Replication Group. Arn pulumi.StringOutput `pulumi:"arn"` // Whether to enable encryption at rest. + // When `engine` is `redis`, default is `false`. + // When `engine` is `valkey`, default is `true`. AtRestEncryptionEnabled pulumi.BoolOutput `pulumi:"atRestEncryptionEnabled"` // Password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`. AuthToken pulumi.StringPtrOutput `pulumi:"authToken"` @@ -341,7 +343,9 @@ type ReplicationGroup struct { DataTieringEnabled pulumi.BoolOutput `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description pulumi.StringOutput `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + // Name of the cache engine to be used for the clusters in this replication group. + // Valid values are `redis` or `valkey`. + // Default is `redis`. Engine pulumi.StringPtrOutput `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -487,6 +491,8 @@ type replicationGroupState struct { // ARN of the created ElastiCache Replication Group. Arn *string `pulumi:"arn"` // Whether to enable encryption at rest. + // When `engine` is `redis`, default is `false`. + // When `engine` is `valkey`, default is `true`. AtRestEncryptionEnabled *bool `pulumi:"atRestEncryptionEnabled"` // Password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`. AuthToken *string `pulumi:"authToken"` @@ -508,7 +514,9 @@ type replicationGroupState struct { DataTieringEnabled *bool `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description *string `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + // Name of the cache engine to be used for the clusters in this replication group. + // Valid values are `redis` or `valkey`. + // Default is `redis`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -615,6 +623,8 @@ type ReplicationGroupState struct { // ARN of the created ElastiCache Replication Group. Arn pulumi.StringPtrInput // Whether to enable encryption at rest. + // When `engine` is `redis`, default is `false`. + // When `engine` is `valkey`, default is `true`. AtRestEncryptionEnabled pulumi.BoolPtrInput // Password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`. AuthToken pulumi.StringPtrInput @@ -636,7 +646,9 @@ type ReplicationGroupState struct { DataTieringEnabled pulumi.BoolPtrInput // User-created description for the replication group. Must not be empty. Description pulumi.StringPtrInput - // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + // Name of the cache engine to be used for the clusters in this replication group. + // Valid values are `redis` or `valkey`. + // Default is `redis`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -745,6 +757,8 @@ type replicationGroupArgs struct { // Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. ApplyImmediately *bool `pulumi:"applyImmediately"` // Whether to enable encryption at rest. + // When `engine` is `redis`, default is `false`. + // When `engine` is `valkey`, default is `true`. AtRestEncryptionEnabled *bool `pulumi:"atRestEncryptionEnabled"` // Password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`. AuthToken *string `pulumi:"authToken"` @@ -762,7 +776,9 @@ type replicationGroupArgs struct { DataTieringEnabled *bool `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description string `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + // Name of the cache engine to be used for the clusters in this replication group. + // Valid values are `redis` or `valkey`. + // Default is `redis`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -856,6 +872,8 @@ type ReplicationGroupArgs struct { // Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. ApplyImmediately pulumi.BoolPtrInput // Whether to enable encryption at rest. + // When `engine` is `redis`, default is `false`. + // When `engine` is `valkey`, default is `true`. AtRestEncryptionEnabled pulumi.BoolPtrInput // Password used to access a password protected server. Can be specified only if `transitEncryptionEnabled = true`. AuthToken pulumi.StringPtrInput @@ -873,7 +891,9 @@ type ReplicationGroupArgs struct { DataTieringEnabled pulumi.BoolPtrInput // User-created description for the replication group. Must not be empty. Description pulumi.StringInput - // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + // Name of the cache engine to be used for the clusters in this replication group. + // Valid values are `redis` or `valkey`. + // Default is `redis`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -1060,6 +1080,8 @@ func (o ReplicationGroupOutput) Arn() pulumi.StringOutput { } // Whether to enable encryption at rest. +// When `engine` is `redis`, default is `false`. +// When `engine` is `valkey`, default is `true`. func (o ReplicationGroupOutput) AtRestEncryptionEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.BoolOutput { return v.AtRestEncryptionEnabled }).(pulumi.BoolOutput) } @@ -1111,7 +1133,9 @@ func (o ReplicationGroupOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) } -// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. +// Name of the cache engine to be used for the clusters in this replication group. +// Valid values are `redis` or `valkey`. +// Default is `redis`. func (o ReplicationGroupOutput) Engine() pulumi.StringPtrOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringPtrOutput { return v.Engine }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/fsx/lustreFileSystem.go b/sdk/go/aws/fsx/lustreFileSystem.go index 1914924f3d7..37084470244 100644 --- a/sdk/go/aws/fsx/lustreFileSystem.go +++ b/sdk/go/aws/fsx/lustreFileSystem.go @@ -77,6 +77,8 @@ type LustreFileSystem struct { DnsName pulumi.StringOutput `pulumi:"dnsName"` // The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. DriveCacheType pulumi.StringPtrOutput `pulumi:"driveCacheType"` + // Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + EfaEnabled pulumi.BoolOutput `pulumi:"efaEnabled"` // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. ExportPath pulumi.StringOutput `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. @@ -184,6 +186,8 @@ type lustreFileSystemState struct { DnsName *string `pulumi:"dnsName"` // The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. DriveCacheType *string `pulumi:"driveCacheType"` + // Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + EfaEnabled *bool `pulumi:"efaEnabled"` // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. ExportPath *string `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. @@ -259,6 +263,8 @@ type LustreFileSystemState struct { DnsName pulumi.StringPtrInput // The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. DriveCacheType pulumi.StringPtrInput + // Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + EfaEnabled pulumi.BoolPtrInput // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. ExportPath pulumi.StringPtrInput // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. @@ -334,6 +340,8 @@ type lustreFileSystemArgs struct { DeploymentType *string `pulumi:"deploymentType"` // The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. DriveCacheType *string `pulumi:"driveCacheType"` + // Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + EfaEnabled *bool `pulumi:"efaEnabled"` // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. ExportPath *string `pulumi:"exportPath"` // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. @@ -394,6 +402,8 @@ type LustreFileSystemArgs struct { DeploymentType pulumi.StringPtrInput // The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. DriveCacheType pulumi.StringPtrInput + // Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + EfaEnabled pulumi.BoolPtrInput // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. ExportPath pulumi.StringPtrInput // Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. @@ -573,6 +583,11 @@ func (o LustreFileSystemOutput) DriveCacheType() pulumi.StringPtrOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringPtrOutput { return v.DriveCacheType }).(pulumi.StringPtrOutput) } +// Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. +func (o LustreFileSystemOutput) EfaEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *LustreFileSystem) pulumi.BoolOutput { return v.EfaEnabled }).(pulumi.BoolOutput) +} + // S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. func (o LustreFileSystemOutput) ExportPath() pulumi.StringOutput { return o.ApplyT(func(v *LustreFileSystem) pulumi.StringOutput { return v.ExportPath }).(pulumi.StringOutput) diff --git a/sdk/go/aws/lakeformation/permissions.go b/sdk/go/aws/lakeformation/permissions.go index 174b7c4f6b8..ac0ffaed145 100644 --- a/sdk/go/aws/lakeformation/permissions.go +++ b/sdk/go/aws/lakeformation/permissions.go @@ -144,6 +144,21 @@ import ( // | ---- | ---- | // | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) | // +// ## `ALLIAMPrincipals` group +// +// AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined. +// +// resource "lakeformation.Permissions" "example" { +// permissions = ["SELECT"] +// principal = "123456789012:IAMPrincipals" +// +// tableWithColumns { +// databaseName = aws_glue_catalog_table.example.database_name +// name = aws_glue_catalog_table.example.name +// columnNames = ["event"] +// } +// } +// // ## Using Lake Formation Permissions // // Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed. diff --git a/sdk/go/aws/lb/pulumiTypes.go b/sdk/go/aws/lb/pulumiTypes.go index a4ee1469ea4..a76789e10f9 100644 --- a/sdk/go/aws/lb/pulumiTypes.go +++ b/sdk/go/aws/lb/pulumiTypes.go @@ -1660,6 +1660,8 @@ func (o ListenerDefaultActionRedirectPtrOutput) StatusCode() pulumi.StringPtrOut } type ListenerMutualAuthentication struct { + // Valid values are `off` and `on`. + AdvertiseTrustStoreCaNames *string `pulumi:"advertiseTrustStoreCaNames"` // Whether client certificate expiry is ignored. Default is `false`. IgnoreClientCertificateExpiry *bool `pulumi:"ignoreClientCertificateExpiry"` // Valid values are `off`, `verify` and `passthrough`. @@ -1680,6 +1682,8 @@ type ListenerMutualAuthenticationInput interface { } type ListenerMutualAuthenticationArgs struct { + // Valid values are `off` and `on`. + AdvertiseTrustStoreCaNames pulumi.StringPtrInput `pulumi:"advertiseTrustStoreCaNames"` // Whether client certificate expiry is ignored. Default is `false`. IgnoreClientCertificateExpiry pulumi.BoolPtrInput `pulumi:"ignoreClientCertificateExpiry"` // Valid values are `off`, `verify` and `passthrough`. @@ -1765,6 +1769,11 @@ func (o ListenerMutualAuthenticationOutput) ToListenerMutualAuthenticationPtrOut }).(ListenerMutualAuthenticationPtrOutput) } +// Valid values are `off` and `on`. +func (o ListenerMutualAuthenticationOutput) AdvertiseTrustStoreCaNames() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListenerMutualAuthentication) *string { return v.AdvertiseTrustStoreCaNames }).(pulumi.StringPtrOutput) +} + // Whether client certificate expiry is ignored. Default is `false`. func (o ListenerMutualAuthenticationOutput) IgnoreClientCertificateExpiry() pulumi.BoolPtrOutput { return o.ApplyT(func(v ListenerMutualAuthentication) *bool { return v.IgnoreClientCertificateExpiry }).(pulumi.BoolPtrOutput) @@ -1804,6 +1813,16 @@ func (o ListenerMutualAuthenticationPtrOutput) Elem() ListenerMutualAuthenticati }).(ListenerMutualAuthenticationOutput) } +// Valid values are `off` and `on`. +func (o ListenerMutualAuthenticationPtrOutput) AdvertiseTrustStoreCaNames() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ListenerMutualAuthentication) *string { + if v == nil { + return nil + } + return v.AdvertiseTrustStoreCaNames + }).(pulumi.StringPtrOutput) +} + // Whether client certificate expiry is ignored. Default is `false`. func (o ListenerMutualAuthenticationPtrOutput) IgnoreClientCertificateExpiry() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ListenerMutualAuthentication) *bool { diff --git a/sdk/go/aws/licensemanager/pulumiTypes.go b/sdk/go/aws/licensemanager/pulumiTypes.go index be33b86e41d..edf0dde9c1d 100644 --- a/sdk/go/aws/licensemanager/pulumiTypes.go +++ b/sdk/go/aws/licensemanager/pulumiTypes.go @@ -542,6 +542,8 @@ type GetReceivedLicenseEntitlement struct { MaxCount int `pulumi:"maxCount"` // The key name. Name string `pulumi:"name"` + // Indicates whether overages are allowed. + Overage bool `pulumi:"overage"` // Entitlement unit. Unit string `pulumi:"unit"` // The value. @@ -566,6 +568,8 @@ type GetReceivedLicenseEntitlementArgs struct { MaxCount pulumi.IntInput `pulumi:"maxCount"` // The key name. Name pulumi.StringInput `pulumi:"name"` + // Indicates whether overages are allowed. + Overage pulumi.BoolInput `pulumi:"overage"` // Entitlement unit. Unit pulumi.StringInput `pulumi:"unit"` // The value. @@ -638,6 +642,11 @@ func (o GetReceivedLicenseEntitlementOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetReceivedLicenseEntitlement) string { return v.Name }).(pulumi.StringOutput) } +// Indicates whether overages are allowed. +func (o GetReceivedLicenseEntitlementOutput) Overage() pulumi.BoolOutput { + return o.ApplyT(func(v GetReceivedLicenseEntitlement) bool { return v.Overage }).(pulumi.BoolOutput) +} + // Entitlement unit. func (o GetReceivedLicenseEntitlementOutput) Unit() pulumi.StringOutput { return o.ApplyT(func(v GetReceivedLicenseEntitlement) string { return v.Unit }).(pulumi.StringOutput) diff --git a/sdk/go/aws/memorydb/cluster.go b/sdk/go/aws/memorydb/cluster.go index e9b216311db..774e487875f 100644 --- a/sdk/go/aws/memorydb/cluster.go +++ b/sdk/go/aws/memorydb/cluster.go @@ -85,6 +85,8 @@ type Cluster struct { KmsKeyArn pulumi.StringPtrOutput `pulumi:"kmsKeyArn"` // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` + // The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + MultiRegionClusterName pulumi.StringPtrOutput `pulumi:"multiRegionClusterName"` // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringOutput `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. @@ -186,6 +188,8 @@ type clusterState struct { KmsKeyArn *string `pulumi:"kmsKeyArn"` // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. MaintenanceWindow *string `pulumi:"maintenanceWindow"` + // The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + MultiRegionClusterName *string `pulumi:"multiRegionClusterName"` // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. @@ -252,6 +256,8 @@ type ClusterState struct { KmsKeyArn pulumi.StringPtrInput // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. MaintenanceWindow pulumi.StringPtrInput + // The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + MultiRegionClusterName pulumi.StringPtrInput // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. @@ -317,6 +323,8 @@ type clusterArgs struct { KmsKeyArn *string `pulumi:"kmsKeyArn"` // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. MaintenanceWindow *string `pulumi:"maintenanceWindow"` + // The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + MultiRegionClusterName *string `pulumi:"multiRegionClusterName"` // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. @@ -373,6 +381,8 @@ type ClusterArgs struct { KmsKeyArn pulumi.StringPtrInput // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. MaintenanceWindow pulumi.StringPtrInput + // The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + MultiRegionClusterName pulumi.StringPtrInput // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. @@ -555,6 +565,11 @@ func (o ClusterOutput) MaintenanceWindow() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MaintenanceWindow }).(pulumi.StringOutput) } +// The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. +func (o ClusterOutput) MultiRegionClusterName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.MultiRegionClusterName }).(pulumi.StringPtrOutput) +} + // Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. func (o ClusterOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/aws/memorydb/init.go b/sdk/go/aws/memorydb/init.go index 1af9fa4ccbd..bcdb0c1b018 100644 --- a/sdk/go/aws/memorydb/init.go +++ b/sdk/go/aws/memorydb/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Acl{} case "aws:memorydb/cluster:Cluster": r = &Cluster{} + case "aws:memorydb/multiRegionCluster:MultiRegionCluster": + r = &MultiRegionCluster{} case "aws:memorydb/parameterGroup:ParameterGroup": r = &ParameterGroup{} case "aws:memorydb/snapshot:Snapshot": @@ -56,6 +58,11 @@ func init() { "memorydb/cluster", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "memorydb/multiRegionCluster", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "memorydb/parameterGroup", diff --git a/sdk/go/aws/memorydb/multiRegionCluster.go b/sdk/go/aws/memorydb/multiRegionCluster.go new file mode 100644 index 00000000000..b26b9b89065 --- /dev/null +++ b/sdk/go/aws/memorydb/multiRegionCluster.go @@ -0,0 +1,473 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package memorydb + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a MemoryDB Multi Region Cluster. +// +// More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/memorydb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := memorydb.NewMultiRegionCluster(ctx, "example", &memorydb.MultiRegionClusterArgs{ +// MultiRegionClusterNameSuffix: pulumi.String("example"), +// NodeType: pulumi.String("db.r7g.xlarge"), +// }) +// if err != nil { +// return err +// } +// _, err = memorydb.NewCluster(ctx, "example", &memorydb.ClusterArgs{ +// AclName: pulumi.Any(exampleAwsMemorydbAcl.Id), +// AutoMinorVersionUpgrade: pulumi.Bool(false), +// Name: pulumi.String("example"), +// NodeType: pulumi.String("db.t4g.small"), +// NumShards: pulumi.Int(2), +// SecurityGroupIds: pulumi.StringArray{ +// exampleAwsSecurityGroup.Id, +// }, +// SnapshotRetentionLimit: pulumi.Int(7), +// SubnetGroupName: pulumi.Any(exampleAwsMemorydbSubnetGroup.Id), +// MultiRegionClusterName: example.MultiRegionClusterName, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: +// +// ```sh +// $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example +// ``` +type MultiRegionCluster struct { + pulumi.CustomResourceState + + // The ARN of the multi-region cluster. + Arn pulumi.StringOutput `pulumi:"arn"` + // description for the multi-region cluster. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + Engine pulumi.StringOutput `pulumi:"engine"` + // The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // The name of the multi-region cluster. + MultiRegionClusterName pulumi.StringOutput `pulumi:"multiRegionClusterName"` + // A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + MultiRegionClusterNameSuffix pulumi.StringOutput `pulumi:"multiRegionClusterNameSuffix"` + // The name of the multi-region parameter group to be associated with the cluster. + MultiRegionParameterGroupName pulumi.StringOutput `pulumi:"multiRegionParameterGroupName"` + // The node type to be used for the multi-region cluster. + // + // The following arguments are optional: + NodeType pulumi.StringOutput `pulumi:"nodeType"` + // The number of shards for the multi-region cluster. + NumShards pulumi.IntOutput `pulumi:"numShards"` + Status pulumi.StringOutput `pulumi:"status"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts MultiRegionClusterTimeoutsPtrOutput `pulumi:"timeouts"` + // A flag to enable in-transit encryption on the cluster. + TlsEnabled pulumi.BoolOutput `pulumi:"tlsEnabled"` + UpdateStrategy pulumi.StringPtrOutput `pulumi:"updateStrategy"` +} + +// NewMultiRegionCluster registers a new resource with the given unique name, arguments, and options. +func NewMultiRegionCluster(ctx *pulumi.Context, + name string, args *MultiRegionClusterArgs, opts ...pulumi.ResourceOption) (*MultiRegionCluster, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.MultiRegionClusterNameSuffix == nil { + return nil, errors.New("invalid value for required argument 'MultiRegionClusterNameSuffix'") + } + if args.NodeType == nil { + return nil, errors.New("invalid value for required argument 'NodeType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource MultiRegionCluster + err := ctx.RegisterResource("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMultiRegionCluster gets an existing MultiRegionCluster resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMultiRegionCluster(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MultiRegionClusterState, opts ...pulumi.ResourceOption) (*MultiRegionCluster, error) { + var resource MultiRegionCluster + err := ctx.ReadResource("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MultiRegionCluster resources. +type multiRegionClusterState struct { + // The ARN of the multi-region cluster. + Arn *string `pulumi:"arn"` + // description for the multi-region cluster. + Description *string `pulumi:"description"` + // The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + Engine *string `pulumi:"engine"` + // The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + EngineVersion *string `pulumi:"engineVersion"` + // The name of the multi-region cluster. + MultiRegionClusterName *string `pulumi:"multiRegionClusterName"` + // A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + MultiRegionClusterNameSuffix *string `pulumi:"multiRegionClusterNameSuffix"` + // The name of the multi-region parameter group to be associated with the cluster. + MultiRegionParameterGroupName *string `pulumi:"multiRegionParameterGroupName"` + // The node type to be used for the multi-region cluster. + // + // The following arguments are optional: + NodeType *string `pulumi:"nodeType"` + // The number of shards for the multi-region cluster. + NumShards *int `pulumi:"numShards"` + Status *string `pulumi:"status"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *MultiRegionClusterTimeouts `pulumi:"timeouts"` + // A flag to enable in-transit encryption on the cluster. + TlsEnabled *bool `pulumi:"tlsEnabled"` + UpdateStrategy *string `pulumi:"updateStrategy"` +} + +type MultiRegionClusterState struct { + // The ARN of the multi-region cluster. + Arn pulumi.StringPtrInput + // description for the multi-region cluster. + Description pulumi.StringPtrInput + // The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + Engine pulumi.StringPtrInput + // The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + EngineVersion pulumi.StringPtrInput + // The name of the multi-region cluster. + MultiRegionClusterName pulumi.StringPtrInput + // A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + MultiRegionClusterNameSuffix pulumi.StringPtrInput + // The name of the multi-region parameter group to be associated with the cluster. + MultiRegionParameterGroupName pulumi.StringPtrInput + // The node type to be used for the multi-region cluster. + // + // The following arguments are optional: + NodeType pulumi.StringPtrInput + // The number of shards for the multi-region cluster. + NumShards pulumi.IntPtrInput + Status pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + Timeouts MultiRegionClusterTimeoutsPtrInput + // A flag to enable in-transit encryption on the cluster. + TlsEnabled pulumi.BoolPtrInput + UpdateStrategy pulumi.StringPtrInput +} + +func (MultiRegionClusterState) ElementType() reflect.Type { + return reflect.TypeOf((*multiRegionClusterState)(nil)).Elem() +} + +type multiRegionClusterArgs struct { + // description for the multi-region cluster. + Description *string `pulumi:"description"` + // The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + Engine *string `pulumi:"engine"` + // The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + EngineVersion *string `pulumi:"engineVersion"` + // A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + MultiRegionClusterNameSuffix string `pulumi:"multiRegionClusterNameSuffix"` + // The name of the multi-region parameter group to be associated with the cluster. + MultiRegionParameterGroupName *string `pulumi:"multiRegionParameterGroupName"` + // The node type to be used for the multi-region cluster. + // + // The following arguments are optional: + NodeType string `pulumi:"nodeType"` + // The number of shards for the multi-region cluster. + NumShards *int `pulumi:"numShards"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + Timeouts *MultiRegionClusterTimeouts `pulumi:"timeouts"` + // A flag to enable in-transit encryption on the cluster. + TlsEnabled *bool `pulumi:"tlsEnabled"` + UpdateStrategy *string `pulumi:"updateStrategy"` +} + +// The set of arguments for constructing a MultiRegionCluster resource. +type MultiRegionClusterArgs struct { + // description for the multi-region cluster. + Description pulumi.StringPtrInput + // The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + Engine pulumi.StringPtrInput + // The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + EngineVersion pulumi.StringPtrInput + // A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + MultiRegionClusterNameSuffix pulumi.StringInput + // The name of the multi-region parameter group to be associated with the cluster. + MultiRegionParameterGroupName pulumi.StringPtrInput + // The node type to be used for the multi-region cluster. + // + // The following arguments are optional: + NodeType pulumi.StringInput + // The number of shards for the multi-region cluster. + NumShards pulumi.IntPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + Timeouts MultiRegionClusterTimeoutsPtrInput + // A flag to enable in-transit encryption on the cluster. + TlsEnabled pulumi.BoolPtrInput + UpdateStrategy pulumi.StringPtrInput +} + +func (MultiRegionClusterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*multiRegionClusterArgs)(nil)).Elem() +} + +type MultiRegionClusterInput interface { + pulumi.Input + + ToMultiRegionClusterOutput() MultiRegionClusterOutput + ToMultiRegionClusterOutputWithContext(ctx context.Context) MultiRegionClusterOutput +} + +func (*MultiRegionCluster) ElementType() reflect.Type { + return reflect.TypeOf((**MultiRegionCluster)(nil)).Elem() +} + +func (i *MultiRegionCluster) ToMultiRegionClusterOutput() MultiRegionClusterOutput { + return i.ToMultiRegionClusterOutputWithContext(context.Background()) +} + +func (i *MultiRegionCluster) ToMultiRegionClusterOutputWithContext(ctx context.Context) MultiRegionClusterOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterOutput) +} + +// MultiRegionClusterArrayInput is an input type that accepts MultiRegionClusterArray and MultiRegionClusterArrayOutput values. +// You can construct a concrete instance of `MultiRegionClusterArrayInput` via: +// +// MultiRegionClusterArray{ MultiRegionClusterArgs{...} } +type MultiRegionClusterArrayInput interface { + pulumi.Input + + ToMultiRegionClusterArrayOutput() MultiRegionClusterArrayOutput + ToMultiRegionClusterArrayOutputWithContext(context.Context) MultiRegionClusterArrayOutput +} + +type MultiRegionClusterArray []MultiRegionClusterInput + +func (MultiRegionClusterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MultiRegionCluster)(nil)).Elem() +} + +func (i MultiRegionClusterArray) ToMultiRegionClusterArrayOutput() MultiRegionClusterArrayOutput { + return i.ToMultiRegionClusterArrayOutputWithContext(context.Background()) +} + +func (i MultiRegionClusterArray) ToMultiRegionClusterArrayOutputWithContext(ctx context.Context) MultiRegionClusterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterArrayOutput) +} + +// MultiRegionClusterMapInput is an input type that accepts MultiRegionClusterMap and MultiRegionClusterMapOutput values. +// You can construct a concrete instance of `MultiRegionClusterMapInput` via: +// +// MultiRegionClusterMap{ "key": MultiRegionClusterArgs{...} } +type MultiRegionClusterMapInput interface { + pulumi.Input + + ToMultiRegionClusterMapOutput() MultiRegionClusterMapOutput + ToMultiRegionClusterMapOutputWithContext(context.Context) MultiRegionClusterMapOutput +} + +type MultiRegionClusterMap map[string]MultiRegionClusterInput + +func (MultiRegionClusterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MultiRegionCluster)(nil)).Elem() +} + +func (i MultiRegionClusterMap) ToMultiRegionClusterMapOutput() MultiRegionClusterMapOutput { + return i.ToMultiRegionClusterMapOutputWithContext(context.Background()) +} + +func (i MultiRegionClusterMap) ToMultiRegionClusterMapOutputWithContext(ctx context.Context) MultiRegionClusterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterMapOutput) +} + +type MultiRegionClusterOutput struct{ *pulumi.OutputState } + +func (MultiRegionClusterOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MultiRegionCluster)(nil)).Elem() +} + +func (o MultiRegionClusterOutput) ToMultiRegionClusterOutput() MultiRegionClusterOutput { + return o +} + +func (o MultiRegionClusterOutput) ToMultiRegionClusterOutputWithContext(ctx context.Context) MultiRegionClusterOutput { + return o +} + +// The ARN of the multi-region cluster. +func (o MultiRegionClusterOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// description for the multi-region cluster. +func (o MultiRegionClusterOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. +func (o MultiRegionClusterOutput) Engine() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) +} + +// The version of the engine to be used for the multi-region cluster. Downgrades are not supported. +func (o MultiRegionClusterOutput) EngineVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) +} + +// The name of the multi-region cluster. +func (o MultiRegionClusterOutput) MultiRegionClusterName() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.MultiRegionClusterName }).(pulumi.StringOutput) +} + +// A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. +func (o MultiRegionClusterOutput) MultiRegionClusterNameSuffix() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.MultiRegionClusterNameSuffix }).(pulumi.StringOutput) +} + +// The name of the multi-region parameter group to be associated with the cluster. +func (o MultiRegionClusterOutput) MultiRegionParameterGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.MultiRegionParameterGroupName }).(pulumi.StringOutput) +} + +// The node type to be used for the multi-region cluster. +// +// The following arguments are optional: +func (o MultiRegionClusterOutput) NodeType() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput) +} + +// The number of shards for the multi-region cluster. +func (o MultiRegionClusterOutput) NumShards() pulumi.IntOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.IntOutput { return v.NumShards }).(pulumi.IntOutput) +} + +func (o MultiRegionClusterOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o MultiRegionClusterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o MultiRegionClusterOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o MultiRegionClusterOutput) Timeouts() MultiRegionClusterTimeoutsPtrOutput { + return o.ApplyT(func(v *MultiRegionCluster) MultiRegionClusterTimeoutsPtrOutput { return v.Timeouts }).(MultiRegionClusterTimeoutsPtrOutput) +} + +// A flag to enable in-transit encryption on the cluster. +func (o MultiRegionClusterOutput) TlsEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.BoolOutput { return v.TlsEnabled }).(pulumi.BoolOutput) +} + +func (o MultiRegionClusterOutput) UpdateStrategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MultiRegionCluster) pulumi.StringPtrOutput { return v.UpdateStrategy }).(pulumi.StringPtrOutput) +} + +type MultiRegionClusterArrayOutput struct{ *pulumi.OutputState } + +func (MultiRegionClusterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MultiRegionCluster)(nil)).Elem() +} + +func (o MultiRegionClusterArrayOutput) ToMultiRegionClusterArrayOutput() MultiRegionClusterArrayOutput { + return o +} + +func (o MultiRegionClusterArrayOutput) ToMultiRegionClusterArrayOutputWithContext(ctx context.Context) MultiRegionClusterArrayOutput { + return o +} + +func (o MultiRegionClusterArrayOutput) Index(i pulumi.IntInput) MultiRegionClusterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MultiRegionCluster { + return vs[0].([]*MultiRegionCluster)[vs[1].(int)] + }).(MultiRegionClusterOutput) +} + +type MultiRegionClusterMapOutput struct{ *pulumi.OutputState } + +func (MultiRegionClusterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MultiRegionCluster)(nil)).Elem() +} + +func (o MultiRegionClusterMapOutput) ToMultiRegionClusterMapOutput() MultiRegionClusterMapOutput { + return o +} + +func (o MultiRegionClusterMapOutput) ToMultiRegionClusterMapOutputWithContext(ctx context.Context) MultiRegionClusterMapOutput { + return o +} + +func (o MultiRegionClusterMapOutput) MapIndex(k pulumi.StringInput) MultiRegionClusterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MultiRegionCluster { + return vs[0].(map[string]*MultiRegionCluster)[vs[1].(string)] + }).(MultiRegionClusterOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionClusterInput)(nil)).Elem(), &MultiRegionCluster{}) + pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionClusterArrayInput)(nil)).Elem(), MultiRegionClusterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionClusterMapInput)(nil)).Elem(), MultiRegionClusterMap{}) + pulumi.RegisterOutputType(MultiRegionClusterOutput{}) + pulumi.RegisterOutputType(MultiRegionClusterArrayOutput{}) + pulumi.RegisterOutputType(MultiRegionClusterMapOutput{}) +} diff --git a/sdk/go/aws/memorydb/pulumiTypes.go b/sdk/go/aws/memorydb/pulumiTypes.go index 2d32b022eb4..2d09a3b9ead 100644 --- a/sdk/go/aws/memorydb/pulumiTypes.go +++ b/sdk/go/aws/memorydb/pulumiTypes.go @@ -470,6 +470,181 @@ func (o ClusterShardNodeEndpointArrayOutput) Index(i pulumi.IntInput) ClusterSha }).(ClusterShardNodeEndpointOutput) } +type MultiRegionClusterTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// MultiRegionClusterTimeoutsInput is an input type that accepts MultiRegionClusterTimeoutsArgs and MultiRegionClusterTimeoutsOutput values. +// You can construct a concrete instance of `MultiRegionClusterTimeoutsInput` via: +// +// MultiRegionClusterTimeoutsArgs{...} +type MultiRegionClusterTimeoutsInput interface { + pulumi.Input + + ToMultiRegionClusterTimeoutsOutput() MultiRegionClusterTimeoutsOutput + ToMultiRegionClusterTimeoutsOutputWithContext(context.Context) MultiRegionClusterTimeoutsOutput +} + +type MultiRegionClusterTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (MultiRegionClusterTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MultiRegionClusterTimeouts)(nil)).Elem() +} + +func (i MultiRegionClusterTimeoutsArgs) ToMultiRegionClusterTimeoutsOutput() MultiRegionClusterTimeoutsOutput { + return i.ToMultiRegionClusterTimeoutsOutputWithContext(context.Background()) +} + +func (i MultiRegionClusterTimeoutsArgs) ToMultiRegionClusterTimeoutsOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterTimeoutsOutput) +} + +func (i MultiRegionClusterTimeoutsArgs) ToMultiRegionClusterTimeoutsPtrOutput() MultiRegionClusterTimeoutsPtrOutput { + return i.ToMultiRegionClusterTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i MultiRegionClusterTimeoutsArgs) ToMultiRegionClusterTimeoutsPtrOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterTimeoutsOutput).ToMultiRegionClusterTimeoutsPtrOutputWithContext(ctx) +} + +// MultiRegionClusterTimeoutsPtrInput is an input type that accepts MultiRegionClusterTimeoutsArgs, MultiRegionClusterTimeoutsPtr and MultiRegionClusterTimeoutsPtrOutput values. +// You can construct a concrete instance of `MultiRegionClusterTimeoutsPtrInput` via: +// +// MultiRegionClusterTimeoutsArgs{...} +// +// or: +// +// nil +type MultiRegionClusterTimeoutsPtrInput interface { + pulumi.Input + + ToMultiRegionClusterTimeoutsPtrOutput() MultiRegionClusterTimeoutsPtrOutput + ToMultiRegionClusterTimeoutsPtrOutputWithContext(context.Context) MultiRegionClusterTimeoutsPtrOutput +} + +type multiRegionClusterTimeoutsPtrType MultiRegionClusterTimeoutsArgs + +func MultiRegionClusterTimeoutsPtr(v *MultiRegionClusterTimeoutsArgs) MultiRegionClusterTimeoutsPtrInput { + return (*multiRegionClusterTimeoutsPtrType)(v) +} + +func (*multiRegionClusterTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MultiRegionClusterTimeouts)(nil)).Elem() +} + +func (i *multiRegionClusterTimeoutsPtrType) ToMultiRegionClusterTimeoutsPtrOutput() MultiRegionClusterTimeoutsPtrOutput { + return i.ToMultiRegionClusterTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *multiRegionClusterTimeoutsPtrType) ToMultiRegionClusterTimeoutsPtrOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultiRegionClusterTimeoutsPtrOutput) +} + +type MultiRegionClusterTimeoutsOutput struct{ *pulumi.OutputState } + +func (MultiRegionClusterTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MultiRegionClusterTimeouts)(nil)).Elem() +} + +func (o MultiRegionClusterTimeoutsOutput) ToMultiRegionClusterTimeoutsOutput() MultiRegionClusterTimeoutsOutput { + return o +} + +func (o MultiRegionClusterTimeoutsOutput) ToMultiRegionClusterTimeoutsOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsOutput { + return o +} + +func (o MultiRegionClusterTimeoutsOutput) ToMultiRegionClusterTimeoutsPtrOutput() MultiRegionClusterTimeoutsPtrOutput { + return o.ToMultiRegionClusterTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o MultiRegionClusterTimeoutsOutput) ToMultiRegionClusterTimeoutsPtrOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MultiRegionClusterTimeouts) *MultiRegionClusterTimeouts { + return &v + }).(MultiRegionClusterTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o MultiRegionClusterTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v MultiRegionClusterTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o MultiRegionClusterTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v MultiRegionClusterTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o MultiRegionClusterTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v MultiRegionClusterTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type MultiRegionClusterTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (MultiRegionClusterTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MultiRegionClusterTimeouts)(nil)).Elem() +} + +func (o MultiRegionClusterTimeoutsPtrOutput) ToMultiRegionClusterTimeoutsPtrOutput() MultiRegionClusterTimeoutsPtrOutput { + return o +} + +func (o MultiRegionClusterTimeoutsPtrOutput) ToMultiRegionClusterTimeoutsPtrOutputWithContext(ctx context.Context) MultiRegionClusterTimeoutsPtrOutput { + return o +} + +func (o MultiRegionClusterTimeoutsPtrOutput) Elem() MultiRegionClusterTimeoutsOutput { + return o.ApplyT(func(v *MultiRegionClusterTimeouts) MultiRegionClusterTimeouts { + if v != nil { + return *v + } + var ret MultiRegionClusterTimeouts + return ret + }).(MultiRegionClusterTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o MultiRegionClusterTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MultiRegionClusterTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o MultiRegionClusterTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MultiRegionClusterTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o MultiRegionClusterTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MultiRegionClusterTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type ParameterGroupParameter struct { // The name of the parameter. Name string `pulumi:"name"` @@ -1857,6 +2032,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterShardNodeArrayInput)(nil)).Elem(), ClusterShardNodeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterShardNodeEndpointInput)(nil)).Elem(), ClusterShardNodeEndpointArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterShardNodeEndpointArrayInput)(nil)).Elem(), ClusterShardNodeEndpointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionClusterTimeoutsInput)(nil)).Elem(), MultiRegionClusterTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MultiRegionClusterTimeoutsPtrInput)(nil)).Elem(), MultiRegionClusterTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ParameterGroupParameterInput)(nil)).Elem(), ParameterGroupParameterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ParameterGroupParameterArrayInput)(nil)).Elem(), ParameterGroupParameterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SnapshotClusterConfigurationInput)(nil)).Elem(), SnapshotClusterConfigurationArgs{}) @@ -1885,6 +2062,8 @@ func init() { pulumi.RegisterOutputType(ClusterShardNodeArrayOutput{}) pulumi.RegisterOutputType(ClusterShardNodeEndpointOutput{}) pulumi.RegisterOutputType(ClusterShardNodeEndpointArrayOutput{}) + pulumi.RegisterOutputType(MultiRegionClusterTimeoutsOutput{}) + pulumi.RegisterOutputType(MultiRegionClusterTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ParameterGroupParameterOutput{}) pulumi.RegisterOutputType(ParameterGroupParameterArrayOutput{}) pulumi.RegisterOutputType(SnapshotClusterConfigurationOutput{}) diff --git a/sdk/go/aws/networkmanager/attachmentAccepter.go b/sdk/go/aws/networkmanager/attachmentAccepter.go index aedd67360d9..7f28029cf02 100644 --- a/sdk/go/aws/networkmanager/attachmentAccepter.go +++ b/sdk/go/aws/networkmanager/attachmentAccepter.go @@ -82,8 +82,10 @@ type AttachmentAccepter struct { CoreNetworkArn pulumi.StringOutput `pulumi:"coreNetworkArn"` // The id of a core network. CoreNetworkId pulumi.StringOutput `pulumi:"coreNetworkId"` - // The Region where the edge is located. + // The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. EdgeLocation pulumi.StringOutput `pulumi:"edgeLocation"` + // The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` + EdgeLocations pulumi.StringArrayOutput `pulumi:"edgeLocations"` // The ID of the attachment account owner. OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"` // The attachment resource ARN. @@ -140,8 +142,10 @@ type attachmentAccepterState struct { CoreNetworkArn *string `pulumi:"coreNetworkArn"` // The id of a core network. CoreNetworkId *string `pulumi:"coreNetworkId"` - // The Region where the edge is located. + // The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. EdgeLocation *string `pulumi:"edgeLocation"` + // The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` + EdgeLocations []string `pulumi:"edgeLocations"` // The ID of the attachment account owner. OwnerAccountId *string `pulumi:"ownerAccountId"` // The attachment resource ARN. @@ -163,8 +167,10 @@ type AttachmentAccepterState struct { CoreNetworkArn pulumi.StringPtrInput // The id of a core network. CoreNetworkId pulumi.StringPtrInput - // The Region where the edge is located. + // The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. EdgeLocation pulumi.StringPtrInput + // The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` + EdgeLocations pulumi.StringArrayInput // The ID of the attachment account owner. OwnerAccountId pulumi.StringPtrInput // The attachment resource ARN. @@ -306,11 +312,16 @@ func (o AttachmentAccepterOutput) CoreNetworkId() pulumi.StringOutput { return o.ApplyT(func(v *AttachmentAccepter) pulumi.StringOutput { return v.CoreNetworkId }).(pulumi.StringOutput) } -// The Region where the edge is located. +// The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. func (o AttachmentAccepterOutput) EdgeLocation() pulumi.StringOutput { return o.ApplyT(func(v *AttachmentAccepter) pulumi.StringOutput { return v.EdgeLocation }).(pulumi.StringOutput) } +// The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` +func (o AttachmentAccepterOutput) EdgeLocations() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AttachmentAccepter) pulumi.StringArrayOutput { return v.EdgeLocations }).(pulumi.StringArrayOutput) +} + // The ID of the attachment account owner. func (o AttachmentAccepterOutput) OwnerAccountId() pulumi.StringOutput { return o.ApplyT(func(v *AttachmentAccepter) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput) diff --git a/sdk/go/aws/networkmanager/dxGatewayAttachment.go b/sdk/go/aws/networkmanager/dxGatewayAttachment.go new file mode 100644 index 00000000000..8eb9912c588 --- /dev/null +++ b/sdk/go/aws/networkmanager/dxGatewayAttachment.go @@ -0,0 +1,425 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package networkmanager + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkmanager" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := networkmanager.NewDxGatewayAttachment(ctx, "test", &networkmanager.DxGatewayAttachmentArgs{ +// CoreNetworkId: pulumi.Any(testAwsNetworkmanagerCoreNetworkPolicyAttachment.CoreNetworkId), +// DirectConnectGatewayArn: pulumi.Sprintf("arn:aws:directconnect::%v:dx-gateway/%v", current.AccountId, testAwsDxGateway.Id), +// EdgeLocations: pulumi.StringArray{ +// currentAwsRegion.Name, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: +// +// ```sh +// $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g +// ``` +type DxGatewayAttachment struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + // Policy rule number associated with the attachment. + AttachmentPolicyRuleNumber pulumi.IntOutput `pulumi:"attachmentPolicyRuleNumber"` + // Type of attachment. + AttachmentType pulumi.StringOutput `pulumi:"attachmentType"` + // ARN of the core network for the attachment. + CoreNetworkArn pulumi.StringOutput `pulumi:"coreNetworkArn"` + // ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + CoreNetworkId pulumi.StringOutput `pulumi:"coreNetworkId"` + // ARN of the Direct Connect gateway attachment. + DirectConnectGatewayArn pulumi.StringOutput `pulumi:"directConnectGatewayArn"` + // One or more core network edge locations to associate with the Direct Connect gateway attachment. + // + // The following arguments are optional: + EdgeLocations pulumi.StringArrayOutput `pulumi:"edgeLocations"` + // ID of the attachment account owner. + OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"` + // Name of the segment attachment. + SegmentName pulumi.StringOutput `pulumi:"segmentName"` + // State of the attachment. + State pulumi.StringOutput `pulumi:"state"` + // Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts DxGatewayAttachmentTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewDxGatewayAttachment registers a new resource with the given unique name, arguments, and options. +func NewDxGatewayAttachment(ctx *pulumi.Context, + name string, args *DxGatewayAttachmentArgs, opts ...pulumi.ResourceOption) (*DxGatewayAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CoreNetworkId == nil { + return nil, errors.New("invalid value for required argument 'CoreNetworkId'") + } + if args.DirectConnectGatewayArn == nil { + return nil, errors.New("invalid value for required argument 'DirectConnectGatewayArn'") + } + if args.EdgeLocations == nil { + return nil, errors.New("invalid value for required argument 'EdgeLocations'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DxGatewayAttachment + err := ctx.RegisterResource("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDxGatewayAttachment gets an existing DxGatewayAttachment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDxGatewayAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DxGatewayAttachmentState, opts ...pulumi.ResourceOption) (*DxGatewayAttachment, error) { + var resource DxGatewayAttachment + err := ctx.ReadResource("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DxGatewayAttachment resources. +type dxGatewayAttachmentState struct { + Arn *string `pulumi:"arn"` + // Policy rule number associated with the attachment. + AttachmentPolicyRuleNumber *int `pulumi:"attachmentPolicyRuleNumber"` + // Type of attachment. + AttachmentType *string `pulumi:"attachmentType"` + // ARN of the core network for the attachment. + CoreNetworkArn *string `pulumi:"coreNetworkArn"` + // ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + CoreNetworkId *string `pulumi:"coreNetworkId"` + // ARN of the Direct Connect gateway attachment. + DirectConnectGatewayArn *string `pulumi:"directConnectGatewayArn"` + // One or more core network edge locations to associate with the Direct Connect gateway attachment. + // + // The following arguments are optional: + EdgeLocations []string `pulumi:"edgeLocations"` + // ID of the attachment account owner. + OwnerAccountId *string `pulumi:"ownerAccountId"` + // Name of the segment attachment. + SegmentName *string `pulumi:"segmentName"` + // State of the attachment. + State *string `pulumi:"state"` + // Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *DxGatewayAttachmentTimeouts `pulumi:"timeouts"` +} + +type DxGatewayAttachmentState struct { + Arn pulumi.StringPtrInput + // Policy rule number associated with the attachment. + AttachmentPolicyRuleNumber pulumi.IntPtrInput + // Type of attachment. + AttachmentType pulumi.StringPtrInput + // ARN of the core network for the attachment. + CoreNetworkArn pulumi.StringPtrInput + // ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + CoreNetworkId pulumi.StringPtrInput + // ARN of the Direct Connect gateway attachment. + DirectConnectGatewayArn pulumi.StringPtrInput + // One or more core network edge locations to associate with the Direct Connect gateway attachment. + // + // The following arguments are optional: + EdgeLocations pulumi.StringArrayInput + // ID of the attachment account owner. + OwnerAccountId pulumi.StringPtrInput + // Name of the segment attachment. + SegmentName pulumi.StringPtrInput + // State of the attachment. + State pulumi.StringPtrInput + // Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + Timeouts DxGatewayAttachmentTimeoutsPtrInput +} + +func (DxGatewayAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*dxGatewayAttachmentState)(nil)).Elem() +} + +type dxGatewayAttachmentArgs struct { + // ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + CoreNetworkId string `pulumi:"coreNetworkId"` + // ARN of the Direct Connect gateway attachment. + DirectConnectGatewayArn string `pulumi:"directConnectGatewayArn"` + // One or more core network edge locations to associate with the Direct Connect gateway attachment. + // + // The following arguments are optional: + EdgeLocations []string `pulumi:"edgeLocations"` + // Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + Timeouts *DxGatewayAttachmentTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a DxGatewayAttachment resource. +type DxGatewayAttachmentArgs struct { + // ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + CoreNetworkId pulumi.StringInput + // ARN of the Direct Connect gateway attachment. + DirectConnectGatewayArn pulumi.StringInput + // One or more core network edge locations to associate with the Direct Connect gateway attachment. + // + // The following arguments are optional: + EdgeLocations pulumi.StringArrayInput + // Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + Timeouts DxGatewayAttachmentTimeoutsPtrInput +} + +func (DxGatewayAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dxGatewayAttachmentArgs)(nil)).Elem() +} + +type DxGatewayAttachmentInput interface { + pulumi.Input + + ToDxGatewayAttachmentOutput() DxGatewayAttachmentOutput + ToDxGatewayAttachmentOutputWithContext(ctx context.Context) DxGatewayAttachmentOutput +} + +func (*DxGatewayAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**DxGatewayAttachment)(nil)).Elem() +} + +func (i *DxGatewayAttachment) ToDxGatewayAttachmentOutput() DxGatewayAttachmentOutput { + return i.ToDxGatewayAttachmentOutputWithContext(context.Background()) +} + +func (i *DxGatewayAttachment) ToDxGatewayAttachmentOutputWithContext(ctx context.Context) DxGatewayAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentOutput) +} + +// DxGatewayAttachmentArrayInput is an input type that accepts DxGatewayAttachmentArray and DxGatewayAttachmentArrayOutput values. +// You can construct a concrete instance of `DxGatewayAttachmentArrayInput` via: +// +// DxGatewayAttachmentArray{ DxGatewayAttachmentArgs{...} } +type DxGatewayAttachmentArrayInput interface { + pulumi.Input + + ToDxGatewayAttachmentArrayOutput() DxGatewayAttachmentArrayOutput + ToDxGatewayAttachmentArrayOutputWithContext(context.Context) DxGatewayAttachmentArrayOutput +} + +type DxGatewayAttachmentArray []DxGatewayAttachmentInput + +func (DxGatewayAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DxGatewayAttachment)(nil)).Elem() +} + +func (i DxGatewayAttachmentArray) ToDxGatewayAttachmentArrayOutput() DxGatewayAttachmentArrayOutput { + return i.ToDxGatewayAttachmentArrayOutputWithContext(context.Background()) +} + +func (i DxGatewayAttachmentArray) ToDxGatewayAttachmentArrayOutputWithContext(ctx context.Context) DxGatewayAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentArrayOutput) +} + +// DxGatewayAttachmentMapInput is an input type that accepts DxGatewayAttachmentMap and DxGatewayAttachmentMapOutput values. +// You can construct a concrete instance of `DxGatewayAttachmentMapInput` via: +// +// DxGatewayAttachmentMap{ "key": DxGatewayAttachmentArgs{...} } +type DxGatewayAttachmentMapInput interface { + pulumi.Input + + ToDxGatewayAttachmentMapOutput() DxGatewayAttachmentMapOutput + ToDxGatewayAttachmentMapOutputWithContext(context.Context) DxGatewayAttachmentMapOutput +} + +type DxGatewayAttachmentMap map[string]DxGatewayAttachmentInput + +func (DxGatewayAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DxGatewayAttachment)(nil)).Elem() +} + +func (i DxGatewayAttachmentMap) ToDxGatewayAttachmentMapOutput() DxGatewayAttachmentMapOutput { + return i.ToDxGatewayAttachmentMapOutputWithContext(context.Background()) +} + +func (i DxGatewayAttachmentMap) ToDxGatewayAttachmentMapOutputWithContext(ctx context.Context) DxGatewayAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentMapOutput) +} + +type DxGatewayAttachmentOutput struct{ *pulumi.OutputState } + +func (DxGatewayAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DxGatewayAttachment)(nil)).Elem() +} + +func (o DxGatewayAttachmentOutput) ToDxGatewayAttachmentOutput() DxGatewayAttachmentOutput { + return o +} + +func (o DxGatewayAttachmentOutput) ToDxGatewayAttachmentOutputWithContext(ctx context.Context) DxGatewayAttachmentOutput { + return o +} + +func (o DxGatewayAttachmentOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Policy rule number associated with the attachment. +func (o DxGatewayAttachmentOutput) AttachmentPolicyRuleNumber() pulumi.IntOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.IntOutput { return v.AttachmentPolicyRuleNumber }).(pulumi.IntOutput) +} + +// Type of attachment. +func (o DxGatewayAttachmentOutput) AttachmentType() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.AttachmentType }).(pulumi.StringOutput) +} + +// ARN of the core network for the attachment. +func (o DxGatewayAttachmentOutput) CoreNetworkArn() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.CoreNetworkArn }).(pulumi.StringOutput) +} + +// ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. +func (o DxGatewayAttachmentOutput) CoreNetworkId() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.CoreNetworkId }).(pulumi.StringOutput) +} + +// ARN of the Direct Connect gateway attachment. +func (o DxGatewayAttachmentOutput) DirectConnectGatewayArn() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.DirectConnectGatewayArn }).(pulumi.StringOutput) +} + +// One or more core network edge locations to associate with the Direct Connect gateway attachment. +// +// The following arguments are optional: +func (o DxGatewayAttachmentOutput) EdgeLocations() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringArrayOutput { return v.EdgeLocations }).(pulumi.StringArrayOutput) +} + +// ID of the attachment account owner. +func (o DxGatewayAttachmentOutput) OwnerAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput) +} + +// Name of the segment attachment. +func (o DxGatewayAttachmentOutput) SegmentName() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.SegmentName }).(pulumi.StringOutput) +} + +// State of the attachment. +func (o DxGatewayAttachmentOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o DxGatewayAttachmentOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o DxGatewayAttachmentOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *DxGatewayAttachment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o DxGatewayAttachmentOutput) Timeouts() DxGatewayAttachmentTimeoutsPtrOutput { + return o.ApplyT(func(v *DxGatewayAttachment) DxGatewayAttachmentTimeoutsPtrOutput { return v.Timeouts }).(DxGatewayAttachmentTimeoutsPtrOutput) +} + +type DxGatewayAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (DxGatewayAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DxGatewayAttachment)(nil)).Elem() +} + +func (o DxGatewayAttachmentArrayOutput) ToDxGatewayAttachmentArrayOutput() DxGatewayAttachmentArrayOutput { + return o +} + +func (o DxGatewayAttachmentArrayOutput) ToDxGatewayAttachmentArrayOutputWithContext(ctx context.Context) DxGatewayAttachmentArrayOutput { + return o +} + +func (o DxGatewayAttachmentArrayOutput) Index(i pulumi.IntInput) DxGatewayAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DxGatewayAttachment { + return vs[0].([]*DxGatewayAttachment)[vs[1].(int)] + }).(DxGatewayAttachmentOutput) +} + +type DxGatewayAttachmentMapOutput struct{ *pulumi.OutputState } + +func (DxGatewayAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DxGatewayAttachment)(nil)).Elem() +} + +func (o DxGatewayAttachmentMapOutput) ToDxGatewayAttachmentMapOutput() DxGatewayAttachmentMapOutput { + return o +} + +func (o DxGatewayAttachmentMapOutput) ToDxGatewayAttachmentMapOutputWithContext(ctx context.Context) DxGatewayAttachmentMapOutput { + return o +} + +func (o DxGatewayAttachmentMapOutput) MapIndex(k pulumi.StringInput) DxGatewayAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DxGatewayAttachment { + return vs[0].(map[string]*DxGatewayAttachment)[vs[1].(string)] + }).(DxGatewayAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DxGatewayAttachmentInput)(nil)).Elem(), &DxGatewayAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*DxGatewayAttachmentArrayInput)(nil)).Elem(), DxGatewayAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DxGatewayAttachmentMapInput)(nil)).Elem(), DxGatewayAttachmentMap{}) + pulumi.RegisterOutputType(DxGatewayAttachmentOutput{}) + pulumi.RegisterOutputType(DxGatewayAttachmentArrayOutput{}) + pulumi.RegisterOutputType(DxGatewayAttachmentMapOutput{}) +} diff --git a/sdk/go/aws/networkmanager/init.go b/sdk/go/aws/networkmanager/init.go index ab4cd4f75af..c051fe8b594 100644 --- a/sdk/go/aws/networkmanager/init.go +++ b/sdk/go/aws/networkmanager/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &CustomerGatewayAssociation{} case "aws:networkmanager/device:Device": r = &Device{} + case "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment": + r = &DxGatewayAttachment{} case "aws:networkmanager/globalNetwork:GlobalNetwork": r = &GlobalNetwork{} case "aws:networkmanager/link:Link": @@ -110,6 +112,11 @@ func init() { "networkmanager/device", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "networkmanager/dxGatewayAttachment", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "networkmanager/globalNetwork", diff --git a/sdk/go/aws/networkmanager/pulumiTypes.go b/sdk/go/aws/networkmanager/pulumiTypes.go index bd5c616f7d1..d7150d4652d 100644 --- a/sdk/go/aws/networkmanager/pulumiTypes.go +++ b/sdk/go/aws/networkmanager/pulumiTypes.go @@ -1103,6 +1103,181 @@ func (o DeviceLocationPtrOutput) Longitude() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type DxGatewayAttachmentTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// DxGatewayAttachmentTimeoutsInput is an input type that accepts DxGatewayAttachmentTimeoutsArgs and DxGatewayAttachmentTimeoutsOutput values. +// You can construct a concrete instance of `DxGatewayAttachmentTimeoutsInput` via: +// +// DxGatewayAttachmentTimeoutsArgs{...} +type DxGatewayAttachmentTimeoutsInput interface { + pulumi.Input + + ToDxGatewayAttachmentTimeoutsOutput() DxGatewayAttachmentTimeoutsOutput + ToDxGatewayAttachmentTimeoutsOutputWithContext(context.Context) DxGatewayAttachmentTimeoutsOutput +} + +type DxGatewayAttachmentTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (DxGatewayAttachmentTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DxGatewayAttachmentTimeouts)(nil)).Elem() +} + +func (i DxGatewayAttachmentTimeoutsArgs) ToDxGatewayAttachmentTimeoutsOutput() DxGatewayAttachmentTimeoutsOutput { + return i.ToDxGatewayAttachmentTimeoutsOutputWithContext(context.Background()) +} + +func (i DxGatewayAttachmentTimeoutsArgs) ToDxGatewayAttachmentTimeoutsOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentTimeoutsOutput) +} + +func (i DxGatewayAttachmentTimeoutsArgs) ToDxGatewayAttachmentTimeoutsPtrOutput() DxGatewayAttachmentTimeoutsPtrOutput { + return i.ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i DxGatewayAttachmentTimeoutsArgs) ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentTimeoutsOutput).ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(ctx) +} + +// DxGatewayAttachmentTimeoutsPtrInput is an input type that accepts DxGatewayAttachmentTimeoutsArgs, DxGatewayAttachmentTimeoutsPtr and DxGatewayAttachmentTimeoutsPtrOutput values. +// You can construct a concrete instance of `DxGatewayAttachmentTimeoutsPtrInput` via: +// +// DxGatewayAttachmentTimeoutsArgs{...} +// +// or: +// +// nil +type DxGatewayAttachmentTimeoutsPtrInput interface { + pulumi.Input + + ToDxGatewayAttachmentTimeoutsPtrOutput() DxGatewayAttachmentTimeoutsPtrOutput + ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(context.Context) DxGatewayAttachmentTimeoutsPtrOutput +} + +type dxGatewayAttachmentTimeoutsPtrType DxGatewayAttachmentTimeoutsArgs + +func DxGatewayAttachmentTimeoutsPtr(v *DxGatewayAttachmentTimeoutsArgs) DxGatewayAttachmentTimeoutsPtrInput { + return (*dxGatewayAttachmentTimeoutsPtrType)(v) +} + +func (*dxGatewayAttachmentTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DxGatewayAttachmentTimeouts)(nil)).Elem() +} + +func (i *dxGatewayAttachmentTimeoutsPtrType) ToDxGatewayAttachmentTimeoutsPtrOutput() DxGatewayAttachmentTimeoutsPtrOutput { + return i.ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *dxGatewayAttachmentTimeoutsPtrType) ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DxGatewayAttachmentTimeoutsPtrOutput) +} + +type DxGatewayAttachmentTimeoutsOutput struct{ *pulumi.OutputState } + +func (DxGatewayAttachmentTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DxGatewayAttachmentTimeouts)(nil)).Elem() +} + +func (o DxGatewayAttachmentTimeoutsOutput) ToDxGatewayAttachmentTimeoutsOutput() DxGatewayAttachmentTimeoutsOutput { + return o +} + +func (o DxGatewayAttachmentTimeoutsOutput) ToDxGatewayAttachmentTimeoutsOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsOutput { + return o +} + +func (o DxGatewayAttachmentTimeoutsOutput) ToDxGatewayAttachmentTimeoutsPtrOutput() DxGatewayAttachmentTimeoutsPtrOutput { + return o.ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o DxGatewayAttachmentTimeoutsOutput) ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DxGatewayAttachmentTimeouts) *DxGatewayAttachmentTimeouts { + return &v + }).(DxGatewayAttachmentTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o DxGatewayAttachmentTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v DxGatewayAttachmentTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o DxGatewayAttachmentTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v DxGatewayAttachmentTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o DxGatewayAttachmentTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v DxGatewayAttachmentTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type DxGatewayAttachmentTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (DxGatewayAttachmentTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DxGatewayAttachmentTimeouts)(nil)).Elem() +} + +func (o DxGatewayAttachmentTimeoutsPtrOutput) ToDxGatewayAttachmentTimeoutsPtrOutput() DxGatewayAttachmentTimeoutsPtrOutput { + return o +} + +func (o DxGatewayAttachmentTimeoutsPtrOutput) ToDxGatewayAttachmentTimeoutsPtrOutputWithContext(ctx context.Context) DxGatewayAttachmentTimeoutsPtrOutput { + return o +} + +func (o DxGatewayAttachmentTimeoutsPtrOutput) Elem() DxGatewayAttachmentTimeoutsOutput { + return o.ApplyT(func(v *DxGatewayAttachmentTimeouts) DxGatewayAttachmentTimeouts { + if v != nil { + return *v + } + var ret DxGatewayAttachmentTimeouts + return ret + }).(DxGatewayAttachmentTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o DxGatewayAttachmentTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DxGatewayAttachmentTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o DxGatewayAttachmentTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DxGatewayAttachmentTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o DxGatewayAttachmentTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DxGatewayAttachmentTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type LinkBandwidth struct { // Download speed in Mbps. DownloadSpeed *int `pulumi:"downloadSpeed"` @@ -3514,6 +3689,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DeviceAwsLocationPtrInput)(nil)).Elem(), DeviceAwsLocationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeviceLocationInput)(nil)).Elem(), DeviceLocationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeviceLocationPtrInput)(nil)).Elem(), DeviceLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DxGatewayAttachmentTimeoutsInput)(nil)).Elem(), DxGatewayAttachmentTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DxGatewayAttachmentTimeoutsPtrInput)(nil)).Elem(), DxGatewayAttachmentTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LinkBandwidthInput)(nil)).Elem(), LinkBandwidthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LinkBandwidthPtrInput)(nil)).Elem(), LinkBandwidthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SiteLocationInput)(nil)).Elem(), SiteLocationArgs{}) @@ -3565,6 +3742,8 @@ func init() { pulumi.RegisterOutputType(DeviceAwsLocationPtrOutput{}) pulumi.RegisterOutputType(DeviceLocationOutput{}) pulumi.RegisterOutputType(DeviceLocationPtrOutput{}) + pulumi.RegisterOutputType(DxGatewayAttachmentTimeoutsOutput{}) + pulumi.RegisterOutputType(DxGatewayAttachmentTimeoutsPtrOutput{}) pulumi.RegisterOutputType(LinkBandwidthOutput{}) pulumi.RegisterOutputType(LinkBandwidthPtrOutput{}) pulumi.RegisterOutputType(SiteLocationOutput{}) diff --git a/sdk/go/aws/pulumiTypes.go b/sdk/go/aws/pulumiTypes.go index 786be9d41d9..64e842e2a9d 100644 --- a/sdk/go/aws/pulumiTypes.go +++ b/sdk/go/aws/pulumiTypes.go @@ -1058,6 +1058,8 @@ type ProviderEndpoint struct { // Use this to override the default service endpoint URL Memorydb *string `pulumi:"memorydb"` // Use this to override the default service endpoint URL + Mgn *string `pulumi:"mgn"` + // Use this to override the default service endpoint URL Mq *string `pulumi:"mq"` // Use this to override the default service endpoint URL Msk *string `pulumi:"msk"` @@ -1244,6 +1246,8 @@ type ProviderEndpoint struct { // Use this to override the default service endpoint URL Timestreaminfluxdb *string `pulumi:"timestreaminfluxdb"` // Use this to override the default service endpoint URL + Timestreamquery *string `pulumi:"timestreamquery"` + // Use this to override the default service endpoint URL Timestreamwrite *string `pulumi:"timestreamwrite"` // Use this to override the default service endpoint URL Transcribe *string `pulumi:"transcribe"` @@ -1660,6 +1664,8 @@ type ProviderEndpointArgs struct { // Use this to override the default service endpoint URL Memorydb pulumi.StringPtrInput `pulumi:"memorydb"` // Use this to override the default service endpoint URL + Mgn pulumi.StringPtrInput `pulumi:"mgn"` + // Use this to override the default service endpoint URL Mq pulumi.StringPtrInput `pulumi:"mq"` // Use this to override the default service endpoint URL Msk pulumi.StringPtrInput `pulumi:"msk"` @@ -1846,6 +1852,8 @@ type ProviderEndpointArgs struct { // Use this to override the default service endpoint URL Timestreaminfluxdb pulumi.StringPtrInput `pulumi:"timestreaminfluxdb"` // Use this to override the default service endpoint URL + Timestreamquery pulumi.StringPtrInput `pulumi:"timestreamquery"` + // Use this to override the default service endpoint URL Timestreamwrite pulumi.StringPtrInput `pulumi:"timestreamwrite"` // Use this to override the default service endpoint URL Transcribe pulumi.StringPtrInput `pulumi:"transcribe"` @@ -2861,6 +2869,11 @@ func (o ProviderEndpointOutput) Memorydb() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Memorydb }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o ProviderEndpointOutput) Mgn() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.Mgn }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o ProviderEndpointOutput) Mq() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Mq }).(pulumi.StringPtrOutput) @@ -3326,6 +3339,11 @@ func (o ProviderEndpointOutput) Timestreaminfluxdb() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Timestreaminfluxdb }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o ProviderEndpointOutput) Timestreamquery() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.Timestreamquery }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o ProviderEndpointOutput) Timestreamwrite() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Timestreamwrite }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/rds/cluster.go b/sdk/go/aws/rds/cluster.go index 7e49109fb81..0ed0916f857 100644 --- a/sdk/go/aws/rds/cluster.go +++ b/sdk/go/aws/rds/cluster.go @@ -464,11 +464,11 @@ type Cluster struct { MasterUsername pulumi.StringOutput `pulumi:"masterUsername"` // Network type of the cluster. Valid values: `IPV4`, `DUAL`. NetworkType pulumi.StringOutput `pulumi:"networkType"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + // Enables Performance Insights for the RDS Cluster PerformanceInsightsEnabled pulumi.BoolPtrOutput `pulumi:"performanceInsightsEnabled"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + // Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). PerformanceInsightsKmsKeyId pulumi.StringOutput `pulumi:"performanceInsightsKmsKeyId"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + // Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. PerformanceInsightsRetentionPeriod pulumi.IntOutput `pulumi:"performanceInsightsRetentionPeriod"` // Port on which the DB accepts connections. Port pulumi.IntOutput `pulumi:"port"` @@ -648,11 +648,11 @@ type clusterState struct { MasterUsername *string `pulumi:"masterUsername"` // Network type of the cluster. Valid values: `IPV4`, `DUAL`. NetworkType *string `pulumi:"networkType"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + // Enables Performance Insights for the RDS Cluster PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + // Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + // Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"` // Port on which the DB accepts connections. Port *int `pulumi:"port"` @@ -793,11 +793,11 @@ type ClusterState struct { MasterUsername pulumi.StringPtrInput // Network type of the cluster. Valid values: `IPV4`, `DUAL`. NetworkType pulumi.StringPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + // Enables Performance Insights for the RDS Cluster PerformanceInsightsEnabled pulumi.BoolPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + // Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). PerformanceInsightsKmsKeyId pulumi.StringPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + // Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. PerformanceInsightsRetentionPeriod pulumi.IntPtrInput // Port on which the DB accepts connections. Port pulumi.IntPtrInput @@ -928,11 +928,11 @@ type clusterArgs struct { MasterUsername *string `pulumi:"masterUsername"` // Network type of the cluster. Valid values: `IPV4`, `DUAL`. NetworkType *string `pulumi:"networkType"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + // Enables Performance Insights for the RDS Cluster PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + // Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"` - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + // Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"` // Port on which the DB accepts connections. Port *int `pulumi:"port"` @@ -1053,11 +1053,11 @@ type ClusterArgs struct { MasterUsername pulumi.StringPtrInput // Network type of the cluster. Valid values: `IPV4`, `DUAL`. NetworkType pulumi.StringPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + // Enables Performance Insights for the RDS Cluster PerformanceInsightsEnabled pulumi.BoolPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + // Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). PerformanceInsightsKmsKeyId pulumi.StringPtrInput - // Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + // Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. PerformanceInsightsRetentionPeriod pulumi.IntPtrInput // Port on which the DB accepts connections. Port pulumi.IntPtrInput @@ -1418,17 +1418,17 @@ func (o ClusterOutput) NetworkType() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput) } -// Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster +// Enables Performance Insights for the RDS Cluster func (o ClusterOutput) PerformanceInsightsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.PerformanceInsightsEnabled }).(pulumi.BoolPtrOutput) } -// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). +// Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). func (o ClusterOutput) PerformanceInsightsKmsKeyId() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PerformanceInsightsKmsKeyId }).(pulumi.StringOutput) } -// Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. +// Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. func (o ClusterOutput) PerformanceInsightsRetentionPeriod() pulumi.IntOutput { return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.PerformanceInsightsRetentionPeriod }).(pulumi.IntOutput) } diff --git a/sdk/go/aws/rds/clusterSnapshotCopy.go b/sdk/go/aws/rds/clusterSnapshotCopy.go new file mode 100644 index 00000000000..3a56efe12fb --- /dev/null +++ b/sdk/go/aws/rds/clusterSnapshotCopy.go @@ -0,0 +1,515 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package rds + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `rds.SnapshotCopy` resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := rds.NewCluster(ctx, "example", &rds.ClusterArgs{ +// ClusterIdentifier: pulumi.String("aurora-cluster-demo"), +// DatabaseName: pulumi.String("test"), +// Engine: pulumi.String(rds.EngineTypeAuroraMysql), +// MasterUsername: pulumi.String("tfacctest"), +// MasterPassword: pulumi.String("avoid-plaintext-passwords"), +// SkipFinalSnapshot: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// exampleClusterSnapshot, err := rds.NewClusterSnapshot(ctx, "example", &rds.ClusterSnapshotArgs{ +// DbClusterIdentifier: example.ClusterIdentifier, +// DbClusterSnapshotIdentifier: pulumi.String("example"), +// }) +// if err != nil { +// return err +// } +// _, err = rds.NewClusterSnapshotCopy(ctx, "example", &rds.ClusterSnapshotCopyArgs{ +// SourceDbClusterSnapshotIdentifier: exampleClusterSnapshot.DbClusterSnapshotArn, +// TargetDbClusterSnapshotIdentifier: pulumi.String("example-copy"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: +// +// ```sh +// $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot +// ``` +type ClusterSnapshotCopy struct { + pulumi.CustomResourceState + + // Specifies the allocated storage size in gigabytes (GB). + AllocatedStorage pulumi.IntOutput `pulumi:"allocatedStorage"` + // Whether to copy existing tags. Defaults to `false`. + CopyTags pulumi.BoolPtrOutput `pulumi:"copyTags"` + // The Amazon Resource Name (ARN) for the DB cluster snapshot. + DbClusterSnapshotArn pulumi.StringOutput `pulumi:"dbClusterSnapshotArn"` + // The Destination region to place snapshot copy. + DestinationRegion pulumi.StringPtrOutput `pulumi:"destinationRegion"` + // Specifies the name of the database engine. + Engine pulumi.StringOutput `pulumi:"engine"` + // Specifies the version of the database engine. + EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // KMS key ID. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // License model information for the restored DB instance. + LicenseModel pulumi.StringOutput `pulumi:"licenseModel"` + // URL that contains a Signature Version 4 signed request. + PresignedUrl pulumi.StringPtrOutput `pulumi:"presignedUrl"` + // List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + SharedAccounts pulumi.StringArrayOutput `pulumi:"sharedAccounts"` + SnapshotType pulumi.StringOutput `pulumi:"snapshotType"` + // Identifier of the source snapshot. + SourceDbClusterSnapshotIdentifier pulumi.StringOutput `pulumi:"sourceDbClusterSnapshotIdentifier"` + // Specifies whether the DB cluster snapshot is encrypted. + StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"` + // Specifies the storage type associated with DB cluster snapshot. + StorageType pulumi.StringOutput `pulumi:"storageType"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Identifier for the snapshot. + // + // The following arguments are optional: + TargetDbClusterSnapshotIdentifier pulumi.StringOutput `pulumi:"targetDbClusterSnapshotIdentifier"` + Timeouts ClusterSnapshotCopyTimeoutsPtrOutput `pulumi:"timeouts"` + // Provides the VPC ID associated with the DB cluster snapshot. + VpcId pulumi.StringOutput `pulumi:"vpcId"` +} + +// NewClusterSnapshotCopy registers a new resource with the given unique name, arguments, and options. +func NewClusterSnapshotCopy(ctx *pulumi.Context, + name string, args *ClusterSnapshotCopyArgs, opts ...pulumi.ResourceOption) (*ClusterSnapshotCopy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SourceDbClusterSnapshotIdentifier == nil { + return nil, errors.New("invalid value for required argument 'SourceDbClusterSnapshotIdentifier'") + } + if args.TargetDbClusterSnapshotIdentifier == nil { + return nil, errors.New("invalid value for required argument 'TargetDbClusterSnapshotIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ClusterSnapshotCopy + err := ctx.RegisterResource("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetClusterSnapshotCopy gets an existing ClusterSnapshotCopy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetClusterSnapshotCopy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ClusterSnapshotCopyState, opts ...pulumi.ResourceOption) (*ClusterSnapshotCopy, error) { + var resource ClusterSnapshotCopy + err := ctx.ReadResource("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ClusterSnapshotCopy resources. +type clusterSnapshotCopyState struct { + // Specifies the allocated storage size in gigabytes (GB). + AllocatedStorage *int `pulumi:"allocatedStorage"` + // Whether to copy existing tags. Defaults to `false`. + CopyTags *bool `pulumi:"copyTags"` + // The Amazon Resource Name (ARN) for the DB cluster snapshot. + DbClusterSnapshotArn *string `pulumi:"dbClusterSnapshotArn"` + // The Destination region to place snapshot copy. + DestinationRegion *string `pulumi:"destinationRegion"` + // Specifies the name of the database engine. + Engine *string `pulumi:"engine"` + // Specifies the version of the database engine. + EngineVersion *string `pulumi:"engineVersion"` + // KMS key ID. + KmsKeyId *string `pulumi:"kmsKeyId"` + // License model information for the restored DB instance. + LicenseModel *string `pulumi:"licenseModel"` + // URL that contains a Signature Version 4 signed request. + PresignedUrl *string `pulumi:"presignedUrl"` + // List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + SharedAccounts []string `pulumi:"sharedAccounts"` + SnapshotType *string `pulumi:"snapshotType"` + // Identifier of the source snapshot. + SourceDbClusterSnapshotIdentifier *string `pulumi:"sourceDbClusterSnapshotIdentifier"` + // Specifies whether the DB cluster snapshot is encrypted. + StorageEncrypted *bool `pulumi:"storageEncrypted"` + // Specifies the storage type associated with DB cluster snapshot. + StorageType *string `pulumi:"storageType"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Identifier for the snapshot. + // + // The following arguments are optional: + TargetDbClusterSnapshotIdentifier *string `pulumi:"targetDbClusterSnapshotIdentifier"` + Timeouts *ClusterSnapshotCopyTimeouts `pulumi:"timeouts"` + // Provides the VPC ID associated with the DB cluster snapshot. + VpcId *string `pulumi:"vpcId"` +} + +type ClusterSnapshotCopyState struct { + // Specifies the allocated storage size in gigabytes (GB). + AllocatedStorage pulumi.IntPtrInput + // Whether to copy existing tags. Defaults to `false`. + CopyTags pulumi.BoolPtrInput + // The Amazon Resource Name (ARN) for the DB cluster snapshot. + DbClusterSnapshotArn pulumi.StringPtrInput + // The Destination region to place snapshot copy. + DestinationRegion pulumi.StringPtrInput + // Specifies the name of the database engine. + Engine pulumi.StringPtrInput + // Specifies the version of the database engine. + EngineVersion pulumi.StringPtrInput + // KMS key ID. + KmsKeyId pulumi.StringPtrInput + // License model information for the restored DB instance. + LicenseModel pulumi.StringPtrInput + // URL that contains a Signature Version 4 signed request. + PresignedUrl pulumi.StringPtrInput + // List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + SharedAccounts pulumi.StringArrayInput + SnapshotType pulumi.StringPtrInput + // Identifier of the source snapshot. + SourceDbClusterSnapshotIdentifier pulumi.StringPtrInput + // Specifies whether the DB cluster snapshot is encrypted. + StorageEncrypted pulumi.BoolPtrInput + // Specifies the storage type associated with DB cluster snapshot. + StorageType pulumi.StringPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Identifier for the snapshot. + // + // The following arguments are optional: + TargetDbClusterSnapshotIdentifier pulumi.StringPtrInput + Timeouts ClusterSnapshotCopyTimeoutsPtrInput + // Provides the VPC ID associated with the DB cluster snapshot. + VpcId pulumi.StringPtrInput +} + +func (ClusterSnapshotCopyState) ElementType() reflect.Type { + return reflect.TypeOf((*clusterSnapshotCopyState)(nil)).Elem() +} + +type clusterSnapshotCopyArgs struct { + // Whether to copy existing tags. Defaults to `false`. + CopyTags *bool `pulumi:"copyTags"` + // The Destination region to place snapshot copy. + DestinationRegion *string `pulumi:"destinationRegion"` + // KMS key ID. + KmsKeyId *string `pulumi:"kmsKeyId"` + // URL that contains a Signature Version 4 signed request. + PresignedUrl *string `pulumi:"presignedUrl"` + // List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + SharedAccounts []string `pulumi:"sharedAccounts"` + // Identifier of the source snapshot. + SourceDbClusterSnapshotIdentifier string `pulumi:"sourceDbClusterSnapshotIdentifier"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Identifier for the snapshot. + // + // The following arguments are optional: + TargetDbClusterSnapshotIdentifier string `pulumi:"targetDbClusterSnapshotIdentifier"` + Timeouts *ClusterSnapshotCopyTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a ClusterSnapshotCopy resource. +type ClusterSnapshotCopyArgs struct { + // Whether to copy existing tags. Defaults to `false`. + CopyTags pulumi.BoolPtrInput + // The Destination region to place snapshot copy. + DestinationRegion pulumi.StringPtrInput + // KMS key ID. + KmsKeyId pulumi.StringPtrInput + // URL that contains a Signature Version 4 signed request. + PresignedUrl pulumi.StringPtrInput + // List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + SharedAccounts pulumi.StringArrayInput + // Identifier of the source snapshot. + SourceDbClusterSnapshotIdentifier pulumi.StringInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Identifier for the snapshot. + // + // The following arguments are optional: + TargetDbClusterSnapshotIdentifier pulumi.StringInput + Timeouts ClusterSnapshotCopyTimeoutsPtrInput +} + +func (ClusterSnapshotCopyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*clusterSnapshotCopyArgs)(nil)).Elem() +} + +type ClusterSnapshotCopyInput interface { + pulumi.Input + + ToClusterSnapshotCopyOutput() ClusterSnapshotCopyOutput + ToClusterSnapshotCopyOutputWithContext(ctx context.Context) ClusterSnapshotCopyOutput +} + +func (*ClusterSnapshotCopy) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterSnapshotCopy)(nil)).Elem() +} + +func (i *ClusterSnapshotCopy) ToClusterSnapshotCopyOutput() ClusterSnapshotCopyOutput { + return i.ToClusterSnapshotCopyOutputWithContext(context.Background()) +} + +func (i *ClusterSnapshotCopy) ToClusterSnapshotCopyOutputWithContext(ctx context.Context) ClusterSnapshotCopyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyOutput) +} + +// ClusterSnapshotCopyArrayInput is an input type that accepts ClusterSnapshotCopyArray and ClusterSnapshotCopyArrayOutput values. +// You can construct a concrete instance of `ClusterSnapshotCopyArrayInput` via: +// +// ClusterSnapshotCopyArray{ ClusterSnapshotCopyArgs{...} } +type ClusterSnapshotCopyArrayInput interface { + pulumi.Input + + ToClusterSnapshotCopyArrayOutput() ClusterSnapshotCopyArrayOutput + ToClusterSnapshotCopyArrayOutputWithContext(context.Context) ClusterSnapshotCopyArrayOutput +} + +type ClusterSnapshotCopyArray []ClusterSnapshotCopyInput + +func (ClusterSnapshotCopyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ClusterSnapshotCopy)(nil)).Elem() +} + +func (i ClusterSnapshotCopyArray) ToClusterSnapshotCopyArrayOutput() ClusterSnapshotCopyArrayOutput { + return i.ToClusterSnapshotCopyArrayOutputWithContext(context.Background()) +} + +func (i ClusterSnapshotCopyArray) ToClusterSnapshotCopyArrayOutputWithContext(ctx context.Context) ClusterSnapshotCopyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyArrayOutput) +} + +// ClusterSnapshotCopyMapInput is an input type that accepts ClusterSnapshotCopyMap and ClusterSnapshotCopyMapOutput values. +// You can construct a concrete instance of `ClusterSnapshotCopyMapInput` via: +// +// ClusterSnapshotCopyMap{ "key": ClusterSnapshotCopyArgs{...} } +type ClusterSnapshotCopyMapInput interface { + pulumi.Input + + ToClusterSnapshotCopyMapOutput() ClusterSnapshotCopyMapOutput + ToClusterSnapshotCopyMapOutputWithContext(context.Context) ClusterSnapshotCopyMapOutput +} + +type ClusterSnapshotCopyMap map[string]ClusterSnapshotCopyInput + +func (ClusterSnapshotCopyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ClusterSnapshotCopy)(nil)).Elem() +} + +func (i ClusterSnapshotCopyMap) ToClusterSnapshotCopyMapOutput() ClusterSnapshotCopyMapOutput { + return i.ToClusterSnapshotCopyMapOutputWithContext(context.Background()) +} + +func (i ClusterSnapshotCopyMap) ToClusterSnapshotCopyMapOutputWithContext(ctx context.Context) ClusterSnapshotCopyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyMapOutput) +} + +type ClusterSnapshotCopyOutput struct{ *pulumi.OutputState } + +func (ClusterSnapshotCopyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterSnapshotCopy)(nil)).Elem() +} + +func (o ClusterSnapshotCopyOutput) ToClusterSnapshotCopyOutput() ClusterSnapshotCopyOutput { + return o +} + +func (o ClusterSnapshotCopyOutput) ToClusterSnapshotCopyOutputWithContext(ctx context.Context) ClusterSnapshotCopyOutput { + return o +} + +// Specifies the allocated storage size in gigabytes (GB). +func (o ClusterSnapshotCopyOutput) AllocatedStorage() pulumi.IntOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.IntOutput { return v.AllocatedStorage }).(pulumi.IntOutput) +} + +// Whether to copy existing tags. Defaults to `false`. +func (o ClusterSnapshotCopyOutput) CopyTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.BoolPtrOutput { return v.CopyTags }).(pulumi.BoolPtrOutput) +} + +// The Amazon Resource Name (ARN) for the DB cluster snapshot. +func (o ClusterSnapshotCopyOutput) DbClusterSnapshotArn() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.DbClusterSnapshotArn }).(pulumi.StringOutput) +} + +// The Destination region to place snapshot copy. +func (o ClusterSnapshotCopyOutput) DestinationRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringPtrOutput { return v.DestinationRegion }).(pulumi.StringPtrOutput) +} + +// Specifies the name of the database engine. +func (o ClusterSnapshotCopyOutput) Engine() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) +} + +// Specifies the version of the database engine. +func (o ClusterSnapshotCopyOutput) EngineVersion() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) +} + +// KMS key ID. +func (o ClusterSnapshotCopyOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// License model information for the restored DB instance. +func (o ClusterSnapshotCopyOutput) LicenseModel() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.LicenseModel }).(pulumi.StringOutput) +} + +// URL that contains a Signature Version 4 signed request. +func (o ClusterSnapshotCopyOutput) PresignedUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringPtrOutput { return v.PresignedUrl }).(pulumi.StringPtrOutput) +} + +// List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. +func (o ClusterSnapshotCopyOutput) SharedAccounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringArrayOutput { return v.SharedAccounts }).(pulumi.StringArrayOutput) +} + +func (o ClusterSnapshotCopyOutput) SnapshotType() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.SnapshotType }).(pulumi.StringOutput) +} + +// Identifier of the source snapshot. +func (o ClusterSnapshotCopyOutput) SourceDbClusterSnapshotIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.SourceDbClusterSnapshotIdentifier }).(pulumi.StringOutput) +} + +// Specifies whether the DB cluster snapshot is encrypted. +func (o ClusterSnapshotCopyOutput) StorageEncrypted() pulumi.BoolOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput) +} + +// Specifies the storage type associated with DB cluster snapshot. +func (o ClusterSnapshotCopyOutput) StorageType() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ClusterSnapshotCopyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ClusterSnapshotCopyOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Identifier for the snapshot. +// +// The following arguments are optional: +func (o ClusterSnapshotCopyOutput) TargetDbClusterSnapshotIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.TargetDbClusterSnapshotIdentifier }).(pulumi.StringOutput) +} + +func (o ClusterSnapshotCopyOutput) Timeouts() ClusterSnapshotCopyTimeoutsPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) ClusterSnapshotCopyTimeoutsPtrOutput { return v.Timeouts }).(ClusterSnapshotCopyTimeoutsPtrOutput) +} + +// Provides the VPC ID associated with the DB cluster snapshot. +func (o ClusterSnapshotCopyOutput) VpcId() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterSnapshotCopy) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput) +} + +type ClusterSnapshotCopyArrayOutput struct{ *pulumi.OutputState } + +func (ClusterSnapshotCopyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ClusterSnapshotCopy)(nil)).Elem() +} + +func (o ClusterSnapshotCopyArrayOutput) ToClusterSnapshotCopyArrayOutput() ClusterSnapshotCopyArrayOutput { + return o +} + +func (o ClusterSnapshotCopyArrayOutput) ToClusterSnapshotCopyArrayOutputWithContext(ctx context.Context) ClusterSnapshotCopyArrayOutput { + return o +} + +func (o ClusterSnapshotCopyArrayOutput) Index(i pulumi.IntInput) ClusterSnapshotCopyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterSnapshotCopy { + return vs[0].([]*ClusterSnapshotCopy)[vs[1].(int)] + }).(ClusterSnapshotCopyOutput) +} + +type ClusterSnapshotCopyMapOutput struct{ *pulumi.OutputState } + +func (ClusterSnapshotCopyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ClusterSnapshotCopy)(nil)).Elem() +} + +func (o ClusterSnapshotCopyMapOutput) ToClusterSnapshotCopyMapOutput() ClusterSnapshotCopyMapOutput { + return o +} + +func (o ClusterSnapshotCopyMapOutput) ToClusterSnapshotCopyMapOutputWithContext(ctx context.Context) ClusterSnapshotCopyMapOutput { + return o +} + +func (o ClusterSnapshotCopyMapOutput) MapIndex(k pulumi.StringInput) ClusterSnapshotCopyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterSnapshotCopy { + return vs[0].(map[string]*ClusterSnapshotCopy)[vs[1].(string)] + }).(ClusterSnapshotCopyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotCopyInput)(nil)).Elem(), &ClusterSnapshotCopy{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotCopyArrayInput)(nil)).Elem(), ClusterSnapshotCopyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotCopyMapInput)(nil)).Elem(), ClusterSnapshotCopyMap{}) + pulumi.RegisterOutputType(ClusterSnapshotCopyOutput{}) + pulumi.RegisterOutputType(ClusterSnapshotCopyArrayOutput{}) + pulumi.RegisterOutputType(ClusterSnapshotCopyMapOutput{}) +} diff --git a/sdk/go/aws/rds/init.go b/sdk/go/aws/rds/init.go index 88f8cf8126b..c4189a25d26 100644 --- a/sdk/go/aws/rds/init.go +++ b/sdk/go/aws/rds/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ClusterRoleAssociation{} case "aws:rds/clusterSnapshot:ClusterSnapshot": r = &ClusterSnapshot{} + case "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy": + r = &ClusterSnapshotCopy{} case "aws:rds/customDbEngineVersion:CustomDbEngineVersion": r = &CustomDbEngineVersion{} case "aws:rds/eventSubscription:EventSubscription": @@ -128,6 +130,11 @@ func init() { "rds/clusterSnapshot", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "rds/clusterSnapshotCopy", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "rds/customDbEngineVersion", diff --git a/sdk/go/aws/rds/pulumiTypes.go b/sdk/go/aws/rds/pulumiTypes.go index cf4b067b938..dbb7083f7e4 100644 --- a/sdk/go/aws/rds/pulumiTypes.go +++ b/sdk/go/aws/rds/pulumiTypes.go @@ -1094,6 +1094,143 @@ func (o ClusterServerlessv2ScalingConfigurationPtrOutput) SecondsUntilAutoPause( }).(pulumi.IntPtrOutput) } +type ClusterSnapshotCopyTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` +} + +// ClusterSnapshotCopyTimeoutsInput is an input type that accepts ClusterSnapshotCopyTimeoutsArgs and ClusterSnapshotCopyTimeoutsOutput values. +// You can construct a concrete instance of `ClusterSnapshotCopyTimeoutsInput` via: +// +// ClusterSnapshotCopyTimeoutsArgs{...} +type ClusterSnapshotCopyTimeoutsInput interface { + pulumi.Input + + ToClusterSnapshotCopyTimeoutsOutput() ClusterSnapshotCopyTimeoutsOutput + ToClusterSnapshotCopyTimeoutsOutputWithContext(context.Context) ClusterSnapshotCopyTimeoutsOutput +} + +type ClusterSnapshotCopyTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` +} + +func (ClusterSnapshotCopyTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterSnapshotCopyTimeouts)(nil)).Elem() +} + +func (i ClusterSnapshotCopyTimeoutsArgs) ToClusterSnapshotCopyTimeoutsOutput() ClusterSnapshotCopyTimeoutsOutput { + return i.ToClusterSnapshotCopyTimeoutsOutputWithContext(context.Background()) +} + +func (i ClusterSnapshotCopyTimeoutsArgs) ToClusterSnapshotCopyTimeoutsOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyTimeoutsOutput) +} + +func (i ClusterSnapshotCopyTimeoutsArgs) ToClusterSnapshotCopyTimeoutsPtrOutput() ClusterSnapshotCopyTimeoutsPtrOutput { + return i.ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ClusterSnapshotCopyTimeoutsArgs) ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyTimeoutsOutput).ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(ctx) +} + +// ClusterSnapshotCopyTimeoutsPtrInput is an input type that accepts ClusterSnapshotCopyTimeoutsArgs, ClusterSnapshotCopyTimeoutsPtr and ClusterSnapshotCopyTimeoutsPtrOutput values. +// You can construct a concrete instance of `ClusterSnapshotCopyTimeoutsPtrInput` via: +// +// ClusterSnapshotCopyTimeoutsArgs{...} +// +// or: +// +// nil +type ClusterSnapshotCopyTimeoutsPtrInput interface { + pulumi.Input + + ToClusterSnapshotCopyTimeoutsPtrOutput() ClusterSnapshotCopyTimeoutsPtrOutput + ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(context.Context) ClusterSnapshotCopyTimeoutsPtrOutput +} + +type clusterSnapshotCopyTimeoutsPtrType ClusterSnapshotCopyTimeoutsArgs + +func ClusterSnapshotCopyTimeoutsPtr(v *ClusterSnapshotCopyTimeoutsArgs) ClusterSnapshotCopyTimeoutsPtrInput { + return (*clusterSnapshotCopyTimeoutsPtrType)(v) +} + +func (*clusterSnapshotCopyTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterSnapshotCopyTimeouts)(nil)).Elem() +} + +func (i *clusterSnapshotCopyTimeoutsPtrType) ToClusterSnapshotCopyTimeoutsPtrOutput() ClusterSnapshotCopyTimeoutsPtrOutput { + return i.ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *clusterSnapshotCopyTimeoutsPtrType) ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotCopyTimeoutsPtrOutput) +} + +type ClusterSnapshotCopyTimeoutsOutput struct{ *pulumi.OutputState } + +func (ClusterSnapshotCopyTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterSnapshotCopyTimeouts)(nil)).Elem() +} + +func (o ClusterSnapshotCopyTimeoutsOutput) ToClusterSnapshotCopyTimeoutsOutput() ClusterSnapshotCopyTimeoutsOutput { + return o +} + +func (o ClusterSnapshotCopyTimeoutsOutput) ToClusterSnapshotCopyTimeoutsOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsOutput { + return o +} + +func (o ClusterSnapshotCopyTimeoutsOutput) ToClusterSnapshotCopyTimeoutsPtrOutput() ClusterSnapshotCopyTimeoutsPtrOutput { + return o.ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ClusterSnapshotCopyTimeoutsOutput) ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterSnapshotCopyTimeouts) *ClusterSnapshotCopyTimeouts { + return &v + }).(ClusterSnapshotCopyTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ClusterSnapshotCopyTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterSnapshotCopyTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +type ClusterSnapshotCopyTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ClusterSnapshotCopyTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterSnapshotCopyTimeouts)(nil)).Elem() +} + +func (o ClusterSnapshotCopyTimeoutsPtrOutput) ToClusterSnapshotCopyTimeoutsPtrOutput() ClusterSnapshotCopyTimeoutsPtrOutput { + return o +} + +func (o ClusterSnapshotCopyTimeoutsPtrOutput) ToClusterSnapshotCopyTimeoutsPtrOutputWithContext(ctx context.Context) ClusterSnapshotCopyTimeoutsPtrOutput { + return o +} + +func (o ClusterSnapshotCopyTimeoutsPtrOutput) Elem() ClusterSnapshotCopyTimeoutsOutput { + return o.ApplyT(func(v *ClusterSnapshotCopyTimeouts) ClusterSnapshotCopyTimeouts { + if v != nil { + return *v + } + var ret ClusterSnapshotCopyTimeouts + return ret + }).(ClusterSnapshotCopyTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ClusterSnapshotCopyTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterSnapshotCopyTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + type ExportTaskTimeouts struct { // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Create *string `pulumi:"create"` @@ -4022,6 +4159,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterScalingConfigurationPtrInput)(nil)).Elem(), ClusterScalingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterServerlessv2ScalingConfigurationInput)(nil)).Elem(), ClusterServerlessv2ScalingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterServerlessv2ScalingConfigurationPtrInput)(nil)).Elem(), ClusterServerlessv2ScalingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotCopyTimeoutsInput)(nil)).Elem(), ClusterSnapshotCopyTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotCopyTimeoutsPtrInput)(nil)).Elem(), ClusterSnapshotCopyTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExportTaskTimeoutsInput)(nil)).Elem(), ExportTaskTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExportTaskTimeoutsPtrInput)(nil)).Elem(), ExportTaskTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalClusterGlobalClusterMemberInput)(nil)).Elem(), GlobalClusterGlobalClusterMemberArgs{}) @@ -4076,6 +4215,8 @@ func init() { pulumi.RegisterOutputType(ClusterScalingConfigurationPtrOutput{}) pulumi.RegisterOutputType(ClusterServerlessv2ScalingConfigurationOutput{}) pulumi.RegisterOutputType(ClusterServerlessv2ScalingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ClusterSnapshotCopyTimeoutsOutput{}) + pulumi.RegisterOutputType(ClusterSnapshotCopyTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ExportTaskTimeoutsOutput{}) pulumi.RegisterOutputType(ExportTaskTimeoutsPtrOutput{}) pulumi.RegisterOutputType(GlobalClusterGlobalClusterMemberOutput{}) diff --git a/sdk/go/aws/resourcegroups/resource.go b/sdk/go/aws/resourcegroups/resource.go index 789a5ec5d4a..282a50b69da 100644 --- a/sdk/go/aws/resourcegroups/resource.go +++ b/sdk/go/aws/resourcegroups/resource.go @@ -58,14 +58,20 @@ import ( // } // // ``` +// +// ## Import +// +// Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: +// +// ```sh +// $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example +// ``` type Resource struct { pulumi.CustomResourceState - // The name or the ARN of the resource group to add resources to. - // - // The following arguments are optional: + // Name or ARN of the resource group to add resources to. GroupArn pulumi.StringOutput `pulumi:"groupArn"` - // The ARN of the resource to be added to the group. + // ARN of the resource to be added to the group. ResourceArn pulumi.StringOutput `pulumi:"resourceArn"` // The resource type of a resource, such as `AWS::EC2::Instance`. ResourceType pulumi.StringOutput `pulumi:"resourceType"` @@ -107,22 +113,18 @@ func GetResource(ctx *pulumi.Context, // Input properties used for looking up and filtering Resource resources. type resourceState struct { - // The name or the ARN of the resource group to add resources to. - // - // The following arguments are optional: + // Name or ARN of the resource group to add resources to. GroupArn *string `pulumi:"groupArn"` - // The ARN of the resource to be added to the group. + // ARN of the resource to be added to the group. ResourceArn *string `pulumi:"resourceArn"` // The resource type of a resource, such as `AWS::EC2::Instance`. ResourceType *string `pulumi:"resourceType"` } type ResourceState struct { - // The name or the ARN of the resource group to add resources to. - // - // The following arguments are optional: + // Name or ARN of the resource group to add resources to. GroupArn pulumi.StringPtrInput - // The ARN of the resource to be added to the group. + // ARN of the resource to be added to the group. ResourceArn pulumi.StringPtrInput // The resource type of a resource, such as `AWS::EC2::Instance`. ResourceType pulumi.StringPtrInput @@ -133,21 +135,17 @@ func (ResourceState) ElementType() reflect.Type { } type resourceArgs struct { - // The name or the ARN of the resource group to add resources to. - // - // The following arguments are optional: + // Name or ARN of the resource group to add resources to. GroupArn string `pulumi:"groupArn"` - // The ARN of the resource to be added to the group. + // ARN of the resource to be added to the group. ResourceArn string `pulumi:"resourceArn"` } // The set of arguments for constructing a Resource resource. type ResourceArgs struct { - // The name or the ARN of the resource group to add resources to. - // - // The following arguments are optional: + // Name or ARN of the resource group to add resources to. GroupArn pulumi.StringInput - // The ARN of the resource to be added to the group. + // ARN of the resource to be added to the group. ResourceArn pulumi.StringInput } @@ -238,14 +236,12 @@ func (o ResourceOutput) ToResourceOutputWithContext(ctx context.Context) Resourc return o } -// The name or the ARN of the resource group to add resources to. -// -// The following arguments are optional: +// Name or ARN of the resource group to add resources to. func (o ResourceOutput) GroupArn() pulumi.StringOutput { return o.ApplyT(func(v *Resource) pulumi.StringOutput { return v.GroupArn }).(pulumi.StringOutput) } -// The ARN of the resource to be added to the group. +// ARN of the resource to be added to the group. func (o ResourceOutput) ResourceArn() pulumi.StringOutput { return o.ApplyT(func(v *Resource) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/servicecatalog/getAppregistryAttributeGroupAssociations.go b/sdk/go/aws/servicecatalog/getAppregistryAttributeGroupAssociations.go new file mode 100644 index 00000000000..4f6fcccd71c --- /dev/null +++ b/sdk/go/aws/servicecatalog/getAppregistryAttributeGroupAssociations.go @@ -0,0 +1,124 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package servicecatalog + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := servicecatalog.GetAppregistryAttributeGroupAssociations(ctx, &servicecatalog.GetAppregistryAttributeGroupAssociationsArgs{ +// Id: pulumi.StringRef("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetAppregistryAttributeGroupAssociations(ctx *pulumi.Context, args *GetAppregistryAttributeGroupAssociationsArgs, opts ...pulumi.InvokeOption) (*GetAppregistryAttributeGroupAssociationsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetAppregistryAttributeGroupAssociationsResult + err := ctx.Invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAppregistryAttributeGroupAssociations. +type GetAppregistryAttributeGroupAssociationsArgs struct { + // ID of the application to which attribute groups are associated. + Id *string `pulumi:"id"` + // Name of the application to which attribute groups are associated. + // + // The following arguments are optional: + Name *string `pulumi:"name"` +} + +// A collection of values returned by getAppregistryAttributeGroupAssociations. +type GetAppregistryAttributeGroupAssociationsResult struct { + // Set of attribute group IDs this application is associated with. + AttributeGroupIds []string `pulumi:"attributeGroupIds"` + Id *string `pulumi:"id"` + Name *string `pulumi:"name"` +} + +func GetAppregistryAttributeGroupAssociationsOutput(ctx *pulumi.Context, args GetAppregistryAttributeGroupAssociationsOutputArgs, opts ...pulumi.InvokeOption) GetAppregistryAttributeGroupAssociationsResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (GetAppregistryAttributeGroupAssociationsResultOutput, error) { + args := v.(GetAppregistryAttributeGroupAssociationsArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", args, GetAppregistryAttributeGroupAssociationsResultOutput{}, options).(GetAppregistryAttributeGroupAssociationsResultOutput), nil + }).(GetAppregistryAttributeGroupAssociationsResultOutput) +} + +// A collection of arguments for invoking getAppregistryAttributeGroupAssociations. +type GetAppregistryAttributeGroupAssociationsOutputArgs struct { + // ID of the application to which attribute groups are associated. + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the application to which attribute groups are associated. + // + // The following arguments are optional: + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (GetAppregistryAttributeGroupAssociationsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAppregistryAttributeGroupAssociationsArgs)(nil)).Elem() +} + +// A collection of values returned by getAppregistryAttributeGroupAssociations. +type GetAppregistryAttributeGroupAssociationsResultOutput struct{ *pulumi.OutputState } + +func (GetAppregistryAttributeGroupAssociationsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAppregistryAttributeGroupAssociationsResult)(nil)).Elem() +} + +func (o GetAppregistryAttributeGroupAssociationsResultOutput) ToGetAppregistryAttributeGroupAssociationsResultOutput() GetAppregistryAttributeGroupAssociationsResultOutput { + return o +} + +func (o GetAppregistryAttributeGroupAssociationsResultOutput) ToGetAppregistryAttributeGroupAssociationsResultOutputWithContext(ctx context.Context) GetAppregistryAttributeGroupAssociationsResultOutput { + return o +} + +// Set of attribute group IDs this application is associated with. +func (o GetAppregistryAttributeGroupAssociationsResultOutput) AttributeGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetAppregistryAttributeGroupAssociationsResult) []string { return v.AttributeGroupIds }).(pulumi.StringArrayOutput) +} + +func (o GetAppregistryAttributeGroupAssociationsResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetAppregistryAttributeGroupAssociationsResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +func (o GetAppregistryAttributeGroupAssociationsResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetAppregistryAttributeGroupAssociationsResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetAppregistryAttributeGroupAssociationsResultOutput{}) +} diff --git a/sdk/go/aws/verifiedaccess/pulumiTypes.go b/sdk/go/aws/verifiedaccess/pulumiTypes.go index 37d758c9fab..eafc6d336f0 100644 --- a/sdk/go/aws/verifiedaccess/pulumiTypes.go +++ b/sdk/go/aws/verifiedaccess/pulumiTypes.go @@ -503,6 +503,7 @@ func (o EndpointSseSpecificationPtrOutput) KmsKeyArn() pulumi.StringPtrOutput { } type GroupSseConfiguration struct { + // Boolean flag to indicate that the CMK should be used. CustomerManagedKeyEnabled *bool `pulumi:"customerManagedKeyEnabled"` // ARN of the KMS key to use. KmsKeyArn *string `pulumi:"kmsKeyArn"` @@ -520,6 +521,7 @@ type GroupSseConfigurationInput interface { } type GroupSseConfigurationArgs struct { + // Boolean flag to indicate that the CMK should be used. CustomerManagedKeyEnabled pulumi.BoolPtrInput `pulumi:"customerManagedKeyEnabled"` // ARN of the KMS key to use. KmsKeyArn pulumi.StringPtrInput `pulumi:"kmsKeyArn"` @@ -602,6 +604,7 @@ func (o GroupSseConfigurationOutput) ToGroupSseConfigurationPtrOutputWithContext }).(GroupSseConfigurationPtrOutput) } +// Boolean flag to indicate that the CMK should be used. func (o GroupSseConfigurationOutput) CustomerManagedKeyEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v GroupSseConfiguration) *bool { return v.CustomerManagedKeyEnabled }).(pulumi.BoolPtrOutput) } @@ -635,6 +638,7 @@ func (o GroupSseConfigurationPtrOutput) Elem() GroupSseConfigurationOutput { }).(GroupSseConfigurationOutput) } +// Boolean flag to indicate that the CMK should be used. func (o GroupSseConfigurationPtrOutput) CustomerManagedKeyEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *GroupSseConfiguration) *bool { if v == nil { diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerMutualAuthenticationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerMutualAuthenticationArgs.java index 237f68cd209..3b2c5b99eff 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerMutualAuthenticationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerMutualAuthenticationArgs.java @@ -17,6 +17,21 @@ public final class ListenerMutualAuthenticationArgs extends com.pulumi.resources public static final ListenerMutualAuthenticationArgs Empty = new ListenerMutualAuthenticationArgs(); + /** + * Valid values are `off` and `on`. + * + */ + @Import(name="advertiseTrustStoreCaNames") + private @Nullable Output advertiseTrustStoreCaNames; + + /** + * @return Valid values are `off` and `on`. + * + */ + public Optional> advertiseTrustStoreCaNames() { + return Optional.ofNullable(this.advertiseTrustStoreCaNames); + } + /** * Whether client certificate expiry is ignored. Default is `false`. * @@ -65,6 +80,7 @@ public Optional> trustStoreArn() { private ListenerMutualAuthenticationArgs() {} private ListenerMutualAuthenticationArgs(ListenerMutualAuthenticationArgs $) { + this.advertiseTrustStoreCaNames = $.advertiseTrustStoreCaNames; this.ignoreClientCertificateExpiry = $.ignoreClientCertificateExpiry; this.mode = $.mode; this.trustStoreArn = $.trustStoreArn; @@ -88,6 +104,27 @@ public Builder(ListenerMutualAuthenticationArgs defaults) { $ = new ListenerMutualAuthenticationArgs(Objects.requireNonNull(defaults)); } + /** + * @param advertiseTrustStoreCaNames Valid values are `off` and `on`. + * + * @return builder + * + */ + public Builder advertiseTrustStoreCaNames(@Nullable Output advertiseTrustStoreCaNames) { + $.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames; + return this; + } + + /** + * @param advertiseTrustStoreCaNames Valid values are `off` and `on`. + * + * @return builder + * + */ + public Builder advertiseTrustStoreCaNames(String advertiseTrustStoreCaNames) { + return advertiseTrustStoreCaNames(Output.of(advertiseTrustStoreCaNames)); + } + /** * @param ignoreClientCertificateExpiry Whether client certificate expiry is ignored. Default is `false`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerMutualAuthentication.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerMutualAuthentication.java index d159858d6b6..082bd56eded 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerMutualAuthentication.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/ListenerMutualAuthentication.java @@ -13,6 +13,11 @@ @CustomType public final class ListenerMutualAuthentication { + /** + * @return Valid values are `off` and `on`. + * + */ + private @Nullable String advertiseTrustStoreCaNames; /** * @return Whether client certificate expiry is ignored. Default is `false`. * @@ -30,6 +35,13 @@ public final class ListenerMutualAuthentication { private @Nullable String trustStoreArn; private ListenerMutualAuthentication() {} + /** + * @return Valid values are `off` and `on`. + * + */ + public Optional advertiseTrustStoreCaNames() { + return Optional.ofNullable(this.advertiseTrustStoreCaNames); + } /** * @return Whether client certificate expiry is ignored. Default is `false`. * @@ -61,17 +73,25 @@ public static Builder builder(ListenerMutualAuthentication defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String advertiseTrustStoreCaNames; private @Nullable Boolean ignoreClientCertificateExpiry; private String mode; private @Nullable String trustStoreArn; public Builder() {} public Builder(ListenerMutualAuthentication defaults) { Objects.requireNonNull(defaults); + this.advertiseTrustStoreCaNames = defaults.advertiseTrustStoreCaNames; this.ignoreClientCertificateExpiry = defaults.ignoreClientCertificateExpiry; this.mode = defaults.mode; this.trustStoreArn = defaults.trustStoreArn; } + @CustomType.Setter + public Builder advertiseTrustStoreCaNames(@Nullable String advertiseTrustStoreCaNames) { + + this.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames; + return this; + } @CustomType.Setter public Builder ignoreClientCertificateExpiry(@Nullable Boolean ignoreClientCertificateExpiry) { @@ -94,6 +114,7 @@ public Builder trustStoreArn(@Nullable String trustStoreArn) { } public ListenerMutualAuthentication build() { final var _resultValue = new ListenerMutualAuthentication(); + _resultValue.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames; _resultValue.ignoreClientCertificateExpiry = ignoreClientCertificateExpiry; _resultValue.mode = mode; _resultValue.trustStoreArn = trustStoreArn; diff --git a/sdk/java/src/main/java/com/pulumi/aws/amplify/DomainAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/amplify/DomainAssociation.java index 574ee9078bb..b52f73f2d99 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/amplify/DomainAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/amplify/DomainAssociation.java @@ -130,14 +130,14 @@ public Output arn() { * */ @Export(name="certificateSettings", refs={DomainAssociationCertificateSettings.class}, tree="[0]") - private Output certificateSettings; + private Output certificateSettings; /** * @return The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. * */ - public Output> certificateSettings() { - return Codegen.optional(this.certificateSettings); + public Output certificateSettings() { + return this.certificateSettings; } /** * DNS records for certificate verification in a space-delimited format (`<record> CNAME <target>`). diff --git a/sdk/java/src/main/java/com/pulumi/aws/amplify/inputs/DomainAssociationCertificateSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/amplify/inputs/DomainAssociationCertificateSettingsArgs.java index 41189326f8a..7d2dd1ca304 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/amplify/inputs/DomainAssociationCertificateSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/amplify/inputs/DomainAssociationCertificateSettingsArgs.java @@ -33,6 +33,7 @@ public Optional> certificateVerificationDnsRecord() { /** * The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * */ @Import(name="customCertificateArn") @@ -40,6 +41,7 @@ public Optional> certificateVerificationDnsRecord() { /** * @return The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * */ public Optional> customCertificateArn() { @@ -47,14 +49,16 @@ public Optional> customCertificateArn() { } /** - * The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * */ @Import(name="type", required=true) private Output type; /** - * @return The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * @return The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * */ public Output type() { @@ -110,6 +114,7 @@ public Builder certificateVerificationDnsRecord(String certificateVerificationDn /** * @param customCertificateArn The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * * @return builder * @@ -121,6 +126,7 @@ public Builder customCertificateArn(@Nullable Output customCertificateAr /** * @param customCertificateArn The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * * @return builder * @@ -130,7 +136,8 @@ public Builder customCertificateArn(String customCertificateArn) { } /** - * @param type The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * @param type The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * * @return builder * @@ -141,7 +148,8 @@ public Builder type(Output type) { } /** - * @param type The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * @param type The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/amplify/outputs/DomainAssociationCertificateSettings.java b/sdk/java/src/main/java/com/pulumi/aws/amplify/outputs/DomainAssociationCertificateSettings.java index a07993cbc67..458025a842f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/amplify/outputs/DomainAssociationCertificateSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/amplify/outputs/DomainAssociationCertificateSettings.java @@ -19,11 +19,13 @@ public final class DomainAssociationCertificateSettings { private @Nullable String certificateVerificationDnsRecord; /** * @return The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * */ private @Nullable String customCertificateArn; /** - * @return The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * @return The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * */ private String type; @@ -38,13 +40,15 @@ public Optional certificateVerificationDnsRecord() { } /** * @return The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. * */ public Optional customCertificateArn() { return Optional.ofNullable(this.customCertificateArn); } /** - * @return The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * @return The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. * */ public String type() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociation.java new file mode 100644 index 00000000000..485ecb6abd5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociation.java @@ -0,0 +1,213 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.apigateway; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.apigateway.DomainNameAccessAssociationArgs; +import com.pulumi.aws.apigateway.inputs.DomainNameAccessAssociationState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Creates a domain name access association resource between an access association source and a private custom domain name. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.apigateway.DomainNameAccessAssociation;
+ * import com.pulumi.aws.apigateway.DomainNameAccessAssociationArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new DomainNameAccessAssociation("example", DomainNameAccessAssociationArgs.builder()
+ *             .accessAssociationSource(exampleAwsVpcEndpoint.id())
+ *             .accessAssociationSourceType("VPCE")
+ *             .domainNameArn(exampleAwsApiGatewayDomainName.domainNameArn())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: + * + * ```sh + * $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 + * ``` + * + */ +@ResourceType(type="aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation") +public class DomainNameAccessAssociation extends com.pulumi.resources.CustomResource { + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + @Export(name="accessAssociationSource", refs={String.class}, tree="[0]") + private Output accessAssociationSource; + + /** + * @return The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + public Output accessAssociationSource() { + return this.accessAssociationSource; + } + /** + * The type of the domain name access association source. Valid values are `VPCE`. + * + */ + @Export(name="accessAssociationSourceType", refs={String.class}, tree="[0]") + private Output accessAssociationSourceType; + + /** + * @return The type of the domain name access association source. Valid values are `VPCE`. + * + */ + public Output accessAssociationSourceType() { + return this.accessAssociationSourceType; + } + /** + * ARN of the domain name access association. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return ARN of the domain name access association. + * + */ + public Output arn() { + return this.arn; + } + /** + * The ARN of the domain name. + * + */ + @Export(name="domainNameArn", refs={String.class}, tree="[0]") + private Output domainNameArn; + + /** + * @return The ARN of the domain name. + * + */ + public Output domainNameArn() { + return this.domainNameArn; + } + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DomainNameAccessAssociation(java.lang.String name) { + this(name, DomainNameAccessAssociationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DomainNameAccessAssociation(java.lang.String name, DomainNameAccessAssociationArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DomainNameAccessAssociation(java.lang.String name, DomainNameAccessAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private DomainNameAccessAssociation(java.lang.String name, Output id, @Nullable DomainNameAccessAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation", name, state, makeResourceOptions(options, id), false); + } + + private static DomainNameAccessAssociationArgs makeArgs(DomainNameAccessAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DomainNameAccessAssociationArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DomainNameAccessAssociation get(java.lang.String name, Output id, @Nullable DomainNameAccessAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DomainNameAccessAssociation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociationArgs.java new file mode 100644 index 00000000000..a0bb840ad4d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/apigateway/DomainNameAccessAssociationArgs.java @@ -0,0 +1,205 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.apigateway; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DomainNameAccessAssociationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainNameAccessAssociationArgs Empty = new DomainNameAccessAssociationArgs(); + + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + @Import(name="accessAssociationSource", required=true) + private Output accessAssociationSource; + + /** + * @return The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + public Output accessAssociationSource() { + return this.accessAssociationSource; + } + + /** + * The type of the domain name access association source. Valid values are `VPCE`. + * + */ + @Import(name="accessAssociationSourceType", required=true) + private Output accessAssociationSourceType; + + /** + * @return The type of the domain name access association source. Valid values are `VPCE`. + * + */ + public Output accessAssociationSourceType() { + return this.accessAssociationSourceType; + } + + /** + * The ARN of the domain name. + * + */ + @Import(name="domainNameArn", required=true) + private Output domainNameArn; + + /** + * @return The ARN of the domain name. + * + */ + public Output domainNameArn() { + return this.domainNameArn; + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private DomainNameAccessAssociationArgs() {} + + private DomainNameAccessAssociationArgs(DomainNameAccessAssociationArgs $) { + this.accessAssociationSource = $.accessAssociationSource; + this.accessAssociationSourceType = $.accessAssociationSourceType; + this.domainNameArn = $.domainNameArn; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainNameAccessAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainNameAccessAssociationArgs $; + + public Builder() { + $ = new DomainNameAccessAssociationArgs(); + } + + public Builder(DomainNameAccessAssociationArgs defaults) { + $ = new DomainNameAccessAssociationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param accessAssociationSource The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + * @return builder + * + */ + public Builder accessAssociationSource(Output accessAssociationSource) { + $.accessAssociationSource = accessAssociationSource; + return this; + } + + /** + * @param accessAssociationSource The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + * @return builder + * + */ + public Builder accessAssociationSource(String accessAssociationSource) { + return accessAssociationSource(Output.of(accessAssociationSource)); + } + + /** + * @param accessAssociationSourceType The type of the domain name access association source. Valid values are `VPCE`. + * + * @return builder + * + */ + public Builder accessAssociationSourceType(Output accessAssociationSourceType) { + $.accessAssociationSourceType = accessAssociationSourceType; + return this; + } + + /** + * @param accessAssociationSourceType The type of the domain name access association source. Valid values are `VPCE`. + * + * @return builder + * + */ + public Builder accessAssociationSourceType(String accessAssociationSourceType) { + return accessAssociationSourceType(Output.of(accessAssociationSourceType)); + } + + /** + * @param domainNameArn The ARN of the domain name. + * + * @return builder + * + */ + public Builder domainNameArn(Output domainNameArn) { + $.domainNameArn = domainNameArn; + return this; + } + + /** + * @param domainNameArn The ARN of the domain name. + * + * @return builder + * + */ + public Builder domainNameArn(String domainNameArn) { + return domainNameArn(Output.of(domainNameArn)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public DomainNameAccessAssociationArgs build() { + if ($.accessAssociationSource == null) { + throw new MissingRequiredPropertyException("DomainNameAccessAssociationArgs", "accessAssociationSource"); + } + if ($.accessAssociationSourceType == null) { + throw new MissingRequiredPropertyException("DomainNameAccessAssociationArgs", "accessAssociationSourceType"); + } + if ($.domainNameArn == null) { + throw new MissingRequiredPropertyException("DomainNameAccessAssociationArgs", "domainNameArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigateway/inputs/DomainNameAccessAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/apigateway/inputs/DomainNameAccessAssociationState.java new file mode 100644 index 00000000000..1e36eccc8ec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/apigateway/inputs/DomainNameAccessAssociationState.java @@ -0,0 +1,285 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.apigateway.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DomainNameAccessAssociationState extends com.pulumi.resources.ResourceArgs { + + public static final DomainNameAccessAssociationState Empty = new DomainNameAccessAssociationState(); + + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + @Import(name="accessAssociationSource") + private @Nullable Output accessAssociationSource; + + /** + * @return The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + */ + public Optional> accessAssociationSource() { + return Optional.ofNullable(this.accessAssociationSource); + } + + /** + * The type of the domain name access association source. Valid values are `VPCE`. + * + */ + @Import(name="accessAssociationSourceType") + private @Nullable Output accessAssociationSourceType; + + /** + * @return The type of the domain name access association source. Valid values are `VPCE`. + * + */ + public Optional> accessAssociationSourceType() { + return Optional.ofNullable(this.accessAssociationSourceType); + } + + /** + * ARN of the domain name access association. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN of the domain name access association. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * The ARN of the domain name. + * + */ + @Import(name="domainNameArn") + private @Nullable Output domainNameArn; + + /** + * @return The ARN of the domain name. + * + */ + public Optional> domainNameArn() { + return Optional.ofNullable(this.domainNameArn); + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + private DomainNameAccessAssociationState() {} + + private DomainNameAccessAssociationState(DomainNameAccessAssociationState $) { + this.accessAssociationSource = $.accessAssociationSource; + this.accessAssociationSourceType = $.accessAssociationSourceType; + this.arn = $.arn; + this.domainNameArn = $.domainNameArn; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainNameAccessAssociationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainNameAccessAssociationState $; + + public Builder() { + $ = new DomainNameAccessAssociationState(); + } + + public Builder(DomainNameAccessAssociationState defaults) { + $ = new DomainNameAccessAssociationState(Objects.requireNonNull(defaults)); + } + + /** + * @param accessAssociationSource The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + * @return builder + * + */ + public Builder accessAssociationSource(@Nullable Output accessAssociationSource) { + $.accessAssociationSource = accessAssociationSource; + return this; + } + + /** + * @param accessAssociationSource The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + * + * @return builder + * + */ + public Builder accessAssociationSource(String accessAssociationSource) { + return accessAssociationSource(Output.of(accessAssociationSource)); + } + + /** + * @param accessAssociationSourceType The type of the domain name access association source. Valid values are `VPCE`. + * + * @return builder + * + */ + public Builder accessAssociationSourceType(@Nullable Output accessAssociationSourceType) { + $.accessAssociationSourceType = accessAssociationSourceType; + return this; + } + + /** + * @param accessAssociationSourceType The type of the domain name access association source. Valid values are `VPCE`. + * + * @return builder + * + */ + public Builder accessAssociationSourceType(String accessAssociationSourceType) { + return accessAssociationSourceType(Output.of(accessAssociationSourceType)); + } + + /** + * @param arn ARN of the domain name access association. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the domain name access association. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param domainNameArn The ARN of the domain name. + * + * @return builder + * + */ + public Builder domainNameArn(@Nullable Output domainNameArn) { + $.domainNameArn = domainNameArn; + return this; + } + + /** + * @param domainNameArn The ARN of the domain name. + * + * @return builder + * + */ + public Builder domainNameArn(String domainNameArn) { + return domainNameArn(Output.of(domainNameArn)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public DomainNameAccessAssociationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/appstream/Stack.java b/sdk/java/src/main/java/com/pulumi/aws/appstream/Stack.java index 3caae5d83ad..5a45f465d5f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appstream/Stack.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appstream/Stack.java @@ -63,6 +63,10 @@ * .build()) * .userSettings( * StackUserSettingArgs.builder() + * .action("AUTO_TIME_ZONE_REDIRECTION") + * .permission("DISABLED") + * .build(), + * StackUserSettingArgs.builder() * .action("CLIPBOARD_COPY_FROM_LOCAL_DEVICE") * .permission("ENABLED") * .build(), diff --git a/sdk/java/src/main/java/com/pulumi/aws/appstream/inputs/StackUserSettingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/appstream/inputs/StackUserSettingArgs.java index 7692b0fb93f..48e59c05b07 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appstream/inputs/StackUserSettingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appstream/inputs/StackUserSettingArgs.java @@ -16,7 +16,7 @@ public final class StackUserSettingArgs extends com.pulumi.resources.ResourceArg /** * Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * */ @Import(name="action", required=true) @@ -24,7 +24,7 @@ public final class StackUserSettingArgs extends com.pulumi.resources.ResourceArg /** * @return Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * */ public Output action() { @@ -75,7 +75,7 @@ public Builder(StackUserSettingArgs defaults) { /** * @param action Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * * @return builder * @@ -87,7 +87,7 @@ public Builder action(Output action) { /** * @param action Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/appstream/outputs/StackUserSetting.java b/sdk/java/src/main/java/com/pulumi/aws/appstream/outputs/StackUserSetting.java index 1366ca02bf2..18644487499 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appstream/outputs/StackUserSetting.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appstream/outputs/StackUserSetting.java @@ -12,7 +12,7 @@ public final class StackUserSetting { /** * @return Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * */ private String action; @@ -26,7 +26,7 @@ public final class StackUserSetting { private StackUserSetting() {} /** * @return Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. * */ public String action() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/Group.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/Group.java index cf334b19891..c7bcd156777 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/Group.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/Group.java @@ -6,6 +6,7 @@ import com.pulumi.aws.Utilities; import com.pulumi.aws.autoscaling.GroupArgs; import com.pulumi.aws.autoscaling.inputs.GroupState; +import com.pulumi.aws.autoscaling.outputs.GroupAvailabilityZoneDistribution; import com.pulumi.aws.autoscaling.outputs.GroupInitialLifecycleHook; import com.pulumi.aws.autoscaling.outputs.GroupInstanceMaintenancePolicy; import com.pulumi.aws.autoscaling.outputs.GroupInstanceRefresh; @@ -730,6 +731,20 @@ public class Group extends com.pulumi.resources.CustomResource { public Output arn() { return this.arn; } + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + @Export(name="availabilityZoneDistribution", refs={GroupAvailabilityZoneDistribution.class}, tree="[0]") + private Output availabilityZoneDistribution; + + /** + * @return The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + public Output availabilityZoneDistribution() { + return this.availabilityZoneDistribution; + } /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/GroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/GroupArgs.java index df64e402e60..d932913dc36 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/GroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/GroupArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.autoscaling; import com.pulumi.aws.autoscaling.enums.MetricsGranularity; +import com.pulumi.aws.autoscaling.inputs.GroupAvailabilityZoneDistributionArgs; import com.pulumi.aws.autoscaling.inputs.GroupInitialLifecycleHookArgs; import com.pulumi.aws.autoscaling.inputs.GroupInstanceMaintenancePolicyArgs; import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshArgs; @@ -29,6 +30,21 @@ public final class GroupArgs extends com.pulumi.resources.ResourceArgs { public static final GroupArgs Empty = new GroupArgs(); + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + @Import(name="availabilityZoneDistribution") + private @Nullable Output availabilityZoneDistribution; + + /** + * @return The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + public Optional> availabilityZoneDistribution() { + return Optional.ofNullable(this.availabilityZoneDistribution); + } + /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. * @@ -685,6 +701,7 @@ public Optional> warmPool() { private GroupArgs() {} private GroupArgs(GroupArgs $) { + this.availabilityZoneDistribution = $.availabilityZoneDistribution; this.availabilityZones = $.availabilityZones; this.capacityRebalance = $.capacityRebalance; this.context = $.context; @@ -744,6 +761,27 @@ public Builder(GroupArgs defaults) { $ = new GroupArgs(Objects.requireNonNull(defaults)); } + /** + * @param availabilityZoneDistribution The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + * @return builder + * + */ + public Builder availabilityZoneDistribution(@Nullable Output availabilityZoneDistribution) { + $.availabilityZoneDistribution = availabilityZoneDistribution; + return this; + } + + /** + * @param availabilityZoneDistribution The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + * @return builder + * + */ + public Builder availabilityZoneDistribution(GroupAvailabilityZoneDistributionArgs availabilityZoneDistribution) { + return availabilityZoneDistribution(Output.of(availabilityZoneDistribution)); + } + /** * @param availabilityZones A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupAvailabilityZoneDistributionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupAvailabilityZoneDistributionArgs.java new file mode 100644 index 00000000000..4157e92b7e1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupAvailabilityZoneDistributionArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.autoscaling.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GroupAvailabilityZoneDistributionArgs extends com.pulumi.resources.ResourceArgs { + + public static final GroupAvailabilityZoneDistributionArgs Empty = new GroupAvailabilityZoneDistributionArgs(); + + /** + * The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + */ + @Import(name="capacityDistributionStrategy") + private @Nullable Output capacityDistributionStrategy; + + /** + * @return The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + */ + public Optional> capacityDistributionStrategy() { + return Optional.ofNullable(this.capacityDistributionStrategy); + } + + private GroupAvailabilityZoneDistributionArgs() {} + + private GroupAvailabilityZoneDistributionArgs(GroupAvailabilityZoneDistributionArgs $) { + this.capacityDistributionStrategy = $.capacityDistributionStrategy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GroupAvailabilityZoneDistributionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GroupAvailabilityZoneDistributionArgs $; + + public Builder() { + $ = new GroupAvailabilityZoneDistributionArgs(); + } + + public Builder(GroupAvailabilityZoneDistributionArgs defaults) { + $ = new GroupAvailabilityZoneDistributionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param capacityDistributionStrategy The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + * @return builder + * + */ + public Builder capacityDistributionStrategy(@Nullable Output capacityDistributionStrategy) { + $.capacityDistributionStrategy = capacityDistributionStrategy; + return this; + } + + /** + * @param capacityDistributionStrategy The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + * @return builder + * + */ + public Builder capacityDistributionStrategy(String capacityDistributionStrategy) { + return capacityDistributionStrategy(Output.of(capacityDistributionStrategy)); + } + + public GroupAvailabilityZoneDistributionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupState.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupState.java index 039a2dd9462..5f8a7b93d83 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/inputs/GroupState.java @@ -4,6 +4,7 @@ package com.pulumi.aws.autoscaling.inputs; import com.pulumi.aws.autoscaling.enums.MetricsGranularity; +import com.pulumi.aws.autoscaling.inputs.GroupAvailabilityZoneDistributionArgs; import com.pulumi.aws.autoscaling.inputs.GroupInitialLifecycleHookArgs; import com.pulumi.aws.autoscaling.inputs.GroupInstanceMaintenancePolicyArgs; import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshArgs; @@ -43,6 +44,21 @@ public Optional> arn() { return Optional.ofNullable(this.arn); } + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + @Import(name="availabilityZoneDistribution") + private @Nullable Output availabilityZoneDistribution; + + /** + * @return The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + */ + public Optional> availabilityZoneDistribution() { + return Optional.ofNullable(this.availabilityZoneDistribution); + } + /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. * @@ -730,6 +746,7 @@ private GroupState() {} private GroupState(GroupState $) { this.arn = $.arn; + this.availabilityZoneDistribution = $.availabilityZoneDistribution; this.availabilityZones = $.availabilityZones; this.capacityRebalance = $.capacityRebalance; this.context = $.context; @@ -812,6 +829,27 @@ public Builder arn(String arn) { return arn(Output.of(arn)); } + /** + * @param availabilityZoneDistribution The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + * @return builder + * + */ + public Builder availabilityZoneDistribution(@Nullable Output availabilityZoneDistribution) { + $.availabilityZoneDistribution = availabilityZoneDistribution; + return this; + } + + /** + * @param availabilityZoneDistribution The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + * + * @return builder + * + */ + public Builder availabilityZoneDistribution(GroupAvailabilityZoneDistributionArgs availabilityZoneDistribution) { + return availabilityZoneDistribution(Output.of(availabilityZoneDistribution)); + } + /** * @param availabilityZones A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupAvailabilityZoneDistribution.java b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupAvailabilityZoneDistribution.java new file mode 100644 index 00000000000..c147da2c227 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/autoscaling/outputs/GroupAvailabilityZoneDistribution.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.autoscaling.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GroupAvailabilityZoneDistribution { + /** + * @return The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + */ + private @Nullable String capacityDistributionStrategy; + + private GroupAvailabilityZoneDistribution() {} + /** + * @return The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + * + */ + public Optional capacityDistributionStrategy() { + return Optional.ofNullable(this.capacityDistributionStrategy); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GroupAvailabilityZoneDistribution defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String capacityDistributionStrategy; + public Builder() {} + public Builder(GroupAvailabilityZoneDistribution defaults) { + Objects.requireNonNull(defaults); + this.capacityDistributionStrategy = defaults.capacityDistributionStrategy; + } + + @CustomType.Setter + public Builder capacityDistributionStrategy(@Nullable String capacityDistributionStrategy) { + + this.capacityDistributionStrategy = capacityDistributionStrategy; + return this; + } + public GroupAvailabilityZoneDistribution build() { + final var _resultValue = new GroupAvailabilityZoneDistribution(); + _resultValue.capacityDistributionStrategy = capacityDistributionStrategy; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java index 4b4c1d36c02..dd2039f9f1d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgent.java @@ -143,6 +143,20 @@ public class AgentAgent extends com.pulumi.resources.CustomResource { public Output agentArn() { return this.agentArn; } + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + @Export(name="agentCollaboration", refs={String.class}, tree="[0]") + private Output agentCollaboration; + + /** + * @return Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + public Output agentCollaboration() { + return this.agentCollaboration; + } /** * Unique identifier of the agent. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentArgs.java index 2333f7a6861..69a5f62e0d2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentArgs.java @@ -23,6 +23,21 @@ public final class AgentAgentArgs extends com.pulumi.resources.ResourceArgs { public static final AgentAgentArgs Empty = new AgentAgentArgs(); + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + @Import(name="agentCollaboration") + private @Nullable Output agentCollaboration; + + /** + * @return Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + public Optional> agentCollaboration() { + return Optional.ofNullable(this.agentCollaboration); + } + /** * Name of the agent. * @@ -217,6 +232,7 @@ public Optional> timeouts() { private AgentAgentArgs() {} private AgentAgentArgs(AgentAgentArgs $) { + this.agentCollaboration = $.agentCollaboration; this.agentName = $.agentName; this.agentResourceRoleArn = $.agentResourceRoleArn; this.customerEncryptionKeyArn = $.customerEncryptionKeyArn; @@ -250,6 +266,27 @@ public Builder(AgentAgentArgs defaults) { $ = new AgentAgentArgs(Objects.requireNonNull(defaults)); } + /** + * @param agentCollaboration Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + * @return builder + * + */ + public Builder agentCollaboration(@Nullable Output agentCollaboration) { + $.agentCollaboration = agentCollaboration; + return this; + } + + /** + * @param agentCollaboration Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + * @return builder + * + */ + public Builder agentCollaboration(String agentCollaboration) { + return agentCollaboration(Output.of(agentCollaboration)); + } + /** * @param agentName Name of the agent. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentState.java index e61f587c3b9..3926f08aa66 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentState.java @@ -37,6 +37,21 @@ public Optional> agentArn() { return Optional.ofNullable(this.agentArn); } + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + @Import(name="agentCollaboration") + private @Nullable Output agentCollaboration; + + /** + * @return Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + */ + public Optional> agentCollaboration() { + return Optional.ofNullable(this.agentCollaboration); + } + /** * Unique identifier of the agent. * @@ -285,6 +300,7 @@ private AgentAgentState() {} private AgentAgentState(AgentAgentState $) { this.agentArn = $.agentArn; + this.agentCollaboration = $.agentCollaboration; this.agentId = $.agentId; this.agentName = $.agentName; this.agentResourceRoleArn = $.agentResourceRoleArn; @@ -342,6 +358,27 @@ public Builder agentArn(String agentArn) { return agentArn(Output.of(agentArn)); } + /** + * @param agentCollaboration Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + * @return builder + * + */ + public Builder agentCollaboration(@Nullable Output agentCollaboration) { + $.agentCollaboration = agentCollaboration; + return this; + } + + /** + * @param agentCollaboration Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + * + * @return builder + * + */ + public Builder agentCollaboration(String agentCollaboration) { + return agentCollaboration(Output.of(agentCollaboration)); + } + /** * @param agentId Unique identifier of the agent. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOrigin.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOrigin.java new file mode 100644 index 00000000000..b27e5d7387d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOrigin.java @@ -0,0 +1,218 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.cloudfront.VpcOriginArgs; +import com.pulumi.aws.cloudfront.inputs.VpcOriginState; +import com.pulumi.aws.cloudfront.outputs.VpcOriginTimeouts; +import com.pulumi.aws.cloudfront.outputs.VpcOriginVpcOriginEndpointConfig; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Creates an Amazon CloudFront VPC origin. + * + * For information about CloudFront VPC origins, see + * [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. + * + * ## Example Usage + * + * ### Application Load Balancer + * + * The following example below creates a CloudFront VPC origin for a Application Load Balancer. + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.cloudfront.VpcOrigin;
+ * import com.pulumi.aws.cloudfront.VpcOriginArgs;
+ * import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigArgs;
+ * import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var alb = new VpcOrigin("alb", VpcOriginArgs.builder()
+ *             .vpcOriginEndpointConfig(VpcOriginVpcOriginEndpointConfigArgs.builder()
+ *                 .name("Example VPC Origin")
+ *                 .arn(this_.arn())
+ *                 .httpPort(8080)
+ *                 .httpsPort(8443)
+ *                 .originProtocolPolicy("https-only")
+ *                 .originSslProtocols(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.builder()
+ *                     .items("TLSv1.2")
+ *                     .quantity(1)
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * terraform + * + * import { + * + * to = aws_cloudfront_vpc_origin.origin + * + * id = vo_JQEa410sssUFoY6wMkx69j + * + * } + * + * Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: + * + * console + * + * % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j + * + */ +@ResourceType(type="aws:cloudfront/vpcOrigin:VpcOrigin") +public class VpcOrigin extends com.pulumi.resources.CustomResource { + /** + * The VPC origin ARN. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The VPC origin ARN. + * + */ + public Output arn() { + return this.arn; + } + /** + * The current version of the origin. + * + */ + @Export(name="etag", refs={String.class}, tree="[0]") + private Output etag; + + /** + * @return The current version of the origin. + * + */ + public Output etag() { + return this.etag; + } + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={VpcOriginTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + @Export(name="vpcOriginEndpointConfig", refs={VpcOriginVpcOriginEndpointConfig.class}, tree="[0]") + private Output vpcOriginEndpointConfig; + + public Output> vpcOriginEndpointConfig() { + return Codegen.optional(this.vpcOriginEndpointConfig); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public VpcOrigin(java.lang.String name) { + this(name, VpcOriginArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public VpcOrigin(java.lang.String name, @Nullable VpcOriginArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public VpcOrigin(java.lang.String name, @Nullable VpcOriginArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudfront/vpcOrigin:VpcOrigin", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private VpcOrigin(java.lang.String name, Output id, @Nullable VpcOriginState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudfront/vpcOrigin:VpcOrigin", name, state, makeResourceOptions(options, id), false); + } + + private static VpcOriginArgs makeArgs(@Nullable VpcOriginArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VpcOriginArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static VpcOrigin get(java.lang.String name, Output id, @Nullable VpcOriginState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new VpcOrigin(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOriginArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOriginArgs.java new file mode 100644 index 00000000000..ca8e229c4d7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/VpcOriginArgs.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront; + +import com.pulumi.aws.cloudfront.inputs.VpcOriginTimeoutsArgs; +import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcOriginArgs extends com.pulumi.resources.ResourceArgs { + + public static final VpcOriginArgs Empty = new VpcOriginArgs(); + + @Import(name="tags") + private @Nullable Output> tags; + + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + @Import(name="vpcOriginEndpointConfig") + private @Nullable Output vpcOriginEndpointConfig; + + public Optional> vpcOriginEndpointConfig() { + return Optional.ofNullable(this.vpcOriginEndpointConfig); + } + + private VpcOriginArgs() {} + + private VpcOriginArgs(VpcOriginArgs $) { + this.tags = $.tags; + this.timeouts = $.timeouts; + this.vpcOriginEndpointConfig = $.vpcOriginEndpointConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcOriginArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcOriginArgs $; + + public Builder() { + $ = new VpcOriginArgs(); + } + + public Builder(VpcOriginArgs defaults) { + $ = new VpcOriginArgs(Objects.requireNonNull(defaults)); + } + + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(VpcOriginTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public Builder vpcOriginEndpointConfig(@Nullable Output vpcOriginEndpointConfig) { + $.vpcOriginEndpointConfig = vpcOriginEndpointConfig; + return this; + } + + public Builder vpcOriginEndpointConfig(VpcOriginVpcOriginEndpointConfigArgs vpcOriginEndpointConfig) { + return vpcOriginEndpointConfig(Output.of(vpcOriginEndpointConfig)); + } + + public VpcOriginArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java index a7af3f282e3..b598ce849bc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginArgs.java @@ -7,6 +7,7 @@ import com.pulumi.aws.cloudfront.inputs.DistributionOriginCustomOriginConfigArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginOriginShieldArgs; import com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs; +import com.pulumi.aws.cloudfront.inputs.DistributionOriginVpcOriginConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -164,6 +165,21 @@ public Optional> s3OriginConfig() { return Optional.ofNullable(this.s3OriginConfig); } + /** + * The VPC origin configuration. + * + */ + @Import(name="vpcOriginConfig") + private @Nullable Output vpcOriginConfig; + + /** + * @return The VPC origin configuration. + * + */ + public Optional> vpcOriginConfig() { + return Optional.ofNullable(this.vpcOriginConfig); + } + private DistributionOriginArgs() {} private DistributionOriginArgs(DistributionOriginArgs $) { @@ -177,6 +193,7 @@ private DistributionOriginArgs(DistributionOriginArgs $) { this.originPath = $.originPath; this.originShield = $.originShield; this.s3OriginConfig = $.s3OriginConfig; + this.vpcOriginConfig = $.vpcOriginConfig; } public static Builder builder() { @@ -405,6 +422,27 @@ public Builder s3OriginConfig(DistributionOriginS3OriginConfigArgs s3OriginConfi return s3OriginConfig(Output.of(s3OriginConfig)); } + /** + * @param vpcOriginConfig The VPC origin configuration. + * + * @return builder + * + */ + public Builder vpcOriginConfig(@Nullable Output vpcOriginConfig) { + $.vpcOriginConfig = vpcOriginConfig; + return this; + } + + /** + * @param vpcOriginConfig The VPC origin configuration. + * + * @return builder + * + */ + public Builder vpcOriginConfig(DistributionOriginVpcOriginConfigArgs vpcOriginConfig) { + return vpcOriginConfig(Output.of(vpcOriginConfig)); + } + public DistributionOriginArgs build() { if ($.domainName == null) { throw new MissingRequiredPropertyException("DistributionOriginArgs", "domainName"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginCustomOriginConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginCustomOriginConfigArgs.java index 7c5abc74d27..56e0b5398e7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginCustomOriginConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginCustomOriginConfigArgs.java @@ -48,17 +48,9 @@ public Output httpsPort() { return this.httpsPort; } - /** - * The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - */ @Import(name="originKeepaliveTimeout") private @Nullable Output originKeepaliveTimeout; - /** - * @return The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - */ public Optional> originKeepaliveTimeout() { return Optional.ofNullable(this.originKeepaliveTimeout); } @@ -78,17 +70,9 @@ public Output originProtocolPolicy() { return this.originProtocolPolicy; } - /** - * The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - */ @Import(name="originReadTimeout") private @Nullable Output originReadTimeout; - /** - * @return The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - */ public Optional> originReadTimeout() { return Optional.ofNullable(this.originReadTimeout); } @@ -179,23 +163,11 @@ public Builder httpsPort(Integer httpsPort) { return httpsPort(Output.of(httpsPort)); } - /** - * @param originKeepaliveTimeout The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - * @return builder - * - */ public Builder originKeepaliveTimeout(@Nullable Output originKeepaliveTimeout) { $.originKeepaliveTimeout = originKeepaliveTimeout; return this; } - /** - * @param originKeepaliveTimeout The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - * @return builder - * - */ public Builder originKeepaliveTimeout(Integer originKeepaliveTimeout) { return originKeepaliveTimeout(Output.of(originKeepaliveTimeout)); } @@ -221,23 +193,11 @@ public Builder originProtocolPolicy(String originProtocolPolicy) { return originProtocolPolicy(Output.of(originProtocolPolicy)); } - /** - * @param originReadTimeout The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - * @return builder - * - */ public Builder originReadTimeout(@Nullable Output originReadTimeout) { $.originReadTimeout = originReadTimeout; return this; } - /** - * @param originReadTimeout The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - * @return builder - * - */ public Builder originReadTimeout(Integer originReadTimeout) { return originReadTimeout(Output.of(originReadTimeout)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginVpcOriginConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginVpcOriginConfigArgs.java new file mode 100644 index 00000000000..104197f5334 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/DistributionOriginVpcOriginConfigArgs.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DistributionOriginVpcOriginConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final DistributionOriginVpcOriginConfigArgs Empty = new DistributionOriginVpcOriginConfigArgs(); + + @Import(name="originKeepaliveTimeout") + private @Nullable Output originKeepaliveTimeout; + + public Optional> originKeepaliveTimeout() { + return Optional.ofNullable(this.originKeepaliveTimeout); + } + + @Import(name="originReadTimeout") + private @Nullable Output originReadTimeout; + + public Optional> originReadTimeout() { + return Optional.ofNullable(this.originReadTimeout); + } + + /** + * The VPC origin ID. + * + */ + @Import(name="vpcOriginId", required=true) + private Output vpcOriginId; + + /** + * @return The VPC origin ID. + * + */ + public Output vpcOriginId() { + return this.vpcOriginId; + } + + private DistributionOriginVpcOriginConfigArgs() {} + + private DistributionOriginVpcOriginConfigArgs(DistributionOriginVpcOriginConfigArgs $) { + this.originKeepaliveTimeout = $.originKeepaliveTimeout; + this.originReadTimeout = $.originReadTimeout; + this.vpcOriginId = $.vpcOriginId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DistributionOriginVpcOriginConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DistributionOriginVpcOriginConfigArgs $; + + public Builder() { + $ = new DistributionOriginVpcOriginConfigArgs(); + } + + public Builder(DistributionOriginVpcOriginConfigArgs defaults) { + $ = new DistributionOriginVpcOriginConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder originKeepaliveTimeout(@Nullable Output originKeepaliveTimeout) { + $.originKeepaliveTimeout = originKeepaliveTimeout; + return this; + } + + public Builder originKeepaliveTimeout(Integer originKeepaliveTimeout) { + return originKeepaliveTimeout(Output.of(originKeepaliveTimeout)); + } + + public Builder originReadTimeout(@Nullable Output originReadTimeout) { + $.originReadTimeout = originReadTimeout; + return this; + } + + public Builder originReadTimeout(Integer originReadTimeout) { + return originReadTimeout(Output.of(originReadTimeout)); + } + + /** + * @param vpcOriginId The VPC origin ID. + * + * @return builder + * + */ + public Builder vpcOriginId(Output vpcOriginId) { + $.vpcOriginId = vpcOriginId; + return this; + } + + /** + * @param vpcOriginId The VPC origin ID. + * + * @return builder + * + */ + public Builder vpcOriginId(String vpcOriginId) { + return vpcOriginId(Output.of(vpcOriginId)); + } + + public DistributionOriginVpcOriginConfigArgs build() { + if ($.vpcOriginId == null) { + throw new MissingRequiredPropertyException("DistributionOriginVpcOriginConfigArgs", "vpcOriginId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginState.java new file mode 100644 index 00000000000..d228ca79d55 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginState.java @@ -0,0 +1,227 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.aws.cloudfront.inputs.VpcOriginTimeoutsArgs; +import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcOriginState extends com.pulumi.resources.ResourceArgs { + + public static final VpcOriginState Empty = new VpcOriginState(); + + /** + * The VPC origin ARN. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The VPC origin ARN. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * The current version of the origin. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return The current version of the origin. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + @Import(name="tags") + private @Nullable Output> tags; + + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + @Import(name="vpcOriginEndpointConfig") + private @Nullable Output vpcOriginEndpointConfig; + + public Optional> vpcOriginEndpointConfig() { + return Optional.ofNullable(this.vpcOriginEndpointConfig); + } + + private VpcOriginState() {} + + private VpcOriginState(VpcOriginState $) { + this.arn = $.arn; + this.etag = $.etag; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + this.vpcOriginEndpointConfig = $.vpcOriginEndpointConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcOriginState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcOriginState $; + + public Builder() { + $ = new VpcOriginState(); + } + + public Builder(VpcOriginState defaults) { + $ = new VpcOriginState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The VPC origin ARN. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The VPC origin ARN. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param etag The current version of the origin. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag The current version of the origin. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(VpcOriginTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public Builder vpcOriginEndpointConfig(@Nullable Output vpcOriginEndpointConfig) { + $.vpcOriginEndpointConfig = vpcOriginEndpointConfig; + return this; + } + + public Builder vpcOriginEndpointConfig(VpcOriginVpcOriginEndpointConfigArgs vpcOriginEndpointConfig) { + return vpcOriginEndpointConfig(Output.of(vpcOriginEndpointConfig)); + } + + public VpcOriginState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginTimeoutsArgs.java new file mode 100644 index 00000000000..14e567043e5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginTimeoutsArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcOriginTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final VpcOriginTimeoutsArgs Empty = new VpcOriginTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private VpcOriginTimeoutsArgs() {} + + private VpcOriginTimeoutsArgs(VpcOriginTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcOriginTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcOriginTimeoutsArgs $; + + public Builder() { + $ = new VpcOriginTimeoutsArgs(); + } + + public Builder(VpcOriginTimeoutsArgs defaults) { + $ = new VpcOriginTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public VpcOriginTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigArgs.java new file mode 100644 index 00000000000..b898b9b0280 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigArgs.java @@ -0,0 +1,286 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class VpcOriginVpcOriginEndpointConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final VpcOriginVpcOriginEndpointConfigArgs Empty = new VpcOriginVpcOriginEndpointConfigArgs(); + + /** + * The VPC origin ARN. + * + */ + @Import(name="arn", required=true) + private Output arn; + + /** + * @return The VPC origin ARN. + * + */ + public Output arn() { + return this.arn; + } + + /** + * The HTTP port for the CloudFront VPC origin endpoint configuration. + * + */ + @Import(name="httpPort", required=true) + private Output httpPort; + + /** + * @return The HTTP port for the CloudFront VPC origin endpoint configuration. + * + */ + public Output httpPort() { + return this.httpPort; + } + + /** + * The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + */ + @Import(name="httpsPort", required=true) + private Output httpsPort; + + /** + * @return The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + */ + public Output httpsPort() { + return this.httpsPort; + } + + /** + * The name of the CloudFront VPC origin endpoint configuration. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of the CloudFront VPC origin endpoint configuration. + * + */ + public Output name() { + return this.name; + } + + /** + * The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + */ + @Import(name="originProtocolPolicy", required=true) + private Output originProtocolPolicy; + + /** + * @return The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + */ + public Output originProtocolPolicy() { + return this.originProtocolPolicy; + } + + /** + * A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + */ + @Import(name="originSslProtocols") + private @Nullable Output originSslProtocols; + + /** + * @return A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + */ + public Optional> originSslProtocols() { + return Optional.ofNullable(this.originSslProtocols); + } + + private VpcOriginVpcOriginEndpointConfigArgs() {} + + private VpcOriginVpcOriginEndpointConfigArgs(VpcOriginVpcOriginEndpointConfigArgs $) { + this.arn = $.arn; + this.httpPort = $.httpPort; + this.httpsPort = $.httpsPort; + this.name = $.name; + this.originProtocolPolicy = $.originProtocolPolicy; + this.originSslProtocols = $.originSslProtocols; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcOriginVpcOriginEndpointConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcOriginVpcOriginEndpointConfigArgs $; + + public Builder() { + $ = new VpcOriginVpcOriginEndpointConfigArgs(); + } + + public Builder(VpcOriginVpcOriginEndpointConfigArgs defaults) { + $ = new VpcOriginVpcOriginEndpointConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The VPC origin ARN. + * + * @return builder + * + */ + public Builder arn(Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The VPC origin ARN. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param httpPort The HTTP port for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder httpPort(Output httpPort) { + $.httpPort = httpPort; + return this; + } + + /** + * @param httpPort The HTTP port for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder httpPort(Integer httpPort) { + return httpPort(Output.of(httpPort)); + } + + /** + * @param httpsPort The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder httpsPort(Output httpsPort) { + $.httpsPort = httpsPort; + return this; + } + + /** + * @param httpsPort The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder httpsPort(Integer httpsPort) { + return httpsPort(Output.of(httpsPort)); + } + + /** + * @param name The name of the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param originProtocolPolicy The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder originProtocolPolicy(Output originProtocolPolicy) { + $.originProtocolPolicy = originProtocolPolicy; + return this; + } + + /** + * @param originProtocolPolicy The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + * @return builder + * + */ + public Builder originProtocolPolicy(String originProtocolPolicy) { + return originProtocolPolicy(Output.of(originProtocolPolicy)); + } + + /** + * @param originSslProtocols A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + * @return builder + * + */ + public Builder originSslProtocols(@Nullable Output originSslProtocols) { + $.originSslProtocols = originSslProtocols; + return this; + } + + /** + * @param originSslProtocols A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + * @return builder + * + */ + public Builder originSslProtocols(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs originSslProtocols) { + return originSslProtocols(Output.of(originSslProtocols)); + } + + public VpcOriginVpcOriginEndpointConfigArgs build() { + if ($.arn == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigArgs", "arn"); + } + if ($.httpPort == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigArgs", "httpPort"); + } + if ($.httpsPort == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigArgs", "httpsPort"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigArgs", "name"); + } + if ($.originProtocolPolicy == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigArgs", "originProtocolPolicy"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.java new file mode 100644 index 00000000000..99f5a983d38 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.java @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; + + +public final class VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs extends com.pulumi.resources.ResourceArgs { + + public static final VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs Empty = new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs(); + + @Import(name="items", required=true) + private Output> items; + + public Output> items() { + return this.items; + } + + @Import(name="quantity", required=true) + private Output quantity; + + public Output quantity() { + return this.quantity; + } + + private VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs() {} + + private VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs $) { + this.items = $.items; + this.quantity = $.quantity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs $; + + public Builder() { + $ = new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs(); + } + + public Builder(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs defaults) { + $ = new VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs(Objects.requireNonNull(defaults)); + } + + public Builder items(Output> items) { + $.items = items; + return this; + } + + public Builder items(List items) { + return items(Output.of(items)); + } + + public Builder items(String... items) { + return items(List.of(items)); + } + + public Builder quantity(Output quantity) { + $.quantity = quantity; + return this; + } + + public Builder quantity(Integer quantity) { + return quantity(Output.of(quantity)); + } + + public VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs build() { + if ($.items == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs", "items"); + } + if ($.quantity == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs", "quantity"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java index 62b54663a49..c40a898f770 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOrigin.java @@ -7,6 +7,7 @@ import com.pulumi.aws.cloudfront.outputs.DistributionOriginCustomOriginConfig; import com.pulumi.aws.cloudfront.outputs.DistributionOriginOriginShield; import com.pulumi.aws.cloudfront.outputs.DistributionOriginS3OriginConfig; +import com.pulumi.aws.cloudfront.outputs.DistributionOriginVpcOriginConfig; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; @@ -64,6 +65,11 @@ public final class DistributionOrigin { * */ private @Nullable DistributionOriginS3OriginConfig s3OriginConfig; + /** + * @return The VPC origin configuration. + * + */ + private @Nullable DistributionOriginVpcOriginConfig vpcOriginConfig; private DistributionOrigin() {} /** @@ -132,6 +138,13 @@ public Optional originShield() { public Optional s3OriginConfig() { return Optional.ofNullable(this.s3OriginConfig); } + /** + * @return The VPC origin configuration. + * + */ + public Optional vpcOriginConfig() { + return Optional.ofNullable(this.vpcOriginConfig); + } public static Builder builder() { return new Builder(); @@ -152,6 +165,7 @@ public static final class Builder { private @Nullable String originPath; private @Nullable DistributionOriginOriginShield originShield; private @Nullable DistributionOriginS3OriginConfig s3OriginConfig; + private @Nullable DistributionOriginVpcOriginConfig vpcOriginConfig; public Builder() {} public Builder(DistributionOrigin defaults) { Objects.requireNonNull(defaults); @@ -165,6 +179,7 @@ public Builder(DistributionOrigin defaults) { this.originPath = defaults.originPath; this.originShield = defaults.originShield; this.s3OriginConfig = defaults.s3OriginConfig; + this.vpcOriginConfig = defaults.vpcOriginConfig; } @CustomType.Setter @@ -234,6 +249,12 @@ public Builder s3OriginConfig(@Nullable DistributionOriginS3OriginConfig s3Origi this.s3OriginConfig = s3OriginConfig; return this; } + @CustomType.Setter + public Builder vpcOriginConfig(@Nullable DistributionOriginVpcOriginConfig vpcOriginConfig) { + + this.vpcOriginConfig = vpcOriginConfig; + return this; + } public DistributionOrigin build() { final var _resultValue = new DistributionOrigin(); _resultValue.connectionAttempts = connectionAttempts; @@ -246,6 +267,7 @@ public DistributionOrigin build() { _resultValue.originPath = originPath; _resultValue.originShield = originShield; _resultValue.s3OriginConfig = s3OriginConfig; + _resultValue.vpcOriginConfig = vpcOriginConfig; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginCustomOriginConfig.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginCustomOriginConfig.java index 566b2c4abe2..f5e969b7cca 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginCustomOriginConfig.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginCustomOriginConfig.java @@ -24,20 +24,12 @@ public final class DistributionOriginCustomOriginConfig { * */ private Integer httpsPort; - /** - * @return The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - */ private @Nullable Integer originKeepaliveTimeout; /** * @return Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. * */ private String originProtocolPolicy; - /** - * @return The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - */ private @Nullable Integer originReadTimeout; /** * @return List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. @@ -60,10 +52,6 @@ public Integer httpPort() { public Integer httpsPort() { return this.httpsPort; } - /** - * @return The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - * - */ public Optional originKeepaliveTimeout() { return Optional.ofNullable(this.originKeepaliveTimeout); } @@ -74,10 +62,6 @@ public Optional originKeepaliveTimeout() { public String originProtocolPolicy() { return this.originProtocolPolicy; } - /** - * @return The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - * - */ public Optional originReadTimeout() { return Optional.ofNullable(this.originReadTimeout); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginVpcOriginConfig.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginVpcOriginConfig.java new file mode 100644 index 00000000000..e39b9b5086e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/DistributionOriginVpcOriginConfig.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DistributionOriginVpcOriginConfig { + private @Nullable Integer originKeepaliveTimeout; + private @Nullable Integer originReadTimeout; + /** + * @return The VPC origin ID. + * + */ + private String vpcOriginId; + + private DistributionOriginVpcOriginConfig() {} + public Optional originKeepaliveTimeout() { + return Optional.ofNullable(this.originKeepaliveTimeout); + } + public Optional originReadTimeout() { + return Optional.ofNullable(this.originReadTimeout); + } + /** + * @return The VPC origin ID. + * + */ + public String vpcOriginId() { + return this.vpcOriginId; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DistributionOriginVpcOriginConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer originKeepaliveTimeout; + private @Nullable Integer originReadTimeout; + private String vpcOriginId; + public Builder() {} + public Builder(DistributionOriginVpcOriginConfig defaults) { + Objects.requireNonNull(defaults); + this.originKeepaliveTimeout = defaults.originKeepaliveTimeout; + this.originReadTimeout = defaults.originReadTimeout; + this.vpcOriginId = defaults.vpcOriginId; + } + + @CustomType.Setter + public Builder originKeepaliveTimeout(@Nullable Integer originKeepaliveTimeout) { + + this.originKeepaliveTimeout = originKeepaliveTimeout; + return this; + } + @CustomType.Setter + public Builder originReadTimeout(@Nullable Integer originReadTimeout) { + + this.originReadTimeout = originReadTimeout; + return this; + } + @CustomType.Setter + public Builder vpcOriginId(String vpcOriginId) { + if (vpcOriginId == null) { + throw new MissingRequiredPropertyException("DistributionOriginVpcOriginConfig", "vpcOriginId"); + } + this.vpcOriginId = vpcOriginId; + return this; + } + public DistributionOriginVpcOriginConfig build() { + final var _resultValue = new DistributionOriginVpcOriginConfig(); + _resultValue.originKeepaliveTimeout = originKeepaliveTimeout; + _resultValue.originReadTimeout = originReadTimeout; + _resultValue.vpcOriginId = vpcOriginId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginTimeouts.java new file mode 100644 index 00000000000..d851ee5de4c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginTimeouts.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class VpcOriginTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private VpcOriginTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(VpcOriginTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + private @Nullable String update; + public Builder() {} + public Builder(VpcOriginTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public VpcOriginTimeouts build() { + final var _resultValue = new VpcOriginTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfig.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfig.java new file mode 100644 index 00000000000..b8bfd036c68 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfig.java @@ -0,0 +1,175 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.outputs; + +import com.pulumi.aws.cloudfront.outputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocols; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class VpcOriginVpcOriginEndpointConfig { + /** + * @return The VPC origin ARN. + * + */ + private String arn; + /** + * @return The HTTP port for the CloudFront VPC origin endpoint configuration. + * + */ + private Integer httpPort; + /** + * @return The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + */ + private Integer httpsPort; + /** + * @return The name of the CloudFront VPC origin endpoint configuration. + * + */ + private String name; + /** + * @return The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + */ + private String originProtocolPolicy; + /** + * @return A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + */ + private @Nullable VpcOriginVpcOriginEndpointConfigOriginSslProtocols originSslProtocols; + + private VpcOriginVpcOriginEndpointConfig() {} + /** + * @return The VPC origin ARN. + * + */ + public String arn() { + return this.arn; + } + /** + * @return The HTTP port for the CloudFront VPC origin endpoint configuration. + * + */ + public Integer httpPort() { + return this.httpPort; + } + /** + * @return The HTTPS port for the CloudFront VPC origin endpoint configuration. + * + */ + public Integer httpsPort() { + return this.httpsPort; + } + /** + * @return The name of the CloudFront VPC origin endpoint configuration. + * + */ + public String name() { + return this.name; + } + /** + * @return The origin protocol policy for the CloudFront VPC origin endpoint configuration. + * + */ + public String originProtocolPolicy() { + return this.originProtocolPolicy; + } + /** + * @return A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + * + */ + public Optional originSslProtocols() { + return Optional.ofNullable(this.originSslProtocols); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(VpcOriginVpcOriginEndpointConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + private Integer httpPort; + private Integer httpsPort; + private String name; + private String originProtocolPolicy; + private @Nullable VpcOriginVpcOriginEndpointConfigOriginSslProtocols originSslProtocols; + public Builder() {} + public Builder(VpcOriginVpcOriginEndpointConfig defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + this.httpPort = defaults.httpPort; + this.httpsPort = defaults.httpsPort; + this.name = defaults.name; + this.originProtocolPolicy = defaults.originProtocolPolicy; + this.originSslProtocols = defaults.originSslProtocols; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfig", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter + public Builder httpPort(Integer httpPort) { + if (httpPort == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfig", "httpPort"); + } + this.httpPort = httpPort; + return this; + } + @CustomType.Setter + public Builder httpsPort(Integer httpsPort) { + if (httpsPort == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfig", "httpsPort"); + } + this.httpsPort = httpsPort; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfig", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder originProtocolPolicy(String originProtocolPolicy) { + if (originProtocolPolicy == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfig", "originProtocolPolicy"); + } + this.originProtocolPolicy = originProtocolPolicy; + return this; + } + @CustomType.Setter + public Builder originSslProtocols(@Nullable VpcOriginVpcOriginEndpointConfigOriginSslProtocols originSslProtocols) { + + this.originSslProtocols = originSslProtocols; + return this; + } + public VpcOriginVpcOriginEndpointConfig build() { + final var _resultValue = new VpcOriginVpcOriginEndpointConfig(); + _resultValue.arn = arn; + _resultValue.httpPort = httpPort; + _resultValue.httpsPort = httpsPort; + _resultValue.name = name; + _resultValue.originProtocolPolicy = originProtocolPolicy; + _resultValue.originSslProtocols = originSslProtocols; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.java new file mode 100644 index 00000000000..b7c37132cec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/VpcOriginVpcOriginEndpointConfigOriginSslProtocols.java @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.cloudfront.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + private List items; + private Integer quantity; + + private VpcOriginVpcOriginEndpointConfigOriginSslProtocols() {} + public List items() { + return this.items; + } + public Integer quantity() { + return this.quantity; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(VpcOriginVpcOriginEndpointConfigOriginSslProtocols defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List items; + private Integer quantity; + public Builder() {} + public Builder(VpcOriginVpcOriginEndpointConfigOriginSslProtocols defaults) { + Objects.requireNonNull(defaults); + this.items = defaults.items; + this.quantity = defaults.quantity; + } + + @CustomType.Setter + public Builder items(List items) { + if (items == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigOriginSslProtocols", "items"); + } + this.items = items; + return this; + } + public Builder items(String... items) { + return items(List.of(items)); + } + @CustomType.Setter + public Builder quantity(Integer quantity) { + if (quantity == null) { + throw new MissingRequiredPropertyException("VpcOriginVpcOriginEndpointConfigOriginSslProtocols", "quantity"); + } + this.quantity = quantity; + return this; + } + public VpcOriginVpcOriginEndpointConfigOriginSslProtocols build() { + final var _resultValue = new VpcOriginVpcOriginEndpointConfigOriginSslProtocols(); + _resultValue.items = items; + _resultValue.quantity = quantity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicy.java index ac27aec1729..a39c4a59233 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicy.java @@ -128,6 +128,50 @@ * * <!--End PulumiCodeChooser --> * + * ### Field Index Policy + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.cloudwatch.LogAccountPolicy;
+ * import com.pulumi.aws.cloudwatch.LogAccountPolicyArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var fieldIndex = new LogAccountPolicy("fieldIndex", LogAccountPolicyArgs.builder()
+ *             .policyName("field-index")
+ *             .policyType("FIELD_INDEX_POLICY")
+ *             .policyDocument(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Fields", jsonArray(
+ *                         "field1", 
+ *                         "field2"
+ *                     ))
+ *                 )))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -168,14 +212,14 @@ public Output policyName() { return this.policyName; } /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ @Export(name="policyType", refs={String.class}, tree="[0]") private Output policyType; /** - * @return Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @return Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ public Output policyType() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicyArgs.java index e6d8d614ed0..8674e0a9225 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/LogAccountPolicyArgs.java @@ -47,14 +47,14 @@ public Output policyName() { } /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ @Import(name="policyType", required=true) private Output policyType; /** - * @return Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @return Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ public Output policyType() { @@ -162,7 +162,7 @@ public Builder policyName(String policyName) { } /** - * @param policyType Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @param policyType Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * * @return builder * @@ -173,7 +173,7 @@ public Builder policyType(Output policyType) { } /** - * @param policyType Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @param policyType Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/inputs/LogAccountPolicyState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/inputs/LogAccountPolicyState.java index b4a7ddca50a..17799a7cf59 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/inputs/LogAccountPolicyState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudwatch/inputs/LogAccountPolicyState.java @@ -46,14 +46,14 @@ public Optional> policyName() { } /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ @Import(name="policyType") private @Nullable Output policyType; /** - * @return Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @return Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * */ public Optional> policyType() { @@ -161,7 +161,7 @@ public Builder policyName(String policyName) { } /** - * @param policyType Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @param policyType Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * * @return builder * @@ -172,7 +172,7 @@ public Builder policyType(@Nullable Output policyType) { } /** - * @param policyType Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * @param policyType Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codeconnections/inputs/HostVpcConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codeconnections/inputs/HostVpcConfigurationArgs.java index 02ae7b2c78c..5348291576a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codeconnections/inputs/HostVpcConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codeconnections/inputs/HostVpcConfigurationArgs.java @@ -9,6 +9,8 @@ import java.lang.String; import java.util.List; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class HostVpcConfigurationArgs extends com.pulumi.resources.ResourceArgs { @@ -49,15 +51,15 @@ public Output> subnetIds() { * The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. * */ - @Import(name="tlsCertificate", required=true) - private Output tlsCertificate; + @Import(name="tlsCertificate") + private @Nullable Output tlsCertificate; /** * @return The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. * */ - public Output tlsCertificate() { - return this.tlsCertificate; + public Optional> tlsCertificate() { + return Optional.ofNullable(this.tlsCertificate); } /** @@ -170,7 +172,7 @@ public Builder subnetIds(String... subnetIds) { * @return builder * */ - public Builder tlsCertificate(Output tlsCertificate) { + public Builder tlsCertificate(@Nullable Output tlsCertificate) { $.tlsCertificate = tlsCertificate; return this; } @@ -213,9 +215,6 @@ public HostVpcConfigurationArgs build() { if ($.subnetIds == null) { throw new MissingRequiredPropertyException("HostVpcConfigurationArgs", "subnetIds"); } - if ($.tlsCertificate == null) { - throw new MissingRequiredPropertyException("HostVpcConfigurationArgs", "tlsCertificate"); - } if ($.vpcId == null) { throw new MissingRequiredPropertyException("HostVpcConfigurationArgs", "vpcId"); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/codeconnections/outputs/HostVpcConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/codeconnections/outputs/HostVpcConfiguration.java index fc51eeb17bf..9b523d6b60e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codeconnections/outputs/HostVpcConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codeconnections/outputs/HostVpcConfiguration.java @@ -8,6 +8,8 @@ import java.lang.String; import java.util.List; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class HostVpcConfiguration { @@ -25,7 +27,7 @@ public final class HostVpcConfiguration { * @return The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. * */ - private String tlsCertificate; + private @Nullable String tlsCertificate; /** * @return The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. * @@ -51,8 +53,8 @@ public List subnetIds() { * @return The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. * */ - public String tlsCertificate() { - return this.tlsCertificate; + public Optional tlsCertificate() { + return Optional.ofNullable(this.tlsCertificate); } /** * @return The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. @@ -73,7 +75,7 @@ public static Builder builder(HostVpcConfiguration defaults) { public static final class Builder { private List securityGroupIds; private List subnetIds; - private String tlsCertificate; + private @Nullable String tlsCertificate; private String vpcId; public Builder() {} public Builder(HostVpcConfiguration defaults) { @@ -107,10 +109,8 @@ public Builder subnetIds(String... subnetIds) { return subnetIds(List.of(subnetIds)); } @CustomType.Setter - public Builder tlsCertificate(String tlsCertificate) { - if (tlsCertificate == null) { - throw new MissingRequiredPropertyException("HostVpcConfiguration", "tlsCertificate"); - } + public Builder tlsCertificate(@Nullable String tlsCertificate) { + this.tlsCertificate = tlsCertificate; return this; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java b/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java index 67d3bc6b8dc..05a724bd848 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java +++ b/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java @@ -946,6 +946,11 @@ public final class Endpoints { * */ private @Nullable String memorydb; + /** + * @return Use this to override the default service endpoint URL + * + */ + private @Nullable String mgn; /** * @return Use this to override the default service endpoint URL * @@ -1411,6 +1416,11 @@ public final class Endpoints { * */ private @Nullable String timestreaminfluxdb; + /** + * @return Use this to override the default service endpoint URL + * + */ + private @Nullable String timestreamquery; /** * @return Use this to override the default service endpoint URL * @@ -2792,6 +2802,13 @@ public Optional mediastore() { public Optional memorydb() { return Optional.ofNullable(this.memorydb); } + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional mgn() { + return Optional.ofNullable(this.mgn); + } /** * @return Use this to override the default service endpoint URL * @@ -3443,6 +3460,13 @@ public Optional taxsettings() { public Optional timestreaminfluxdb() { return Optional.ofNullable(this.timestreaminfluxdb); } + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional timestreamquery() { + return Optional.ofNullable(this.timestreamquery); + } /** * @return Use this to override the default service endpoint URL * @@ -3738,6 +3762,7 @@ public static final class Builder { private @Nullable String mediapackagev2; private @Nullable String mediastore; private @Nullable String memorydb; + private @Nullable String mgn; private @Nullable String mq; private @Nullable String msk; private @Nullable String mwaa; @@ -3831,6 +3856,7 @@ public static final class Builder { private @Nullable String synthetics; private @Nullable String taxsettings; private @Nullable String timestreaminfluxdb; + private @Nullable String timestreamquery; private @Nullable String timestreamwrite; private @Nullable String transcribe; private @Nullable String transcribeservice; @@ -4035,6 +4061,7 @@ public Builder(Endpoints defaults) { this.mediapackagev2 = defaults.mediapackagev2; this.mediastore = defaults.mediastore; this.memorydb = defaults.memorydb; + this.mgn = defaults.mgn; this.mq = defaults.mq; this.msk = defaults.msk; this.mwaa = defaults.mwaa; @@ -4128,6 +4155,7 @@ public Builder(Endpoints defaults) { this.synthetics = defaults.synthetics; this.taxsettings = defaults.taxsettings; this.timestreaminfluxdb = defaults.timestreaminfluxdb; + this.timestreamquery = defaults.timestreamquery; this.timestreamwrite = defaults.timestreamwrite; this.transcribe = defaults.transcribe; this.transcribeservice = defaults.transcribeservice; @@ -5267,6 +5295,12 @@ public Builder memorydb(@Nullable String memorydb) { return this; } @CustomType.Setter + public Builder mgn(@Nullable String mgn) { + + this.mgn = mgn; + return this; + } + @CustomType.Setter public Builder mq(@Nullable String mq) { this.mq = mq; @@ -5825,6 +5859,12 @@ public Builder timestreaminfluxdb(@Nullable String timestreaminfluxdb) { return this; } @CustomType.Setter + public Builder timestreamquery(@Nullable String timestreamquery) { + + this.timestreamquery = timestreamquery; + return this; + } + @CustomType.Setter public Builder timestreamwrite(@Nullable String timestreamwrite) { this.timestreamwrite = timestreamwrite; @@ -6097,6 +6137,7 @@ public Endpoints build() { _resultValue.mediapackagev2 = mediapackagev2; _resultValue.mediastore = mediastore; _resultValue.memorydb = memorydb; + _resultValue.mgn = mgn; _resultValue.mq = mq; _resultValue.msk = msk; _resultValue.mwaa = mwaa; @@ -6190,6 +6231,7 @@ public Endpoints build() { _resultValue.synthetics = synthetics; _resultValue.taxsettings = taxsettings; _resultValue.timestreaminfluxdb = timestreaminfluxdb; + _resultValue.timestreamquery = timestreamquery; _resultValue.timestreamwrite = timestreamwrite; _resultValue.transcribe = transcribe; _resultValue.transcribeservice = transcribeservice; diff --git a/sdk/java/src/main/java/com/pulumi/aws/directconnect/Gateway.java b/sdk/java/src/main/java/com/pulumi/aws/directconnect/Gateway.java index bbd6d1c25a4..6b6159ab62e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/directconnect/Gateway.java +++ b/sdk/java/src/main/java/com/pulumi/aws/directconnect/Gateway.java @@ -77,6 +77,20 @@ public class Gateway extends com.pulumi.resources.CustomResource { public Output amazonSideAsn() { return this.amazonSideAsn; } + /** + * The ARN of the gateway. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The ARN of the gateway. + * + */ + public Output arn() { + return this.arn; + } /** * The name of the connection. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/directconnect/inputs/GatewayState.java b/sdk/java/src/main/java/com/pulumi/aws/directconnect/inputs/GatewayState.java index ad684aa761e..74ba6543293 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/directconnect/inputs/GatewayState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/directconnect/inputs/GatewayState.java @@ -30,6 +30,21 @@ public Optional> amazonSideAsn() { return Optional.ofNullable(this.amazonSideAsn); } + /** + * The ARN of the gateway. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The ARN of the gateway. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + /** * The name of the connection. * @@ -64,6 +79,7 @@ private GatewayState() {} private GatewayState(GatewayState $) { this.amazonSideAsn = $.amazonSideAsn; + this.arn = $.arn; this.name = $.name; this.ownerAccountId = $.ownerAccountId; } @@ -107,6 +123,27 @@ public Builder amazonSideAsn(String amazonSideAsn) { return amazonSideAsn(Output.of(amazonSideAsn)); } + /** + * @param arn The ARN of the gateway. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The ARN of the gateway. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + /** * @param name The name of the connection. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/directconnect/outputs/GetGatewayResult.java b/sdk/java/src/main/java/com/pulumi/aws/directconnect/outputs/GetGatewayResult.java index 101e10695ba..aebc8baa0ae 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/directconnect/outputs/GetGatewayResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/directconnect/outputs/GetGatewayResult.java @@ -15,6 +15,11 @@ public final class GetGatewayResult { * */ private String amazonSideAsn; + /** + * @return ARN of the gateway. + * + */ + private String arn; /** * @return The provider-assigned unique ID for this managed resource. * @@ -35,6 +40,13 @@ private GetGatewayResult() {} public String amazonSideAsn() { return this.amazonSideAsn; } + /** + * @return ARN of the gateway. + * + */ + public String arn() { + return this.arn; + } /** * @return The provider-assigned unique ID for this managed resource. * @@ -63,6 +75,7 @@ public static Builder builder(GetGatewayResult defaults) { @CustomType.Builder public static final class Builder { private String amazonSideAsn; + private String arn; private String id; private String name; private String ownerAccountId; @@ -70,6 +83,7 @@ public Builder() {} public Builder(GetGatewayResult defaults) { Objects.requireNonNull(defaults); this.amazonSideAsn = defaults.amazonSideAsn; + this.arn = defaults.arn; this.id = defaults.id; this.name = defaults.name; this.ownerAccountId = defaults.ownerAccountId; @@ -84,6 +98,14 @@ public Builder amazonSideAsn(String amazonSideAsn) { return this; } @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("GetGatewayResult", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter public Builder id(String id) { if (id == null) { throw new MissingRequiredPropertyException("GetGatewayResult", "id"); @@ -110,6 +132,7 @@ public Builder ownerAccountId(String ownerAccountId) { public GetGatewayResult build() { final var _resultValue = new GetGatewayResult(); _resultValue.amazonSideAsn = amazonSideAsn; + _resultValue.arn = arn; _resultValue.id = id; _resultValue.name = name; _resultValue.ownerAccountId = ownerAccountId; diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpoint.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpoint.java index 2670cf27c4a..b56884f40f1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpoint.java @@ -470,6 +470,20 @@ public Output> securityGroupIds() { public Output serviceName() { return this.serviceName; } + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + @Export(name="serviceRegion", refs={String.class}, tree="[0]") + private Output serviceRegion; + + /** + * @return The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + public Output serviceRegion() { + return this.serviceRegion; + } /** * The state of the VPC endpoint. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpointArgs.java index 01a10cd0283..f65d2105133 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpointArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcEndpointArgs.java @@ -145,6 +145,21 @@ public Output serviceName() { return this.serviceName; } + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + @Import(name="serviceRegion") + private @Nullable Output serviceRegion; + + /** + * @return The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + public Optional> serviceRegion() { + return Optional.ofNullable(this.serviceRegion); + } + /** * Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. * @@ -231,6 +246,7 @@ private VpcEndpointArgs(VpcEndpointArgs $) { this.routeTableIds = $.routeTableIds; this.securityGroupIds = $.securityGroupIds; this.serviceName = $.serviceName; + this.serviceRegion = $.serviceRegion; this.subnetConfigurations = $.subnetConfigurations; this.subnetIds = $.subnetIds; this.tags = $.tags; @@ -449,6 +465,27 @@ public Builder serviceName(String serviceName) { return serviceName(Output.of(serviceName)); } + /** + * @param serviceRegion The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + * @return builder + * + */ + public Builder serviceRegion(@Nullable Output serviceRegion) { + $.serviceRegion = serviceRegion; + return this; + } + + /** + * @param serviceRegion The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + * @return builder + * + */ + public Builder serviceRegion(String serviceRegion) { + return serviceRegion(Output.of(serviceRegion)); + } + /** * @param subnetConfigurations Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcEndpointState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcEndpointState.java index 48d827242bc..ebcbae61ce5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcEndpointState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcEndpointState.java @@ -250,6 +250,21 @@ public Optional> serviceName() { return Optional.ofNullable(this.serviceName); } + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + @Import(name="serviceRegion") + private @Nullable Output serviceRegion; + + /** + * @return The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + */ + public Optional> serviceRegion() { + return Optional.ofNullable(this.serviceRegion); + } + /** * The state of the VPC endpoint. * @@ -381,6 +396,7 @@ private VpcEndpointState(VpcEndpointState $) { this.routeTableIds = $.routeTableIds; this.securityGroupIds = $.securityGroupIds; this.serviceName = $.serviceName; + this.serviceRegion = $.serviceRegion; this.state = $.state; this.subnetConfigurations = $.subnetConfigurations; this.subnetIds = $.subnetIds; @@ -778,6 +794,27 @@ public Builder serviceName(String serviceName) { return serviceName(Output.of(serviceName)); } + /** + * @param serviceRegion The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + * @return builder + * + */ + public Builder serviceRegion(@Nullable Output serviceRegion) { + $.serviceRegion = serviceRegion; + return this; + } + + /** + * @param serviceRegion The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + * + * @return builder + * + */ + public Builder serviceRegion(String serviceRegion) { + return serviceRegion(Output.of(serviceRegion)); + } + /** * @param state The state of the VPC endpoint. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/eks/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/eks/Cluster.java index 3c8ebd56c08..74acf9b02e6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/eks/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/eks/Cluster.java @@ -115,7 +115,7 @@ * * ### EKS Cluster with EKS Auto Mode * - * > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. + * > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrap_self_managed_addons` is set to `false`. * * <!--Start PulumiCodeChooser --> *
@@ -218,6 +218,7 @@
  *                 .build())
  *             .roleArn(cluster.arn())
  *             .version("1.31")
+ *             .bootstrapSelfManagedAddons(false)
  *             .computeConfig(ClusterComputeConfigArgs.builder()
  *                 .enabled(true)
  *                 .nodePools("general-purpose")
diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java
index ba9fdef32d5..5b79776aefa 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java
@@ -398,6 +398,8 @@ public Output arn() {
     }
     /**
      * Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     @Export(name="atRestEncryptionEnabled", refs={Boolean.class}, tree="[0]")
@@ -405,6 +407,8 @@ public Output arn() {
 
     /**
      * @return Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     public Output atRestEncryptionEnabled() {
@@ -541,14 +545,18 @@ public Output description() {
         return this.description;
     }
     /**
-     * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     @Export(name="engine", refs={String.class}, tree="[0]")
     private Output engine;
 
     /**
-     * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * @return Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     public Output> engine() {
diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java
index a3bb70331d3..acccf141b28 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java
@@ -38,6 +38,8 @@ public Optional> applyImmediately() {
 
     /**
      * Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     @Import(name="atRestEncryptionEnabled")
@@ -45,6 +47,8 @@ public Optional> applyImmediately() {
 
     /**
      * @return Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     public Optional> atRestEncryptionEnabled() {
@@ -161,14 +165,18 @@ public Output description() {
     }
 
     /**
-     * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     @Import(name="engine")
     private @Nullable Output engine;
 
     /**
-     * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * @return Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     public Optional> engine() {
@@ -749,6 +757,8 @@ public Builder applyImmediately(Boolean applyImmediately) {
 
         /**
          * @param atRestEncryptionEnabled Whether to enable encryption at rest.
+         * When `engine` is `redis`, default is `false`.
+         * When `engine` is `valkey`, default is `true`.
          * 
          * @return builder
          * 
@@ -760,6 +770,8 @@ public Builder atRestEncryptionEnabled(@Nullable Output atRestEncryptio
 
         /**
          * @param atRestEncryptionEnabled Whether to enable encryption at rest.
+         * When `engine` is `redis`, default is `false`.
+         * When `engine` is `valkey`, default is `true`.
          * 
          * @return builder
          * 
@@ -920,7 +932,9 @@ public Builder description(String description) {
         }
 
         /**
-         * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+         * @param engine Name of the cache engine to be used for the clusters in this replication group.
+         * Valid values are `redis` or `valkey`.
+         * Default is `redis`.
          * 
          * @return builder
          * 
@@ -931,7 +945,9 @@ public Builder engine(@Nullable Output engine) {
         }
 
         /**
-         * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+         * @param engine Name of the cache engine to be used for the clusters in this replication group.
+         * Valid values are `redis` or `valkey`.
+         * Default is `redis`.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java
index 73dd43398c2..c1dcfd185b4 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java
@@ -52,6 +52,8 @@ public Optional> arn() {
 
     /**
      * Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     @Import(name="atRestEncryptionEnabled")
@@ -59,6 +61,8 @@ public Optional> arn() {
 
     /**
      * @return Whether to enable encryption at rest.
+     * When `engine` is `redis`, default is `false`.
+     * When `engine` is `valkey`, default is `true`.
      * 
      */
     public Optional> atRestEncryptionEnabled() {
@@ -205,14 +209,18 @@ public Optional> description() {
     }
 
     /**
-     * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     @Import(name="engine")
     private @Nullable Output engine;
 
     /**
-     * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+     * @return Name of the cache engine to be used for the clusters in this replication group.
+     * Valid values are `redis` or `valkey`.
+     * Default is `redis`.
      * 
      */
     public Optional> engine() {
@@ -905,6 +913,8 @@ public Builder arn(String arn) {
 
         /**
          * @param atRestEncryptionEnabled Whether to enable encryption at rest.
+         * When `engine` is `redis`, default is `false`.
+         * When `engine` is `valkey`, default is `true`.
          * 
          * @return builder
          * 
@@ -916,6 +926,8 @@ public Builder atRestEncryptionEnabled(@Nullable Output atRestEncryptio
 
         /**
          * @param atRestEncryptionEnabled Whether to enable encryption at rest.
+         * When `engine` is `redis`, default is `false`.
+         * When `engine` is `valkey`, default is `true`.
          * 
          * @return builder
          * 
@@ -1118,7 +1130,9 @@ public Builder description(String description) {
         }
 
         /**
-         * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+         * @param engine Name of the cache engine to be used for the clusters in this replication group.
+         * Valid values are `redis` or `valkey`.
+         * Default is `redis`.
          * 
          * @return builder
          * 
@@ -1129,7 +1143,9 @@ public Builder engine(@Nullable Output engine) {
         }
 
         /**
-         * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.
+         * @param engine Name of the cache engine to be used for the clusters in this replication group.
+         * Valid values are `redis` or `valkey`.
+         * Default is `redis`.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java
index a915c06a258..d2629c66c9b 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystem.java
@@ -215,6 +215,20 @@ public Output dnsName() {
     public Output> driveCacheType() {
         return Codegen.optional(this.driveCacheType);
     }
+    /**
+     * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    @Export(name="efaEnabled", refs={Boolean.class}, tree="[0]")
+    private Output efaEnabled;
+
+    /**
+     * @return Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    public Output efaEnabled() {
+        return this.efaEnabled;
+    }
     /**
      * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
      * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java
index 66b975e041e..b2372dba97a 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/LustreFileSystemArgs.java
@@ -143,6 +143,21 @@ public Optional> driveCacheType() {
         return Optional.ofNullable(this.driveCacheType);
     }
 
+    /**
+     * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    @Import(name="efaEnabled")
+    private @Nullable Output efaEnabled;
+
+    /**
+     * @return Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    public Optional> efaEnabled() {
+        return Optional.ofNullable(this.efaEnabled);
+    }
+
     /**
      * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
      * 
@@ -421,6 +436,7 @@ private LustreFileSystemArgs(LustreFileSystemArgs $) {
         this.dataCompressionType = $.dataCompressionType;
         this.deploymentType = $.deploymentType;
         this.driveCacheType = $.driveCacheType;
+        this.efaEnabled = $.efaEnabled;
         this.exportPath = $.exportPath;
         this.fileSystemTypeVersion = $.fileSystemTypeVersion;
         this.finalBackupTags = $.finalBackupTags;
@@ -626,6 +642,27 @@ public Builder driveCacheType(String driveCacheType) {
             return driveCacheType(Output.of(driveCacheType));
         }
 
+        /**
+         * @param efaEnabled Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder efaEnabled(@Nullable Output efaEnabled) {
+            $.efaEnabled = efaEnabled;
+            return this;
+        }
+
+        /**
+         * @param efaEnabled Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder efaEnabled(Boolean efaEnabled) {
+            return efaEnabled(Output.of(efaEnabled));
+        }
+
         /**
          * @param exportPath S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java
index d8c9f1b9c8f..8cb71e3bda0 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/fsx/inputs/LustreFileSystemState.java
@@ -172,6 +172,21 @@ public Optional> driveCacheType() {
         return Optional.ofNullable(this.driveCacheType);
     }
 
+    /**
+     * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    @Import(name="efaEnabled")
+    private @Nullable Output efaEnabled;
+
+    /**
+     * @return Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+     * 
+     */
+    public Optional> efaEnabled() {
+        return Optional.ofNullable(this.efaEnabled);
+    }
+
     /**
      * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
      * 
@@ -535,6 +550,7 @@ private LustreFileSystemState(LustreFileSystemState $) {
         this.deploymentType = $.deploymentType;
         this.dnsName = $.dnsName;
         this.driveCacheType = $.driveCacheType;
+        this.efaEnabled = $.efaEnabled;
         this.exportPath = $.exportPath;
         this.fileSystemTypeVersion = $.fileSystemTypeVersion;
         this.finalBackupTags = $.finalBackupTags;
@@ -787,6 +803,27 @@ public Builder driveCacheType(String driveCacheType) {
             return driveCacheType(Output.of(driveCacheType));
         }
 
+        /**
+         * @param efaEnabled Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder efaEnabled(@Nullable Output efaEnabled) {
+            $.efaEnabled = efaEnabled;
+            return this;
+        }
+
+        /**
+         * @param efaEnabled Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder efaEnabled(Boolean efaEnabled) {
+            return efaEnabled(Output.of(efaEnabled));
+        }
+
         /**
          * @param exportPath S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java
index d1220be0104..6ce31035f96 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java
@@ -2820,6 +2820,21 @@ public Optional> memorydb() {
         return Optional.ofNullable(this.memorydb);
     }
 
+    /**
+     * Use this to override the default service endpoint URL
+     * 
+     */
+    @Import(name="mgn")
+    private @Nullable Output mgn;
+
+    /**
+     * @return Use this to override the default service endpoint URL
+     * 
+     */
+    public Optional> mgn() {
+        return Optional.ofNullable(this.mgn);
+    }
+
     /**
      * Use this to override the default service endpoint URL
      * 
@@ -4215,6 +4230,21 @@ public Optional> timestreaminfluxdb() {
         return Optional.ofNullable(this.timestreaminfluxdb);
     }
 
+    /**
+     * Use this to override the default service endpoint URL
+     * 
+     */
+    @Import(name="timestreamquery")
+    private @Nullable Output timestreamquery;
+
+    /**
+     * @return Use this to override the default service endpoint URL
+     * 
+     */
+    public Optional> timestreamquery() {
+        return Optional.ofNullable(this.timestreamquery);
+    }
+
     /**
      * Use this to override the default service endpoint URL
      * 
@@ -4615,6 +4645,7 @@ private ProviderEndpointArgs(ProviderEndpointArgs $) {
         this.mediapackagev2 = $.mediapackagev2;
         this.mediastore = $.mediastore;
         this.memorydb = $.memorydb;
+        this.mgn = $.mgn;
         this.mq = $.mq;
         this.msk = $.msk;
         this.mwaa = $.mwaa;
@@ -4708,6 +4739,7 @@ private ProviderEndpointArgs(ProviderEndpointArgs $) {
         this.synthetics = $.synthetics;
         this.taxsettings = $.taxsettings;
         this.timestreaminfluxdb = $.timestreaminfluxdb;
+        this.timestreamquery = $.timestreamquery;
         this.timestreamwrite = $.timestreamwrite;
         this.transcribe = $.transcribe;
         this.transcribeservice = $.transcribeservice;
@@ -8669,6 +8701,27 @@ public Builder memorydb(String memorydb) {
             return memorydb(Output.of(memorydb));
         }
 
+        /**
+         * @param mgn Use this to override the default service endpoint URL
+         * 
+         * @return builder
+         * 
+         */
+        public Builder mgn(@Nullable Output mgn) {
+            $.mgn = mgn;
+            return this;
+        }
+
+        /**
+         * @param mgn Use this to override the default service endpoint URL
+         * 
+         * @return builder
+         * 
+         */
+        public Builder mgn(String mgn) {
+            return mgn(Output.of(mgn));
+        }
+
         /**
          * @param mq Use this to override the default service endpoint URL
          * 
@@ -10622,6 +10675,27 @@ public Builder timestreaminfluxdb(String timestreaminfluxdb) {
             return timestreaminfluxdb(Output.of(timestreaminfluxdb));
         }
 
+        /**
+         * @param timestreamquery Use this to override the default service endpoint URL
+         * 
+         * @return builder
+         * 
+         */
+        public Builder timestreamquery(@Nullable Output timestreamquery) {
+            $.timestreamquery = timestreamquery;
+            return this;
+        }
+
+        /**
+         * @param timestreamquery Use this to override the default service endpoint URL
+         * 
+         * @return builder
+         * 
+         */
+        public Builder timestreamquery(String timestreamquery) {
+            return timestreamquery(Output.of(timestreamquery));
+        }
+
         /**
          * @param timestreamwrite Use this to override the default service endpoint URL
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/Permissions.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/Permissions.java
index d016b5ec66a..e38ec19694b 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/Permissions.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/Permissions.java
@@ -165,6 +165,21 @@
  * | ---- | ---- |
  * | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) |
  * 
+ * ## `ALLIAMPrincipals` group
+ * 
+ * AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined.
+ * 
+ * resource "aws.lakeformation.Permissions" "example" {
+ *   permissions = ["SELECT"]
+ *   principal   = "123456789012:IAMPrincipals"
+ * 
+ *   table_with_columns {
+ *     database_name = aws_glue_catalog_table.example.database_name
+ *     name          = aws_glue_catalog_table.example.name
+ *     column_names  = ["event"]
+ *   }
+ * }
+ * 
  * ## Using Lake Formation Permissions
  * 
  * Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed.
diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerMutualAuthenticationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerMutualAuthenticationArgs.java
index 322e14e9590..7e06929a0e3 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerMutualAuthenticationArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerMutualAuthenticationArgs.java
@@ -17,6 +17,21 @@ public final class ListenerMutualAuthenticationArgs extends com.pulumi.resources
 
     public static final ListenerMutualAuthenticationArgs Empty = new ListenerMutualAuthenticationArgs();
 
+    /**
+     * Valid values are `off` and `on`.
+     * 
+     */
+    @Import(name="advertiseTrustStoreCaNames")
+    private @Nullable Output advertiseTrustStoreCaNames;
+
+    /**
+     * @return Valid values are `off` and `on`.
+     * 
+     */
+    public Optional> advertiseTrustStoreCaNames() {
+        return Optional.ofNullable(this.advertiseTrustStoreCaNames);
+    }
+
     /**
      * Whether client certificate expiry is ignored. Default is `false`.
      * 
@@ -65,6 +80,7 @@ public Optional> trustStoreArn() {
     private ListenerMutualAuthenticationArgs() {}
 
     private ListenerMutualAuthenticationArgs(ListenerMutualAuthenticationArgs $) {
+        this.advertiseTrustStoreCaNames = $.advertiseTrustStoreCaNames;
         this.ignoreClientCertificateExpiry = $.ignoreClientCertificateExpiry;
         this.mode = $.mode;
         this.trustStoreArn = $.trustStoreArn;
@@ -88,6 +104,27 @@ public Builder(ListenerMutualAuthenticationArgs defaults) {
             $ = new ListenerMutualAuthenticationArgs(Objects.requireNonNull(defaults));
         }
 
+        /**
+         * @param advertiseTrustStoreCaNames Valid values are `off` and `on`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder advertiseTrustStoreCaNames(@Nullable Output advertiseTrustStoreCaNames) {
+            $.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames;
+            return this;
+        }
+
+        /**
+         * @param advertiseTrustStoreCaNames Valid values are `off` and `on`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder advertiseTrustStoreCaNames(String advertiseTrustStoreCaNames) {
+            return advertiseTrustStoreCaNames(Output.of(advertiseTrustStoreCaNames));
+        }
+
         /**
          * @param ignoreClientCertificateExpiry Whether client certificate expiry is ignored. Default is `false`.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerMutualAuthentication.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerMutualAuthentication.java
index 69a122847f9..3843d507b0f 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerMutualAuthentication.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/ListenerMutualAuthentication.java
@@ -13,6 +13,11 @@
 
 @CustomType
 public final class ListenerMutualAuthentication {
+    /**
+     * @return Valid values are `off` and `on`.
+     * 
+     */
+    private @Nullable String advertiseTrustStoreCaNames;
     /**
      * @return Whether client certificate expiry is ignored. Default is `false`.
      * 
@@ -30,6 +35,13 @@ public final class ListenerMutualAuthentication {
     private @Nullable String trustStoreArn;
 
     private ListenerMutualAuthentication() {}
+    /**
+     * @return Valid values are `off` and `on`.
+     * 
+     */
+    public Optional advertiseTrustStoreCaNames() {
+        return Optional.ofNullable(this.advertiseTrustStoreCaNames);
+    }
     /**
      * @return Whether client certificate expiry is ignored. Default is `false`.
      * 
@@ -61,17 +73,25 @@ public static Builder builder(ListenerMutualAuthentication defaults) {
     }
     @CustomType.Builder
     public static final class Builder {
+        private @Nullable String advertiseTrustStoreCaNames;
         private @Nullable Boolean ignoreClientCertificateExpiry;
         private String mode;
         private @Nullable String trustStoreArn;
         public Builder() {}
         public Builder(ListenerMutualAuthentication defaults) {
     	      Objects.requireNonNull(defaults);
+    	      this.advertiseTrustStoreCaNames = defaults.advertiseTrustStoreCaNames;
     	      this.ignoreClientCertificateExpiry = defaults.ignoreClientCertificateExpiry;
     	      this.mode = defaults.mode;
     	      this.trustStoreArn = defaults.trustStoreArn;
         }
 
+        @CustomType.Setter
+        public Builder advertiseTrustStoreCaNames(@Nullable String advertiseTrustStoreCaNames) {
+
+            this.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames;
+            return this;
+        }
         @CustomType.Setter
         public Builder ignoreClientCertificateExpiry(@Nullable Boolean ignoreClientCertificateExpiry) {
 
@@ -94,6 +114,7 @@ public Builder trustStoreArn(@Nullable String trustStoreArn) {
         }
         public ListenerMutualAuthentication build() {
             final var _resultValue = new ListenerMutualAuthentication();
+            _resultValue.advertiseTrustStoreCaNames = advertiseTrustStoreCaNames;
             _resultValue.ignoreClientCertificateExpiry = ignoreClientCertificateExpiry;
             _resultValue.mode = mode;
             _resultValue.trustStoreArn = trustStoreArn;
diff --git a/sdk/java/src/main/java/com/pulumi/aws/licensemanager/outputs/GetReceivedLicenseEntitlement.java b/sdk/java/src/main/java/com/pulumi/aws/licensemanager/outputs/GetReceivedLicenseEntitlement.java
index 8dfd5864549..eb2e42e3781 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/licensemanager/outputs/GetReceivedLicenseEntitlement.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/licensemanager/outputs/GetReceivedLicenseEntitlement.java
@@ -27,6 +27,11 @@ public final class GetReceivedLicenseEntitlement {
      * 
      */
     private String name;
+    /**
+     * @return Indicates whether overages are allowed.
+     * 
+     */
+    private Boolean overage;
     /**
      * @return Entitlement unit.
      * 
@@ -60,6 +65,13 @@ public Integer maxCount() {
     public String name() {
         return this.name;
     }
+    /**
+     * @return Indicates whether overages are allowed.
+     * 
+     */
+    public Boolean overage() {
+        return this.overage;
+    }
     /**
      * @return Entitlement unit.
      * 
@@ -87,6 +99,7 @@ public static final class Builder {
         private Boolean allowCheckIn;
         private Integer maxCount;
         private String name;
+        private Boolean overage;
         private String unit;
         private String value;
         public Builder() {}
@@ -95,6 +108,7 @@ public Builder(GetReceivedLicenseEntitlement defaults) {
     	      this.allowCheckIn = defaults.allowCheckIn;
     	      this.maxCount = defaults.maxCount;
     	      this.name = defaults.name;
+    	      this.overage = defaults.overage;
     	      this.unit = defaults.unit;
     	      this.value = defaults.value;
         }
@@ -124,6 +138,14 @@ public Builder name(String name) {
             return this;
         }
         @CustomType.Setter
+        public Builder overage(Boolean overage) {
+            if (overage == null) {
+              throw new MissingRequiredPropertyException("GetReceivedLicenseEntitlement", "overage");
+            }
+            this.overage = overage;
+            return this;
+        }
+        @CustomType.Setter
         public Builder unit(String unit) {
             if (unit == null) {
               throw new MissingRequiredPropertyException("GetReceivedLicenseEntitlement", "unit");
@@ -144,6 +166,7 @@ public GetReceivedLicenseEntitlement build() {
             _resultValue.allowCheckIn = allowCheckIn;
             _resultValue.maxCount = maxCount;
             _resultValue.name = name;
+            _resultValue.overage = overage;
             _resultValue.unit = unit;
             _resultValue.value = value;
             return _resultValue;
diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/Cluster.java
index 96daa5e9343..299555fad47 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/memorydb/Cluster.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/Cluster.java
@@ -239,6 +239,20 @@ public Output> kmsKeyArn() {
     public Output maintenanceWindow() {
         return this.maintenanceWindow;
     }
+    /**
+     * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+     * 
+     */
+    @Export(name="multiRegionClusterName", refs={String.class}, tree="[0]")
+    private Output multiRegionClusterName;
+
+    /**
+     * @return The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+     * 
+     */
+    public Output> multiRegionClusterName() {
+        return Codegen.optional(this.multiRegionClusterName);
+    }
     /**
      * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.
      * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/ClusterArgs.java
index d7ffd878744..b1ed011c81a 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/memorydb/ClusterArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/ClusterArgs.java
@@ -155,6 +155,21 @@ public Optional> maintenanceWindow() {
         return Optional.ofNullable(this.maintenanceWindow);
     }
 
+    /**
+     * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+     * 
+     */
+    @Import(name="multiRegionClusterName")
+    private @Nullable Output multiRegionClusterName;
+
+    /**
+     * @return The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+     * 
+     */
+    public Optional> multiRegionClusterName() {
+        return Optional.ofNullable(this.multiRegionClusterName);
+    }
+
     /**
      * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.
      * 
@@ -411,6 +426,7 @@ private ClusterArgs(ClusterArgs $) {
         this.finalSnapshotName = $.finalSnapshotName;
         this.kmsKeyArn = $.kmsKeyArn;
         this.maintenanceWindow = $.maintenanceWindow;
+        this.multiRegionClusterName = $.multiRegionClusterName;
         this.name = $.name;
         this.namePrefix = $.namePrefix;
         this.nodeType = $.nodeType;
@@ -636,6 +652,27 @@ public Builder maintenanceWindow(String maintenanceWindow) {
             return maintenanceWindow(Output.of(maintenanceWindow));
         }
 
+        /**
+         * @param multiRegionClusterName The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder multiRegionClusterName(@Nullable Output multiRegionClusterName) {
+            $.multiRegionClusterName = multiRegionClusterName;
+            return this;
+        }
+
+        /**
+         * @param multiRegionClusterName The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder multiRegionClusterName(String multiRegionClusterName) {
+            return multiRegionClusterName(Output.of(multiRegionClusterName));
+        }
+
         /**
          * @param name Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionCluster.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionCluster.java
new file mode 100644
index 00000000000..bb9c8c19d7e
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionCluster.java
@@ -0,0 +1,337 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.aws.memorydb;
+
+import com.pulumi.aws.Utilities;
+import com.pulumi.aws.memorydb.MultiRegionClusterArgs;
+import com.pulumi.aws.memorydb.inputs.MultiRegionClusterState;
+import com.pulumi.aws.memorydb.outputs.MultiRegionClusterTimeouts;
+import com.pulumi.core.Output;
+import com.pulumi.core.annotations.Export;
+import com.pulumi.core.annotations.ResourceType;
+import com.pulumi.core.internal.Codegen;
+import java.lang.Boolean;
+import java.lang.Integer;
+import java.lang.String;
+import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+/**
+ * Provides a MemoryDB Multi Region Cluster.
+ * 
+ * More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html).
+ * 
+ * ## Example Usage
+ * 
+ * <!--Start PulumiCodeChooser -->
+ * 
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.memorydb.MultiRegionCluster;
+ * import com.pulumi.aws.memorydb.MultiRegionClusterArgs;
+ * import com.pulumi.aws.memorydb.Cluster;
+ * import com.pulumi.aws.memorydb.ClusterArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new MultiRegionCluster("example", MultiRegionClusterArgs.builder()
+ *             .multiRegionClusterNameSuffix("example")
+ *             .nodeType("db.r7g.xlarge")
+ *             .build());
+ * 
+ *         var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()
+ *             .aclName(exampleAwsMemorydbAcl.id())
+ *             .autoMinorVersionUpgrade(false)
+ *             .name("example")
+ *             .nodeType("db.t4g.small")
+ *             .numShards(2)
+ *             .securityGroupIds(exampleAwsSecurityGroup.id())
+ *             .snapshotRetentionLimit(7)
+ *             .subnetGroupName(exampleAwsMemorydbSubnetGroup.id())
+ *             .multiRegionClusterName(example.multiRegionClusterName())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: + * + * ```sh + * $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example + * ``` + * + */ +@ResourceType(type="aws:memorydb/multiRegionCluster:MultiRegionCluster") +public class MultiRegionCluster extends com.pulumi.resources.CustomResource { + /** + * The ARN of the multi-region cluster. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The ARN of the multi-region cluster. + * + */ + public Output arn() { + return this.arn; + } + /** + * description for the multi-region cluster. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return description for the multi-region cluster. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + @Export(name="engine", refs={String.class}, tree="[0]") + private Output engine; + + /** + * @return The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + public Output engine() { + return this.engine; + } + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + @Export(name="engineVersion", refs={String.class}, tree="[0]") + private Output engineVersion; + + /** + * @return The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + public Output engineVersion() { + return this.engineVersion; + } + /** + * The name of the multi-region cluster. + * + */ + @Export(name="multiRegionClusterName", refs={String.class}, tree="[0]") + private Output multiRegionClusterName; + + /** + * @return The name of the multi-region cluster. + * + */ + public Output multiRegionClusterName() { + return this.multiRegionClusterName; + } + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + @Export(name="multiRegionClusterNameSuffix", refs={String.class}, tree="[0]") + private Output multiRegionClusterNameSuffix; + + /** + * @return A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + public Output multiRegionClusterNameSuffix() { + return this.multiRegionClusterNameSuffix; + } + /** + * The name of the multi-region parameter group to be associated with the cluster. + * + */ + @Export(name="multiRegionParameterGroupName", refs={String.class}, tree="[0]") + private Output multiRegionParameterGroupName; + + /** + * @return The name of the multi-region parameter group to be associated with the cluster. + * + */ + public Output multiRegionParameterGroupName() { + return this.multiRegionParameterGroupName; + } + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + @Export(name="nodeType", refs={String.class}, tree="[0]") + private Output nodeType; + + /** + * @return The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + public Output nodeType() { + return this.nodeType; + } + /** + * The number of shards for the multi-region cluster. + * + */ + @Export(name="numShards", refs={Integer.class}, tree="[0]") + private Output numShards; + + /** + * @return The number of shards for the multi-region cluster. + * + */ + public Output numShards() { + return this.numShards; + } + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + public Output status() { + return this.status; + } + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={MultiRegionClusterTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * A flag to enable in-transit encryption on the cluster. + * + */ + @Export(name="tlsEnabled", refs={Boolean.class}, tree="[0]") + private Output tlsEnabled; + + /** + * @return A flag to enable in-transit encryption on the cluster. + * + */ + public Output tlsEnabled() { + return this.tlsEnabled; + } + @Export(name="updateStrategy", refs={String.class}, tree="[0]") + private Output updateStrategy; + + public Output> updateStrategy() { + return Codegen.optional(this.updateStrategy); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MultiRegionCluster(java.lang.String name) { + this(name, MultiRegionClusterArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MultiRegionCluster(java.lang.String name, MultiRegionClusterArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MultiRegionCluster(java.lang.String name, MultiRegionClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private MultiRegionCluster(java.lang.String name, Output id, @Nullable MultiRegionClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:memorydb/multiRegionCluster:MultiRegionCluster", name, state, makeResourceOptions(options, id), false); + } + + private static MultiRegionClusterArgs makeArgs(MultiRegionClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MultiRegionClusterArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MultiRegionCluster get(java.lang.String name, Output id, @Nullable MultiRegionClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MultiRegionCluster(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionClusterArgs.java new file mode 100644 index 00000000000..8c7068e1cfa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/MultiRegionClusterArgs.java @@ -0,0 +1,432 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.memorydb; + +import com.pulumi.aws.memorydb.inputs.MultiRegionClusterTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MultiRegionClusterArgs extends com.pulumi.resources.ResourceArgs { + + public static final MultiRegionClusterArgs Empty = new MultiRegionClusterArgs(); + + /** + * description for the multi-region cluster. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return description for the multi-region cluster. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + @Import(name="engine") + private @Nullable Output engine; + + /** + * @return The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + public Optional> engine() { + return Optional.ofNullable(this.engine); + } + + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + @Import(name="engineVersion") + private @Nullable Output engineVersion; + + /** + * @return The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + public Optional> engineVersion() { + return Optional.ofNullable(this.engineVersion); + } + + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + @Import(name="multiRegionClusterNameSuffix", required=true) + private Output multiRegionClusterNameSuffix; + + /** + * @return A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + public Output multiRegionClusterNameSuffix() { + return this.multiRegionClusterNameSuffix; + } + + /** + * The name of the multi-region parameter group to be associated with the cluster. + * + */ + @Import(name="multiRegionParameterGroupName") + private @Nullable Output multiRegionParameterGroupName; + + /** + * @return The name of the multi-region parameter group to be associated with the cluster. + * + */ + public Optional> multiRegionParameterGroupName() { + return Optional.ofNullable(this.multiRegionParameterGroupName); + } + + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + @Import(name="nodeType", required=true) + private Output nodeType; + + /** + * @return The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + public Output nodeType() { + return this.nodeType; + } + + /** + * The number of shards for the multi-region cluster. + * + */ + @Import(name="numShards") + private @Nullable Output numShards; + + /** + * @return The number of shards for the multi-region cluster. + * + */ + public Optional> numShards() { + return Optional.ofNullable(this.numShards); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * A flag to enable in-transit encryption on the cluster. + * + */ + @Import(name="tlsEnabled") + private @Nullable Output tlsEnabled; + + /** + * @return A flag to enable in-transit encryption on the cluster. + * + */ + public Optional> tlsEnabled() { + return Optional.ofNullable(this.tlsEnabled); + } + + @Import(name="updateStrategy") + private @Nullable Output updateStrategy; + + public Optional> updateStrategy() { + return Optional.ofNullable(this.updateStrategy); + } + + private MultiRegionClusterArgs() {} + + private MultiRegionClusterArgs(MultiRegionClusterArgs $) { + this.description = $.description; + this.engine = $.engine; + this.engineVersion = $.engineVersion; + this.multiRegionClusterNameSuffix = $.multiRegionClusterNameSuffix; + this.multiRegionParameterGroupName = $.multiRegionParameterGroupName; + this.nodeType = $.nodeType; + this.numShards = $.numShards; + this.tags = $.tags; + this.timeouts = $.timeouts; + this.tlsEnabled = $.tlsEnabled; + this.updateStrategy = $.updateStrategy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MultiRegionClusterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MultiRegionClusterArgs $; + + public Builder() { + $ = new MultiRegionClusterArgs(); + } + + public Builder(MultiRegionClusterArgs defaults) { + $ = new MultiRegionClusterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description description for the multi-region cluster. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description description for the multi-region cluster. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engine The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + * @return builder + * + */ + public Builder engine(@Nullable Output engine) { + $.engine = engine; + return this; + } + + /** + * @param engine The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + * @return builder + * + */ + public Builder engine(String engine) { + return engine(Output.of(engine)); + } + + /** + * @param engineVersion The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + * @return builder + * + */ + public Builder engineVersion(@Nullable Output engineVersion) { + $.engineVersion = engineVersion; + return this; + } + + /** + * @param engineVersion The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + * @return builder + * + */ + public Builder engineVersion(String engineVersion) { + return engineVersion(Output.of(engineVersion)); + } + + /** + * @param multiRegionClusterNameSuffix A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + * @return builder + * + */ + public Builder multiRegionClusterNameSuffix(Output multiRegionClusterNameSuffix) { + $.multiRegionClusterNameSuffix = multiRegionClusterNameSuffix; + return this; + } + + /** + * @param multiRegionClusterNameSuffix A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + * @return builder + * + */ + public Builder multiRegionClusterNameSuffix(String multiRegionClusterNameSuffix) { + return multiRegionClusterNameSuffix(Output.of(multiRegionClusterNameSuffix)); + } + + /** + * @param multiRegionParameterGroupName The name of the multi-region parameter group to be associated with the cluster. + * + * @return builder + * + */ + public Builder multiRegionParameterGroupName(@Nullable Output multiRegionParameterGroupName) { + $.multiRegionParameterGroupName = multiRegionParameterGroupName; + return this; + } + + /** + * @param multiRegionParameterGroupName The name of the multi-region parameter group to be associated with the cluster. + * + * @return builder + * + */ + public Builder multiRegionParameterGroupName(String multiRegionParameterGroupName) { + return multiRegionParameterGroupName(Output.of(multiRegionParameterGroupName)); + } + + /** + * @param nodeType The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder nodeType(Output nodeType) { + $.nodeType = nodeType; + return this; + } + + /** + * @param nodeType The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder nodeType(String nodeType) { + return nodeType(Output.of(nodeType)); + } + + /** + * @param numShards The number of shards for the multi-region cluster. + * + * @return builder + * + */ + public Builder numShards(@Nullable Output numShards) { + $.numShards = numShards; + return this; + } + + /** + * @param numShards The number of shards for the multi-region cluster. + * + * @return builder + * + */ + public Builder numShards(Integer numShards) { + return numShards(Output.of(numShards)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(MultiRegionClusterTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param tlsEnabled A flag to enable in-transit encryption on the cluster. + * + * @return builder + * + */ + public Builder tlsEnabled(@Nullable Output tlsEnabled) { + $.tlsEnabled = tlsEnabled; + return this; + } + + /** + * @param tlsEnabled A flag to enable in-transit encryption on the cluster. + * + * @return builder + * + */ + public Builder tlsEnabled(Boolean tlsEnabled) { + return tlsEnabled(Output.of(tlsEnabled)); + } + + public Builder updateStrategy(@Nullable Output updateStrategy) { + $.updateStrategy = updateStrategy; + return this; + } + + public Builder updateStrategy(String updateStrategy) { + return updateStrategy(Output.of(updateStrategy)); + } + + public MultiRegionClusterArgs build() { + if ($.multiRegionClusterNameSuffix == null) { + throw new MissingRequiredPropertyException("MultiRegionClusterArgs", "multiRegionClusterNameSuffix"); + } + if ($.nodeType == null) { + throw new MissingRequiredPropertyException("MultiRegionClusterArgs", "nodeType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/ClusterState.java index fa4d63ba35a..c534a280d6e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/ClusterState.java @@ -193,6 +193,21 @@ public Optional> maintenanceWindow() { return Optional.ofNullable(this.maintenanceWindow); } + /** + * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + * + */ + @Import(name="multiRegionClusterName") + private @Nullable Output multiRegionClusterName; + + /** + * @return The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + * + */ + public Optional> multiRegionClusterName() { + return Optional.ofNullable(this.multiRegionClusterName); + } + /** * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. * @@ -490,6 +505,7 @@ private ClusterState(ClusterState $) { this.finalSnapshotName = $.finalSnapshotName; this.kmsKeyArn = $.kmsKeyArn; this.maintenanceWindow = $.maintenanceWindow; + this.multiRegionClusterName = $.multiRegionClusterName; this.name = $.name; this.namePrefix = $.namePrefix; this.nodeType = $.nodeType; @@ -772,6 +788,27 @@ public Builder maintenanceWindow(String maintenanceWindow) { return maintenanceWindow(Output.of(maintenanceWindow)); } + /** + * @param multiRegionClusterName The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + * + * @return builder + * + */ + public Builder multiRegionClusterName(@Nullable Output multiRegionClusterName) { + $.multiRegionClusterName = multiRegionClusterName; + return this; + } + + /** + * @param multiRegionClusterName The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + * + * @return builder + * + */ + public Builder multiRegionClusterName(String multiRegionClusterName) { + return multiRegionClusterName(Output.of(multiRegionClusterName)); + } + /** * @param name Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterState.java new file mode 100644 index 00000000000..678a83024ee --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterState.java @@ -0,0 +1,569 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.memorydb.inputs; + +import com.pulumi.aws.memorydb.inputs.MultiRegionClusterTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MultiRegionClusterState extends com.pulumi.resources.ResourceArgs { + + public static final MultiRegionClusterState Empty = new MultiRegionClusterState(); + + /** + * The ARN of the multi-region cluster. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The ARN of the multi-region cluster. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * description for the multi-region cluster. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return description for the multi-region cluster. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + @Import(name="engine") + private @Nullable Output engine; + + /** + * @return The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + */ + public Optional> engine() { + return Optional.ofNullable(this.engine); + } + + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + @Import(name="engineVersion") + private @Nullable Output engineVersion; + + /** + * @return The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + */ + public Optional> engineVersion() { + return Optional.ofNullable(this.engineVersion); + } + + /** + * The name of the multi-region cluster. + * + */ + @Import(name="multiRegionClusterName") + private @Nullable Output multiRegionClusterName; + + /** + * @return The name of the multi-region cluster. + * + */ + public Optional> multiRegionClusterName() { + return Optional.ofNullable(this.multiRegionClusterName); + } + + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + @Import(name="multiRegionClusterNameSuffix") + private @Nullable Output multiRegionClusterNameSuffix; + + /** + * @return A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + */ + public Optional> multiRegionClusterNameSuffix() { + return Optional.ofNullable(this.multiRegionClusterNameSuffix); + } + + /** + * The name of the multi-region parameter group to be associated with the cluster. + * + */ + @Import(name="multiRegionParameterGroupName") + private @Nullable Output multiRegionParameterGroupName; + + /** + * @return The name of the multi-region parameter group to be associated with the cluster. + * + */ + public Optional> multiRegionParameterGroupName() { + return Optional.ofNullable(this.multiRegionParameterGroupName); + } + + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + @Import(name="nodeType") + private @Nullable Output nodeType; + + /** + * @return The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + */ + public Optional> nodeType() { + return Optional.ofNullable(this.nodeType); + } + + /** + * The number of shards for the multi-region cluster. + * + */ + @Import(name="numShards") + private @Nullable Output numShards; + + /** + * @return The number of shards for the multi-region cluster. + * + */ + public Optional> numShards() { + return Optional.ofNullable(this.numShards); + } + + @Import(name="status") + private @Nullable Output status; + + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * A flag to enable in-transit encryption on the cluster. + * + */ + @Import(name="tlsEnabled") + private @Nullable Output tlsEnabled; + + /** + * @return A flag to enable in-transit encryption on the cluster. + * + */ + public Optional> tlsEnabled() { + return Optional.ofNullable(this.tlsEnabled); + } + + @Import(name="updateStrategy") + private @Nullable Output updateStrategy; + + public Optional> updateStrategy() { + return Optional.ofNullable(this.updateStrategy); + } + + private MultiRegionClusterState() {} + + private MultiRegionClusterState(MultiRegionClusterState $) { + this.arn = $.arn; + this.description = $.description; + this.engine = $.engine; + this.engineVersion = $.engineVersion; + this.multiRegionClusterName = $.multiRegionClusterName; + this.multiRegionClusterNameSuffix = $.multiRegionClusterNameSuffix; + this.multiRegionParameterGroupName = $.multiRegionParameterGroupName; + this.nodeType = $.nodeType; + this.numShards = $.numShards; + this.status = $.status; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + this.tlsEnabled = $.tlsEnabled; + this.updateStrategy = $.updateStrategy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MultiRegionClusterState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MultiRegionClusterState $; + + public Builder() { + $ = new MultiRegionClusterState(); + } + + public Builder(MultiRegionClusterState defaults) { + $ = new MultiRegionClusterState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The ARN of the multi-region cluster. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The ARN of the multi-region cluster. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param description description for the multi-region cluster. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description description for the multi-region cluster. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engine The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + * @return builder + * + */ + public Builder engine(@Nullable Output engine) { + $.engine = engine; + return this; + } + + /** + * @param engine The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + * + * @return builder + * + */ + public Builder engine(String engine) { + return engine(Output.of(engine)); + } + + /** + * @param engineVersion The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + * @return builder + * + */ + public Builder engineVersion(@Nullable Output engineVersion) { + $.engineVersion = engineVersion; + return this; + } + + /** + * @param engineVersion The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + * + * @return builder + * + */ + public Builder engineVersion(String engineVersion) { + return engineVersion(Output.of(engineVersion)); + } + + /** + * @param multiRegionClusterName The name of the multi-region cluster. + * + * @return builder + * + */ + public Builder multiRegionClusterName(@Nullable Output multiRegionClusterName) { + $.multiRegionClusterName = multiRegionClusterName; + return this; + } + + /** + * @param multiRegionClusterName The name of the multi-region cluster. + * + * @return builder + * + */ + public Builder multiRegionClusterName(String multiRegionClusterName) { + return multiRegionClusterName(Output.of(multiRegionClusterName)); + } + + /** + * @param multiRegionClusterNameSuffix A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + * @return builder + * + */ + public Builder multiRegionClusterNameSuffix(@Nullable Output multiRegionClusterNameSuffix) { + $.multiRegionClusterNameSuffix = multiRegionClusterNameSuffix; + return this; + } + + /** + * @param multiRegionClusterNameSuffix A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + * + * @return builder + * + */ + public Builder multiRegionClusterNameSuffix(String multiRegionClusterNameSuffix) { + return multiRegionClusterNameSuffix(Output.of(multiRegionClusterNameSuffix)); + } + + /** + * @param multiRegionParameterGroupName The name of the multi-region parameter group to be associated with the cluster. + * + * @return builder + * + */ + public Builder multiRegionParameterGroupName(@Nullable Output multiRegionParameterGroupName) { + $.multiRegionParameterGroupName = multiRegionParameterGroupName; + return this; + } + + /** + * @param multiRegionParameterGroupName The name of the multi-region parameter group to be associated with the cluster. + * + * @return builder + * + */ + public Builder multiRegionParameterGroupName(String multiRegionParameterGroupName) { + return multiRegionParameterGroupName(Output.of(multiRegionParameterGroupName)); + } + + /** + * @param nodeType The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder nodeType(@Nullable Output nodeType) { + $.nodeType = nodeType; + return this; + } + + /** + * @param nodeType The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder nodeType(String nodeType) { + return nodeType(Output.of(nodeType)); + } + + /** + * @param numShards The number of shards for the multi-region cluster. + * + * @return builder + * + */ + public Builder numShards(@Nullable Output numShards) { + $.numShards = numShards; + return this; + } + + /** + * @param numShards The number of shards for the multi-region cluster. + * + * @return builder + * + */ + public Builder numShards(Integer numShards) { + return numShards(Output.of(numShards)); + } + + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(MultiRegionClusterTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param tlsEnabled A flag to enable in-transit encryption on the cluster. + * + * @return builder + * + */ + public Builder tlsEnabled(@Nullable Output tlsEnabled) { + $.tlsEnabled = tlsEnabled; + return this; + } + + /** + * @param tlsEnabled A flag to enable in-transit encryption on the cluster. + * + * @return builder + * + */ + public Builder tlsEnabled(Boolean tlsEnabled) { + return tlsEnabled(Output.of(tlsEnabled)); + } + + public Builder updateStrategy(@Nullable Output updateStrategy) { + $.updateStrategy = updateStrategy; + return this; + } + + public Builder updateStrategy(String updateStrategy) { + return updateStrategy(Output.of(updateStrategy)); + } + + public MultiRegionClusterState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterTimeoutsArgs.java new file mode 100644 index 00000000000..dc3795994a8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/inputs/MultiRegionClusterTimeoutsArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.memorydb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MultiRegionClusterTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final MultiRegionClusterTimeoutsArgs Empty = new MultiRegionClusterTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private MultiRegionClusterTimeoutsArgs() {} + + private MultiRegionClusterTimeoutsArgs(MultiRegionClusterTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MultiRegionClusterTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MultiRegionClusterTimeoutsArgs $; + + public Builder() { + $ = new MultiRegionClusterTimeoutsArgs(); + } + + public Builder(MultiRegionClusterTimeoutsArgs defaults) { + $ = new MultiRegionClusterTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public MultiRegionClusterTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/memorydb/outputs/MultiRegionClusterTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/memorydb/outputs/MultiRegionClusterTimeouts.java new file mode 100644 index 00000000000..573f9fb98b3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/memorydb/outputs/MultiRegionClusterTimeouts.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.memorydb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MultiRegionClusterTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private MultiRegionClusterTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MultiRegionClusterTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + private @Nullable String update; + public Builder() {} + public Builder(MultiRegionClusterTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public MultiRegionClusterTimeouts build() { + final var _resultValue = new MultiRegionClusterTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/AttachmentAccepter.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/AttachmentAccepter.java index fd60ab29424..7b7d65c2acb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/AttachmentAccepter.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/AttachmentAccepter.java @@ -12,6 +12,7 @@ import com.pulumi.core.internal.Codegen; import java.lang.Integer; import java.lang.String; +import java.util.List; import javax.annotation.Nullable; /** @@ -165,19 +166,33 @@ public Output coreNetworkId() { return this.coreNetworkId; } /** - * The Region where the edge is located. + * The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * */ @Export(name="edgeLocation", refs={String.class}, tree="[0]") private Output edgeLocation; /** - * @return The Region where the edge is located. + * @return The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * */ public Output edgeLocation() { return this.edgeLocation; } + /** + * The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + */ + @Export(name="edgeLocations", refs={List.class,String.class}, tree="[0,1]") + private Output> edgeLocations; + + /** + * @return The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + */ + public Output> edgeLocations() { + return this.edgeLocations; + } /** * The ID of the attachment account owner. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachment.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachment.java new file mode 100644 index 00000000000..163174b6c32 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachment.java @@ -0,0 +1,304 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.networkmanager; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.networkmanager.DxGatewayAttachmentArgs; +import com.pulumi.aws.networkmanager.inputs.DxGatewayAttachmentState; +import com.pulumi.aws.networkmanager.outputs.DxGatewayAttachmentTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.networkmanager.DxGatewayAttachment;
+ * import com.pulumi.aws.networkmanager.DxGatewayAttachmentArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var test = new DxGatewayAttachment("test", DxGatewayAttachmentArgs.builder()
+ *             .coreNetworkId(testAwsNetworkmanagerCoreNetworkPolicyAttachment.coreNetworkId())
+ *             .directConnectGatewayArn(String.format("arn:aws:directconnect::%s:dx-gateway/%s", current.accountId(),testAwsDxGateway.id()))
+ *             .edgeLocations(currentAwsRegion.name())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: + * + * ```sh + * $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g + * ``` + * + */ +@ResourceType(type="aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment") +public class DxGatewayAttachment extends com.pulumi.resources.CustomResource { + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + public Output arn() { + return this.arn; + } + /** + * Policy rule number associated with the attachment. + * + */ + @Export(name="attachmentPolicyRuleNumber", refs={Integer.class}, tree="[0]") + private Output attachmentPolicyRuleNumber; + + /** + * @return Policy rule number associated with the attachment. + * + */ + public Output attachmentPolicyRuleNumber() { + return this.attachmentPolicyRuleNumber; + } + /** + * Type of attachment. + * + */ + @Export(name="attachmentType", refs={String.class}, tree="[0]") + private Output attachmentType; + + /** + * @return Type of attachment. + * + */ + public Output attachmentType() { + return this.attachmentType; + } + /** + * ARN of the core network for the attachment. + * + */ + @Export(name="coreNetworkArn", refs={String.class}, tree="[0]") + private Output coreNetworkArn; + + /** + * @return ARN of the core network for the attachment. + * + */ + public Output coreNetworkArn() { + return this.coreNetworkArn; + } + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + @Export(name="coreNetworkId", refs={String.class}, tree="[0]") + private Output coreNetworkId; + + /** + * @return ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + public Output coreNetworkId() { + return this.coreNetworkId; + } + /** + * ARN of the Direct Connect gateway attachment. + * + */ + @Export(name="directConnectGatewayArn", refs={String.class}, tree="[0]") + private Output directConnectGatewayArn; + + /** + * @return ARN of the Direct Connect gateway attachment. + * + */ + public Output directConnectGatewayArn() { + return this.directConnectGatewayArn; + } + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + @Export(name="edgeLocations", refs={List.class,String.class}, tree="[0,1]") + private Output> edgeLocations; + + /** + * @return One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + public Output> edgeLocations() { + return this.edgeLocations; + } + /** + * ID of the attachment account owner. + * + */ + @Export(name="ownerAccountId", refs={String.class}, tree="[0]") + private Output ownerAccountId; + + /** + * @return ID of the attachment account owner. + * + */ + public Output ownerAccountId() { + return this.ownerAccountId; + } + /** + * Name of the segment attachment. + * + */ + @Export(name="segmentName", refs={String.class}, tree="[0]") + private Output segmentName; + + /** + * @return Name of the segment attachment. + * + */ + public Output segmentName() { + return this.segmentName; + } + /** + * State of the attachment. + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return State of the attachment. + * + */ + public Output state() { + return this.state; + } + /** + * Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={DxGatewayAttachmentTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DxGatewayAttachment(java.lang.String name) { + this(name, DxGatewayAttachmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DxGatewayAttachment(java.lang.String name, DxGatewayAttachmentArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DxGatewayAttachment(java.lang.String name, DxGatewayAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private DxGatewayAttachment(java.lang.String name, Output id, @Nullable DxGatewayAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment", name, state, makeResourceOptions(options, id), false); + } + + private static DxGatewayAttachmentArgs makeArgs(DxGatewayAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DxGatewayAttachmentArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DxGatewayAttachment get(java.lang.String name, Output id, @Nullable DxGatewayAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DxGatewayAttachment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachmentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachmentArgs.java new file mode 100644 index 00000000000..6b6f1c65769 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/DxGatewayAttachmentArgs.java @@ -0,0 +1,244 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.networkmanager; + +import com.pulumi.aws.networkmanager.inputs.DxGatewayAttachmentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DxGatewayAttachmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final DxGatewayAttachmentArgs Empty = new DxGatewayAttachmentArgs(); + + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + @Import(name="coreNetworkId", required=true) + private Output coreNetworkId; + + /** + * @return ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + public Output coreNetworkId() { + return this.coreNetworkId; + } + + /** + * ARN of the Direct Connect gateway attachment. + * + */ + @Import(name="directConnectGatewayArn", required=true) + private Output directConnectGatewayArn; + + /** + * @return ARN of the Direct Connect gateway attachment. + * + */ + public Output directConnectGatewayArn() { + return this.directConnectGatewayArn; + } + + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + @Import(name="edgeLocations", required=true) + private Output> edgeLocations; + + /** + * @return One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + public Output> edgeLocations() { + return this.edgeLocations; + } + + /** + * Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private DxGatewayAttachmentArgs() {} + + private DxGatewayAttachmentArgs(DxGatewayAttachmentArgs $) { + this.coreNetworkId = $.coreNetworkId; + this.directConnectGatewayArn = $.directConnectGatewayArn; + this.edgeLocations = $.edgeLocations; + this.tags = $.tags; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DxGatewayAttachmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DxGatewayAttachmentArgs $; + + public Builder() { + $ = new DxGatewayAttachmentArgs(); + } + + public Builder(DxGatewayAttachmentArgs defaults) { + $ = new DxGatewayAttachmentArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param coreNetworkId ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + * @return builder + * + */ + public Builder coreNetworkId(Output coreNetworkId) { + $.coreNetworkId = coreNetworkId; + return this; + } + + /** + * @param coreNetworkId ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + * @return builder + * + */ + public Builder coreNetworkId(String coreNetworkId) { + return coreNetworkId(Output.of(coreNetworkId)); + } + + /** + * @param directConnectGatewayArn ARN of the Direct Connect gateway attachment. + * + * @return builder + * + */ + public Builder directConnectGatewayArn(Output directConnectGatewayArn) { + $.directConnectGatewayArn = directConnectGatewayArn; + return this; + } + + /** + * @param directConnectGatewayArn ARN of the Direct Connect gateway attachment. + * + * @return builder + * + */ + public Builder directConnectGatewayArn(String directConnectGatewayArn) { + return directConnectGatewayArn(Output.of(directConnectGatewayArn)); + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(Output> edgeLocations) { + $.edgeLocations = edgeLocations; + return this; + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(List edgeLocations) { + return edgeLocations(Output.of(edgeLocations)); + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(String... edgeLocations) { + return edgeLocations(List.of(edgeLocations)); + } + + /** + * @param tags Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DxGatewayAttachmentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public DxGatewayAttachmentArgs build() { + if ($.coreNetworkId == null) { + throw new MissingRequiredPropertyException("DxGatewayAttachmentArgs", "coreNetworkId"); + } + if ($.directConnectGatewayArn == null) { + throw new MissingRequiredPropertyException("DxGatewayAttachmentArgs", "directConnectGatewayArn"); + } + if ($.edgeLocations == null) { + throw new MissingRequiredPropertyException("DxGatewayAttachmentArgs", "edgeLocations"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/AttachmentAccepterState.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/AttachmentAccepterState.java index 710f5ad9d9b..118b11c24c3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/AttachmentAccepterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/AttachmentAccepterState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import java.lang.Integer; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -92,20 +93,35 @@ public Optional> coreNetworkId() { } /** - * The Region where the edge is located. + * The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * */ @Import(name="edgeLocation") private @Nullable Output edgeLocation; /** - * @return The Region where the edge is located. + * @return The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * */ public Optional> edgeLocation() { return Optional.ofNullable(this.edgeLocation); } + /** + * The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + */ + @Import(name="edgeLocations") + private @Nullable Output> edgeLocations; + + /** + * @return The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + */ + public Optional>> edgeLocations() { + return Optional.ofNullable(this.edgeLocations); + } + /** * The ID of the attachment account owner. * @@ -175,6 +191,7 @@ private AttachmentAccepterState(AttachmentAccepterState $) { this.coreNetworkArn = $.coreNetworkArn; this.coreNetworkId = $.coreNetworkId; this.edgeLocation = $.edgeLocation; + this.edgeLocations = $.edgeLocations; this.ownerAccountId = $.ownerAccountId; this.resourceArn = $.resourceArn; this.segmentName = $.segmentName; @@ -305,7 +322,7 @@ public Builder coreNetworkId(String coreNetworkId) { } /** - * @param edgeLocation The Region where the edge is located. + * @param edgeLocation The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * * @return builder * @@ -316,7 +333,7 @@ public Builder edgeLocation(@Nullable Output edgeLocation) { } /** - * @param edgeLocation The Region where the edge is located. + * @param edgeLocation The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. * * @return builder * @@ -325,6 +342,37 @@ public Builder edgeLocation(String edgeLocation) { return edgeLocation(Output.of(edgeLocation)); } + /** + * @param edgeLocations The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + * @return builder + * + */ + public Builder edgeLocations(@Nullable Output> edgeLocations) { + $.edgeLocations = edgeLocations; + return this; + } + + /** + * @param edgeLocations The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + * @return builder + * + */ + public Builder edgeLocations(List edgeLocations) { + return edgeLocations(Output.of(edgeLocations)); + } + + /** + * @param edgeLocations The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + * + * @return builder + * + */ + public Builder edgeLocations(String... edgeLocations) { + return edgeLocations(List.of(edgeLocations)); + } + /** * @param ownerAccountId The ID of the attachment account owner. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentState.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentState.java new file mode 100644 index 00000000000..86a1d9f06bc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentState.java @@ -0,0 +1,527 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.networkmanager.inputs; + +import com.pulumi.aws.networkmanager.inputs.DxGatewayAttachmentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DxGatewayAttachmentState extends com.pulumi.resources.ResourceArgs { + + public static final DxGatewayAttachmentState Empty = new DxGatewayAttachmentState(); + + @Import(name="arn") + private @Nullable Output arn; + + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Policy rule number associated with the attachment. + * + */ + @Import(name="attachmentPolicyRuleNumber") + private @Nullable Output attachmentPolicyRuleNumber; + + /** + * @return Policy rule number associated with the attachment. + * + */ + public Optional> attachmentPolicyRuleNumber() { + return Optional.ofNullable(this.attachmentPolicyRuleNumber); + } + + /** + * Type of attachment. + * + */ + @Import(name="attachmentType") + private @Nullable Output attachmentType; + + /** + * @return Type of attachment. + * + */ + public Optional> attachmentType() { + return Optional.ofNullable(this.attachmentType); + } + + /** + * ARN of the core network for the attachment. + * + */ + @Import(name="coreNetworkArn") + private @Nullable Output coreNetworkArn; + + /** + * @return ARN of the core network for the attachment. + * + */ + public Optional> coreNetworkArn() { + return Optional.ofNullable(this.coreNetworkArn); + } + + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + @Import(name="coreNetworkId") + private @Nullable Output coreNetworkId; + + /** + * @return ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + */ + public Optional> coreNetworkId() { + return Optional.ofNullable(this.coreNetworkId); + } + + /** + * ARN of the Direct Connect gateway attachment. + * + */ + @Import(name="directConnectGatewayArn") + private @Nullable Output directConnectGatewayArn; + + /** + * @return ARN of the Direct Connect gateway attachment. + * + */ + public Optional> directConnectGatewayArn() { + return Optional.ofNullable(this.directConnectGatewayArn); + } + + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + @Import(name="edgeLocations") + private @Nullable Output> edgeLocations; + + /** + * @return One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + */ + public Optional>> edgeLocations() { + return Optional.ofNullable(this.edgeLocations); + } + + /** + * ID of the attachment account owner. + * + */ + @Import(name="ownerAccountId") + private @Nullable Output ownerAccountId; + + /** + * @return ID of the attachment account owner. + * + */ + public Optional> ownerAccountId() { + return Optional.ofNullable(this.ownerAccountId); + } + + /** + * Name of the segment attachment. + * + */ + @Import(name="segmentName") + private @Nullable Output segmentName; + + /** + * @return Name of the segment attachment. + * + */ + public Optional> segmentName() { + return Optional.ofNullable(this.segmentName); + } + + /** + * State of the attachment. + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return State of the attachment. + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private DxGatewayAttachmentState() {} + + private DxGatewayAttachmentState(DxGatewayAttachmentState $) { + this.arn = $.arn; + this.attachmentPolicyRuleNumber = $.attachmentPolicyRuleNumber; + this.attachmentType = $.attachmentType; + this.coreNetworkArn = $.coreNetworkArn; + this.coreNetworkId = $.coreNetworkId; + this.directConnectGatewayArn = $.directConnectGatewayArn; + this.edgeLocations = $.edgeLocations; + this.ownerAccountId = $.ownerAccountId; + this.segmentName = $.segmentName; + this.state = $.state; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DxGatewayAttachmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DxGatewayAttachmentState $; + + public Builder() { + $ = new DxGatewayAttachmentState(); + } + + public Builder(DxGatewayAttachmentState defaults) { + $ = new DxGatewayAttachmentState(Objects.requireNonNull(defaults)); + } + + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param attachmentPolicyRuleNumber Policy rule number associated with the attachment. + * + * @return builder + * + */ + public Builder attachmentPolicyRuleNumber(@Nullable Output attachmentPolicyRuleNumber) { + $.attachmentPolicyRuleNumber = attachmentPolicyRuleNumber; + return this; + } + + /** + * @param attachmentPolicyRuleNumber Policy rule number associated with the attachment. + * + * @return builder + * + */ + public Builder attachmentPolicyRuleNumber(Integer attachmentPolicyRuleNumber) { + return attachmentPolicyRuleNumber(Output.of(attachmentPolicyRuleNumber)); + } + + /** + * @param attachmentType Type of attachment. + * + * @return builder + * + */ + public Builder attachmentType(@Nullable Output attachmentType) { + $.attachmentType = attachmentType; + return this; + } + + /** + * @param attachmentType Type of attachment. + * + * @return builder + * + */ + public Builder attachmentType(String attachmentType) { + return attachmentType(Output.of(attachmentType)); + } + + /** + * @param coreNetworkArn ARN of the core network for the attachment. + * + * @return builder + * + */ + public Builder coreNetworkArn(@Nullable Output coreNetworkArn) { + $.coreNetworkArn = coreNetworkArn; + return this; + } + + /** + * @param coreNetworkArn ARN of the core network for the attachment. + * + * @return builder + * + */ + public Builder coreNetworkArn(String coreNetworkArn) { + return coreNetworkArn(Output.of(coreNetworkArn)); + } + + /** + * @param coreNetworkId ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + * @return builder + * + */ + public Builder coreNetworkId(@Nullable Output coreNetworkId) { + $.coreNetworkId = coreNetworkId; + return this; + } + + /** + * @param coreNetworkId ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + * + * @return builder + * + */ + public Builder coreNetworkId(String coreNetworkId) { + return coreNetworkId(Output.of(coreNetworkId)); + } + + /** + * @param directConnectGatewayArn ARN of the Direct Connect gateway attachment. + * + * @return builder + * + */ + public Builder directConnectGatewayArn(@Nullable Output directConnectGatewayArn) { + $.directConnectGatewayArn = directConnectGatewayArn; + return this; + } + + /** + * @param directConnectGatewayArn ARN of the Direct Connect gateway attachment. + * + * @return builder + * + */ + public Builder directConnectGatewayArn(String directConnectGatewayArn) { + return directConnectGatewayArn(Output.of(directConnectGatewayArn)); + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(@Nullable Output> edgeLocations) { + $.edgeLocations = edgeLocations; + return this; + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(List edgeLocations) { + return edgeLocations(Output.of(edgeLocations)); + } + + /** + * @param edgeLocations One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder edgeLocations(String... edgeLocations) { + return edgeLocations(List.of(edgeLocations)); + } + + /** + * @param ownerAccountId ID of the attachment account owner. + * + * @return builder + * + */ + public Builder ownerAccountId(@Nullable Output ownerAccountId) { + $.ownerAccountId = ownerAccountId; + return this; + } + + /** + * @param ownerAccountId ID of the attachment account owner. + * + * @return builder + * + */ + public Builder ownerAccountId(String ownerAccountId) { + return ownerAccountId(Output.of(ownerAccountId)); + } + + /** + * @param segmentName Name of the segment attachment. + * + * @return builder + * + */ + public Builder segmentName(@Nullable Output segmentName) { + $.segmentName = segmentName; + return this; + } + + /** + * @param segmentName Name of the segment attachment. + * + * @return builder + * + */ + public Builder segmentName(String segmentName) { + return segmentName(Output.of(segmentName)); + } + + /** + * @param state State of the attachment. + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state State of the attachment. + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param tags Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DxGatewayAttachmentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public DxGatewayAttachmentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentTimeoutsArgs.java new file mode 100644 index 00000000000..80fe829fe3d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/inputs/DxGatewayAttachmentTimeoutsArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.networkmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DxGatewayAttachmentTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DxGatewayAttachmentTimeoutsArgs Empty = new DxGatewayAttachmentTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private DxGatewayAttachmentTimeoutsArgs() {} + + private DxGatewayAttachmentTimeoutsArgs(DxGatewayAttachmentTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DxGatewayAttachmentTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DxGatewayAttachmentTimeoutsArgs $; + + public Builder() { + $ = new DxGatewayAttachmentTimeoutsArgs(); + } + + public Builder(DxGatewayAttachmentTimeoutsArgs defaults) { + $ = new DxGatewayAttachmentTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public DxGatewayAttachmentTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkmanager/outputs/DxGatewayAttachmentTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/outputs/DxGatewayAttachmentTimeouts.java new file mode 100644 index 00000000000..a207f0ed32e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/networkmanager/outputs/DxGatewayAttachmentTimeouts.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.networkmanager.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DxGatewayAttachmentTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private DxGatewayAttachmentTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DxGatewayAttachmentTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + private @Nullable String update; + public Builder() {} + public Builder(DxGatewayAttachmentTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public DxGatewayAttachmentTimeouts build() { + final var _resultValue = new DxGatewayAttachmentTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java index 826a17f8243..bfbfecfbf9a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/Cluster.java @@ -1116,42 +1116,42 @@ public Output networkType() { return this.networkType; } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster * */ @Export(name="performanceInsightsEnabled", refs={Boolean.class}, tree="[0]") private Output performanceInsightsEnabled; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @return Enables Performance Insights for the RDS Cluster * */ public Output> performanceInsightsEnabled() { return Codegen.optional(this.performanceInsightsEnabled); } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ @Export(name="performanceInsightsKmsKeyId", refs={String.class}, tree="[0]") private Output performanceInsightsKmsKeyId; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @return Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ public Output performanceInsightsKmsKeyId() { return this.performanceInsightsKmsKeyId; } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ @Export(name="performanceInsightsRetentionPeriod", refs={Integer.class}, tree="[0]") private Output performanceInsightsRetentionPeriod; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @return Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ public Output performanceInsightsRetentionPeriod() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java index 64b2481e55d..66b5bd55deb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterArgs.java @@ -640,14 +640,14 @@ public Optional> networkType() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster * */ @Import(name="performanceInsightsEnabled") private @Nullable Output performanceInsightsEnabled; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @return Enables Performance Insights for the RDS Cluster * */ public Optional> performanceInsightsEnabled() { @@ -655,14 +655,14 @@ public Optional> performanceInsightsEnabled() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ @Import(name="performanceInsightsKmsKeyId") private @Nullable Output performanceInsightsKmsKeyId; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @return Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ public Optional> performanceInsightsKmsKeyId() { @@ -670,14 +670,14 @@ public Optional> performanceInsightsKmsKeyId() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ @Import(name="performanceInsightsRetentionPeriod") private @Nullable Output performanceInsightsRetentionPeriod; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @return Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ public Optional> performanceInsightsRetentionPeriod() { @@ -1918,7 +1918,7 @@ public Builder networkType(String networkType) { } /** - * @param performanceInsightsEnabled Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @param performanceInsightsEnabled Enables Performance Insights for the RDS Cluster * * @return builder * @@ -1929,7 +1929,7 @@ public Builder performanceInsightsEnabled(@Nullable Output performanceI } /** - * @param performanceInsightsEnabled Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @param performanceInsightsEnabled Enables Performance Insights for the RDS Cluster * * @return builder * @@ -1939,7 +1939,7 @@ public Builder performanceInsightsEnabled(Boolean performanceInsightsEnabled) { } /** - * @param performanceInsightsKmsKeyId Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @param performanceInsightsKmsKeyId Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * * @return builder * @@ -1950,7 +1950,7 @@ public Builder performanceInsightsKmsKeyId(@Nullable Output performanceI } /** - * @param performanceInsightsKmsKeyId Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @param performanceInsightsKmsKeyId Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * * @return builder * @@ -1960,7 +1960,7 @@ public Builder performanceInsightsKmsKeyId(String performanceInsightsKmsKeyId) { } /** - * @param performanceInsightsRetentionPeriod Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @param performanceInsightsRetentionPeriod Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * * @return builder * @@ -1971,7 +1971,7 @@ public Builder performanceInsightsRetentionPeriod(@Nullable Output perf } /** - * @param performanceInsightsRetentionPeriod Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @param performanceInsightsRetentionPeriod Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopy.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopy.java new file mode 100644 index 00000000000..84feabc1ba9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopy.java @@ -0,0 +1,404 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.rds.ClusterSnapshotCopyArgs; +import com.pulumi.aws.rds.inputs.ClusterSnapshotCopyState; +import com.pulumi.aws.rds.outputs.ClusterSnapshotCopyTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `aws.rds.SnapshotCopy` resource. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.rds.Cluster;
+ * import com.pulumi.aws.rds.ClusterArgs;
+ * import com.pulumi.aws.rds.ClusterSnapshot;
+ * import com.pulumi.aws.rds.ClusterSnapshotArgs;
+ * import com.pulumi.aws.rds.ClusterSnapshotCopy;
+ * import com.pulumi.aws.rds.ClusterSnapshotCopyArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new Cluster("example", ClusterArgs.builder()
+ *             .clusterIdentifier("aurora-cluster-demo")
+ *             .databaseName("test")
+ *             .engine("aurora-mysql")
+ *             .masterUsername("tfacctest")
+ *             .masterPassword("avoid-plaintext-passwords")
+ *             .skipFinalSnapshot(true)
+ *             .build());
+ * 
+ *         var exampleClusterSnapshot = new ClusterSnapshot("exampleClusterSnapshot", ClusterSnapshotArgs.builder()
+ *             .dbClusterIdentifier(example.clusterIdentifier())
+ *             .dbClusterSnapshotIdentifier("example")
+ *             .build());
+ * 
+ *         var exampleClusterSnapshotCopy = new ClusterSnapshotCopy("exampleClusterSnapshotCopy", ClusterSnapshotCopyArgs.builder()
+ *             .sourceDbClusterSnapshotIdentifier(exampleClusterSnapshot.dbClusterSnapshotArn())
+ *             .targetDbClusterSnapshotIdentifier("example-copy")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: + * + * ```sh + * $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot + * ``` + * + */ +@ResourceType(type="aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy") +public class ClusterSnapshotCopy extends com.pulumi.resources.CustomResource { + /** + * Specifies the allocated storage size in gigabytes (GB). + * + */ + @Export(name="allocatedStorage", refs={Integer.class}, tree="[0]") + private Output allocatedStorage; + + /** + * @return Specifies the allocated storage size in gigabytes (GB). + * + */ + public Output allocatedStorage() { + return this.allocatedStorage; + } + /** + * Whether to copy existing tags. Defaults to `false`. + * + */ + @Export(name="copyTags", refs={Boolean.class}, tree="[0]") + private Output copyTags; + + /** + * @return Whether to copy existing tags. Defaults to `false`. + * + */ + public Output> copyTags() { + return Codegen.optional(this.copyTags); + } + /** + * The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + */ + @Export(name="dbClusterSnapshotArn", refs={String.class}, tree="[0]") + private Output dbClusterSnapshotArn; + + /** + * @return The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + */ + public Output dbClusterSnapshotArn() { + return this.dbClusterSnapshotArn; + } + /** + * The Destination region to place snapshot copy. + * + */ + @Export(name="destinationRegion", refs={String.class}, tree="[0]") + private Output destinationRegion; + + /** + * @return The Destination region to place snapshot copy. + * + */ + public Output> destinationRegion() { + return Codegen.optional(this.destinationRegion); + } + /** + * Specifies the name of the database engine. + * + */ + @Export(name="engine", refs={String.class}, tree="[0]") + private Output engine; + + /** + * @return Specifies the name of the database engine. + * + */ + public Output engine() { + return this.engine; + } + /** + * Specifies the version of the database engine. + * + */ + @Export(name="engineVersion", refs={String.class}, tree="[0]") + private Output engineVersion; + + /** + * @return Specifies the version of the database engine. + * + */ + public Output engineVersion() { + return this.engineVersion; + } + /** + * KMS key ID. + * + */ + @Export(name="kmsKeyId", refs={String.class}, tree="[0]") + private Output kmsKeyId; + + /** + * @return KMS key ID. + * + */ + public Output> kmsKeyId() { + return Codegen.optional(this.kmsKeyId); + } + /** + * License model information for the restored DB instance. + * + */ + @Export(name="licenseModel", refs={String.class}, tree="[0]") + private Output licenseModel; + + /** + * @return License model information for the restored DB instance. + * + */ + public Output licenseModel() { + return this.licenseModel; + } + /** + * URL that contains a Signature Version 4 signed request. + * + */ + @Export(name="presignedUrl", refs={String.class}, tree="[0]") + private Output presignedUrl; + + /** + * @return URL that contains a Signature Version 4 signed request. + * + */ + public Output> presignedUrl() { + return Codegen.optional(this.presignedUrl); + } + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + @Export(name="sharedAccounts", refs={List.class,String.class}, tree="[0,1]") + private Output> sharedAccounts; + + /** + * @return List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + public Output>> sharedAccounts() { + return Codegen.optional(this.sharedAccounts); + } + @Export(name="snapshotType", refs={String.class}, tree="[0]") + private Output snapshotType; + + public Output snapshotType() { + return this.snapshotType; + } + /** + * Identifier of the source snapshot. + * + */ + @Export(name="sourceDbClusterSnapshotIdentifier", refs={String.class}, tree="[0]") + private Output sourceDbClusterSnapshotIdentifier; + + /** + * @return Identifier of the source snapshot. + * + */ + public Output sourceDbClusterSnapshotIdentifier() { + return this.sourceDbClusterSnapshotIdentifier; + } + /** + * Specifies whether the DB cluster snapshot is encrypted. + * + */ + @Export(name="storageEncrypted", refs={Boolean.class}, tree="[0]") + private Output storageEncrypted; + + /** + * @return Specifies whether the DB cluster snapshot is encrypted. + * + */ + public Output storageEncrypted() { + return this.storageEncrypted; + } + /** + * Specifies the storage type associated with DB cluster snapshot. + * + */ + @Export(name="storageType", refs={String.class}, tree="[0]") + private Output storageType; + + /** + * @return Specifies the storage type associated with DB cluster snapshot. + * + */ + public Output storageType() { + return this.storageType; + } + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + @Export(name="targetDbClusterSnapshotIdentifier", refs={String.class}, tree="[0]") + private Output targetDbClusterSnapshotIdentifier; + + /** + * @return Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + public Output targetDbClusterSnapshotIdentifier() { + return this.targetDbClusterSnapshotIdentifier; + } + @Export(name="timeouts", refs={ClusterSnapshotCopyTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * Provides the VPC ID associated with the DB cluster snapshot. + * + */ + @Export(name="vpcId", refs={String.class}, tree="[0]") + private Output vpcId; + + /** + * @return Provides the VPC ID associated with the DB cluster snapshot. + * + */ + public Output vpcId() { + return this.vpcId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ClusterSnapshotCopy(java.lang.String name) { + this(name, ClusterSnapshotCopyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ClusterSnapshotCopy(java.lang.String name, ClusterSnapshotCopyArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ClusterSnapshotCopy(java.lang.String name, ClusterSnapshotCopyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private ClusterSnapshotCopy(java.lang.String name, Output id, @Nullable ClusterSnapshotCopyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy", name, state, makeResourceOptions(options, id), false); + } + + private static ClusterSnapshotCopyArgs makeArgs(ClusterSnapshotCopyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterSnapshotCopyArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ClusterSnapshotCopy get(java.lang.String name, Output id, @Nullable ClusterSnapshotCopyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ClusterSnapshotCopy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopyArgs.java new file mode 100644 index 00000000000..1d6c79295ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterSnapshotCopyArgs.java @@ -0,0 +1,388 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds; + +import com.pulumi.aws.rds.inputs.ClusterSnapshotCopyTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterSnapshotCopyArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterSnapshotCopyArgs Empty = new ClusterSnapshotCopyArgs(); + + /** + * Whether to copy existing tags. Defaults to `false`. + * + */ + @Import(name="copyTags") + private @Nullable Output copyTags; + + /** + * @return Whether to copy existing tags. Defaults to `false`. + * + */ + public Optional> copyTags() { + return Optional.ofNullable(this.copyTags); + } + + /** + * The Destination region to place snapshot copy. + * + */ + @Import(name="destinationRegion") + private @Nullable Output destinationRegion; + + /** + * @return The Destination region to place snapshot copy. + * + */ + public Optional> destinationRegion() { + return Optional.ofNullable(this.destinationRegion); + } + + /** + * KMS key ID. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return KMS key ID. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * URL that contains a Signature Version 4 signed request. + * + */ + @Import(name="presignedUrl") + private @Nullable Output presignedUrl; + + /** + * @return URL that contains a Signature Version 4 signed request. + * + */ + public Optional> presignedUrl() { + return Optional.ofNullable(this.presignedUrl); + } + + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + @Import(name="sharedAccounts") + private @Nullable Output> sharedAccounts; + + /** + * @return List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + public Optional>> sharedAccounts() { + return Optional.ofNullable(this.sharedAccounts); + } + + /** + * Identifier of the source snapshot. + * + */ + @Import(name="sourceDbClusterSnapshotIdentifier", required=true) + private Output sourceDbClusterSnapshotIdentifier; + + /** + * @return Identifier of the source snapshot. + * + */ + public Output sourceDbClusterSnapshotIdentifier() { + return this.sourceDbClusterSnapshotIdentifier; + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + @Import(name="targetDbClusterSnapshotIdentifier", required=true) + private Output targetDbClusterSnapshotIdentifier; + + /** + * @return Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + public Output targetDbClusterSnapshotIdentifier() { + return this.targetDbClusterSnapshotIdentifier; + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ClusterSnapshotCopyArgs() {} + + private ClusterSnapshotCopyArgs(ClusterSnapshotCopyArgs $) { + this.copyTags = $.copyTags; + this.destinationRegion = $.destinationRegion; + this.kmsKeyId = $.kmsKeyId; + this.presignedUrl = $.presignedUrl; + this.sharedAccounts = $.sharedAccounts; + this.sourceDbClusterSnapshotIdentifier = $.sourceDbClusterSnapshotIdentifier; + this.tags = $.tags; + this.targetDbClusterSnapshotIdentifier = $.targetDbClusterSnapshotIdentifier; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterSnapshotCopyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterSnapshotCopyArgs $; + + public Builder() { + $ = new ClusterSnapshotCopyArgs(); + } + + public Builder(ClusterSnapshotCopyArgs defaults) { + $ = new ClusterSnapshotCopyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param copyTags Whether to copy existing tags. Defaults to `false`. + * + * @return builder + * + */ + public Builder copyTags(@Nullable Output copyTags) { + $.copyTags = copyTags; + return this; + } + + /** + * @param copyTags Whether to copy existing tags. Defaults to `false`. + * + * @return builder + * + */ + public Builder copyTags(Boolean copyTags) { + return copyTags(Output.of(copyTags)); + } + + /** + * @param destinationRegion The Destination region to place snapshot copy. + * + * @return builder + * + */ + public Builder destinationRegion(@Nullable Output destinationRegion) { + $.destinationRegion = destinationRegion; + return this; + } + + /** + * @param destinationRegion The Destination region to place snapshot copy. + * + * @return builder + * + */ + public Builder destinationRegion(String destinationRegion) { + return destinationRegion(Output.of(destinationRegion)); + } + + /** + * @param kmsKeyId KMS key ID. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId KMS key ID. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param presignedUrl URL that contains a Signature Version 4 signed request. + * + * @return builder + * + */ + public Builder presignedUrl(@Nullable Output presignedUrl) { + $.presignedUrl = presignedUrl; + return this; + } + + /** + * @param presignedUrl URL that contains a Signature Version 4 signed request. + * + * @return builder + * + */ + public Builder presignedUrl(String presignedUrl) { + return presignedUrl(Output.of(presignedUrl)); + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(@Nullable Output> sharedAccounts) { + $.sharedAccounts = sharedAccounts; + return this; + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(List sharedAccounts) { + return sharedAccounts(Output.of(sharedAccounts)); + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(String... sharedAccounts) { + return sharedAccounts(List.of(sharedAccounts)); + } + + /** + * @param sourceDbClusterSnapshotIdentifier Identifier of the source snapshot. + * + * @return builder + * + */ + public Builder sourceDbClusterSnapshotIdentifier(Output sourceDbClusterSnapshotIdentifier) { + $.sourceDbClusterSnapshotIdentifier = sourceDbClusterSnapshotIdentifier; + return this; + } + + /** + * @param sourceDbClusterSnapshotIdentifier Identifier of the source snapshot. + * + * @return builder + * + */ + public Builder sourceDbClusterSnapshotIdentifier(String sourceDbClusterSnapshotIdentifier) { + return sourceDbClusterSnapshotIdentifier(Output.of(sourceDbClusterSnapshotIdentifier)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param targetDbClusterSnapshotIdentifier Identifier for the snapshot. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder targetDbClusterSnapshotIdentifier(Output targetDbClusterSnapshotIdentifier) { + $.targetDbClusterSnapshotIdentifier = targetDbClusterSnapshotIdentifier; + return this; + } + + /** + * @param targetDbClusterSnapshotIdentifier Identifier for the snapshot. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder targetDbClusterSnapshotIdentifier(String targetDbClusterSnapshotIdentifier) { + return targetDbClusterSnapshotIdentifier(Output.of(targetDbClusterSnapshotIdentifier)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ClusterSnapshotCopyTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ClusterSnapshotCopyArgs build() { + if ($.sourceDbClusterSnapshotIdentifier == null) { + throw new MissingRequiredPropertyException("ClusterSnapshotCopyArgs", "sourceDbClusterSnapshotIdentifier"); + } + if ($.targetDbClusterSnapshotIdentifier == null) { + throw new MissingRequiredPropertyException("ClusterSnapshotCopyArgs", "targetDbClusterSnapshotIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyState.java new file mode 100644 index 00000000000..b03bbc4cd2d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyState.java @@ -0,0 +1,748 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds.inputs; + +import com.pulumi.aws.rds.inputs.ClusterSnapshotCopyTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterSnapshotCopyState extends com.pulumi.resources.ResourceArgs { + + public static final ClusterSnapshotCopyState Empty = new ClusterSnapshotCopyState(); + + /** + * Specifies the allocated storage size in gigabytes (GB). + * + */ + @Import(name="allocatedStorage") + private @Nullable Output allocatedStorage; + + /** + * @return Specifies the allocated storage size in gigabytes (GB). + * + */ + public Optional> allocatedStorage() { + return Optional.ofNullable(this.allocatedStorage); + } + + /** + * Whether to copy existing tags. Defaults to `false`. + * + */ + @Import(name="copyTags") + private @Nullable Output copyTags; + + /** + * @return Whether to copy existing tags. Defaults to `false`. + * + */ + public Optional> copyTags() { + return Optional.ofNullable(this.copyTags); + } + + /** + * The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + */ + @Import(name="dbClusterSnapshotArn") + private @Nullable Output dbClusterSnapshotArn; + + /** + * @return The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + */ + public Optional> dbClusterSnapshotArn() { + return Optional.ofNullable(this.dbClusterSnapshotArn); + } + + /** + * The Destination region to place snapshot copy. + * + */ + @Import(name="destinationRegion") + private @Nullable Output destinationRegion; + + /** + * @return The Destination region to place snapshot copy. + * + */ + public Optional> destinationRegion() { + return Optional.ofNullable(this.destinationRegion); + } + + /** + * Specifies the name of the database engine. + * + */ + @Import(name="engine") + private @Nullable Output engine; + + /** + * @return Specifies the name of the database engine. + * + */ + public Optional> engine() { + return Optional.ofNullable(this.engine); + } + + /** + * Specifies the version of the database engine. + * + */ + @Import(name="engineVersion") + private @Nullable Output engineVersion; + + /** + * @return Specifies the version of the database engine. + * + */ + public Optional> engineVersion() { + return Optional.ofNullable(this.engineVersion); + } + + /** + * KMS key ID. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return KMS key ID. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * License model information for the restored DB instance. + * + */ + @Import(name="licenseModel") + private @Nullable Output licenseModel; + + /** + * @return License model information for the restored DB instance. + * + */ + public Optional> licenseModel() { + return Optional.ofNullable(this.licenseModel); + } + + /** + * URL that contains a Signature Version 4 signed request. + * + */ + @Import(name="presignedUrl") + private @Nullable Output presignedUrl; + + /** + * @return URL that contains a Signature Version 4 signed request. + * + */ + public Optional> presignedUrl() { + return Optional.ofNullable(this.presignedUrl); + } + + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + @Import(name="sharedAccounts") + private @Nullable Output> sharedAccounts; + + /** + * @return List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + */ + public Optional>> sharedAccounts() { + return Optional.ofNullable(this.sharedAccounts); + } + + @Import(name="snapshotType") + private @Nullable Output snapshotType; + + public Optional> snapshotType() { + return Optional.ofNullable(this.snapshotType); + } + + /** + * Identifier of the source snapshot. + * + */ + @Import(name="sourceDbClusterSnapshotIdentifier") + private @Nullable Output sourceDbClusterSnapshotIdentifier; + + /** + * @return Identifier of the source snapshot. + * + */ + public Optional> sourceDbClusterSnapshotIdentifier() { + return Optional.ofNullable(this.sourceDbClusterSnapshotIdentifier); + } + + /** + * Specifies whether the DB cluster snapshot is encrypted. + * + */ + @Import(name="storageEncrypted") + private @Nullable Output storageEncrypted; + + /** + * @return Specifies whether the DB cluster snapshot is encrypted. + * + */ + public Optional> storageEncrypted() { + return Optional.ofNullable(this.storageEncrypted); + } + + /** + * Specifies the storage type associated with DB cluster snapshot. + * + */ + @Import(name="storageType") + private @Nullable Output storageType; + + /** + * @return Specifies the storage type associated with DB cluster snapshot. + * + */ + public Optional> storageType() { + return Optional.ofNullable(this.storageType); + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + @Import(name="targetDbClusterSnapshotIdentifier") + private @Nullable Output targetDbClusterSnapshotIdentifier; + + /** + * @return Identifier for the snapshot. + * + * The following arguments are optional: + * + */ + public Optional> targetDbClusterSnapshotIdentifier() { + return Optional.ofNullable(this.targetDbClusterSnapshotIdentifier); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * Provides the VPC ID associated with the DB cluster snapshot. + * + */ + @Import(name="vpcId") + private @Nullable Output vpcId; + + /** + * @return Provides the VPC ID associated with the DB cluster snapshot. + * + */ + public Optional> vpcId() { + return Optional.ofNullable(this.vpcId); + } + + private ClusterSnapshotCopyState() {} + + private ClusterSnapshotCopyState(ClusterSnapshotCopyState $) { + this.allocatedStorage = $.allocatedStorage; + this.copyTags = $.copyTags; + this.dbClusterSnapshotArn = $.dbClusterSnapshotArn; + this.destinationRegion = $.destinationRegion; + this.engine = $.engine; + this.engineVersion = $.engineVersion; + this.kmsKeyId = $.kmsKeyId; + this.licenseModel = $.licenseModel; + this.presignedUrl = $.presignedUrl; + this.sharedAccounts = $.sharedAccounts; + this.snapshotType = $.snapshotType; + this.sourceDbClusterSnapshotIdentifier = $.sourceDbClusterSnapshotIdentifier; + this.storageEncrypted = $.storageEncrypted; + this.storageType = $.storageType; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.targetDbClusterSnapshotIdentifier = $.targetDbClusterSnapshotIdentifier; + this.timeouts = $.timeouts; + this.vpcId = $.vpcId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterSnapshotCopyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterSnapshotCopyState $; + + public Builder() { + $ = new ClusterSnapshotCopyState(); + } + + public Builder(ClusterSnapshotCopyState defaults) { + $ = new ClusterSnapshotCopyState(Objects.requireNonNull(defaults)); + } + + /** + * @param allocatedStorage Specifies the allocated storage size in gigabytes (GB). + * + * @return builder + * + */ + public Builder allocatedStorage(@Nullable Output allocatedStorage) { + $.allocatedStorage = allocatedStorage; + return this; + } + + /** + * @param allocatedStorage Specifies the allocated storage size in gigabytes (GB). + * + * @return builder + * + */ + public Builder allocatedStorage(Integer allocatedStorage) { + return allocatedStorage(Output.of(allocatedStorage)); + } + + /** + * @param copyTags Whether to copy existing tags. Defaults to `false`. + * + * @return builder + * + */ + public Builder copyTags(@Nullable Output copyTags) { + $.copyTags = copyTags; + return this; + } + + /** + * @param copyTags Whether to copy existing tags. Defaults to `false`. + * + * @return builder + * + */ + public Builder copyTags(Boolean copyTags) { + return copyTags(Output.of(copyTags)); + } + + /** + * @param dbClusterSnapshotArn The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + * @return builder + * + */ + public Builder dbClusterSnapshotArn(@Nullable Output dbClusterSnapshotArn) { + $.dbClusterSnapshotArn = dbClusterSnapshotArn; + return this; + } + + /** + * @param dbClusterSnapshotArn The Amazon Resource Name (ARN) for the DB cluster snapshot. + * + * @return builder + * + */ + public Builder dbClusterSnapshotArn(String dbClusterSnapshotArn) { + return dbClusterSnapshotArn(Output.of(dbClusterSnapshotArn)); + } + + /** + * @param destinationRegion The Destination region to place snapshot copy. + * + * @return builder + * + */ + public Builder destinationRegion(@Nullable Output destinationRegion) { + $.destinationRegion = destinationRegion; + return this; + } + + /** + * @param destinationRegion The Destination region to place snapshot copy. + * + * @return builder + * + */ + public Builder destinationRegion(String destinationRegion) { + return destinationRegion(Output.of(destinationRegion)); + } + + /** + * @param engine Specifies the name of the database engine. + * + * @return builder + * + */ + public Builder engine(@Nullable Output engine) { + $.engine = engine; + return this; + } + + /** + * @param engine Specifies the name of the database engine. + * + * @return builder + * + */ + public Builder engine(String engine) { + return engine(Output.of(engine)); + } + + /** + * @param engineVersion Specifies the version of the database engine. + * + * @return builder + * + */ + public Builder engineVersion(@Nullable Output engineVersion) { + $.engineVersion = engineVersion; + return this; + } + + /** + * @param engineVersion Specifies the version of the database engine. + * + * @return builder + * + */ + public Builder engineVersion(String engineVersion) { + return engineVersion(Output.of(engineVersion)); + } + + /** + * @param kmsKeyId KMS key ID. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId KMS key ID. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param licenseModel License model information for the restored DB instance. + * + * @return builder + * + */ + public Builder licenseModel(@Nullable Output licenseModel) { + $.licenseModel = licenseModel; + return this; + } + + /** + * @param licenseModel License model information for the restored DB instance. + * + * @return builder + * + */ + public Builder licenseModel(String licenseModel) { + return licenseModel(Output.of(licenseModel)); + } + + /** + * @param presignedUrl URL that contains a Signature Version 4 signed request. + * + * @return builder + * + */ + public Builder presignedUrl(@Nullable Output presignedUrl) { + $.presignedUrl = presignedUrl; + return this; + } + + /** + * @param presignedUrl URL that contains a Signature Version 4 signed request. + * + * @return builder + * + */ + public Builder presignedUrl(String presignedUrl) { + return presignedUrl(Output.of(presignedUrl)); + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(@Nullable Output> sharedAccounts) { + $.sharedAccounts = sharedAccounts; + return this; + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(List sharedAccounts) { + return sharedAccounts(Output.of(sharedAccounts)); + } + + /** + * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + * + * @return builder + * + */ + public Builder sharedAccounts(String... sharedAccounts) { + return sharedAccounts(List.of(sharedAccounts)); + } + + public Builder snapshotType(@Nullable Output snapshotType) { + $.snapshotType = snapshotType; + return this; + } + + public Builder snapshotType(String snapshotType) { + return snapshotType(Output.of(snapshotType)); + } + + /** + * @param sourceDbClusterSnapshotIdentifier Identifier of the source snapshot. + * + * @return builder + * + */ + public Builder sourceDbClusterSnapshotIdentifier(@Nullable Output sourceDbClusterSnapshotIdentifier) { + $.sourceDbClusterSnapshotIdentifier = sourceDbClusterSnapshotIdentifier; + return this; + } + + /** + * @param sourceDbClusterSnapshotIdentifier Identifier of the source snapshot. + * + * @return builder + * + */ + public Builder sourceDbClusterSnapshotIdentifier(String sourceDbClusterSnapshotIdentifier) { + return sourceDbClusterSnapshotIdentifier(Output.of(sourceDbClusterSnapshotIdentifier)); + } + + /** + * @param storageEncrypted Specifies whether the DB cluster snapshot is encrypted. + * + * @return builder + * + */ + public Builder storageEncrypted(@Nullable Output storageEncrypted) { + $.storageEncrypted = storageEncrypted; + return this; + } + + /** + * @param storageEncrypted Specifies whether the DB cluster snapshot is encrypted. + * + * @return builder + * + */ + public Builder storageEncrypted(Boolean storageEncrypted) { + return storageEncrypted(Output.of(storageEncrypted)); + } + + /** + * @param storageType Specifies the storage type associated with DB cluster snapshot. + * + * @return builder + * + */ + public Builder storageType(@Nullable Output storageType) { + $.storageType = storageType; + return this; + } + + /** + * @param storageType Specifies the storage type associated with DB cluster snapshot. + * + * @return builder + * + */ + public Builder storageType(String storageType) { + return storageType(Output.of(storageType)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + /** + * @param targetDbClusterSnapshotIdentifier Identifier for the snapshot. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder targetDbClusterSnapshotIdentifier(@Nullable Output targetDbClusterSnapshotIdentifier) { + $.targetDbClusterSnapshotIdentifier = targetDbClusterSnapshotIdentifier; + return this; + } + + /** + * @param targetDbClusterSnapshotIdentifier Identifier for the snapshot. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder targetDbClusterSnapshotIdentifier(String targetDbClusterSnapshotIdentifier) { + return targetDbClusterSnapshotIdentifier(Output.of(targetDbClusterSnapshotIdentifier)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ClusterSnapshotCopyTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param vpcId Provides the VPC ID associated with the DB cluster snapshot. + * + * @return builder + * + */ + public Builder vpcId(@Nullable Output vpcId) { + $.vpcId = vpcId; + return this; + } + + /** + * @param vpcId Provides the VPC ID associated with the DB cluster snapshot. + * + * @return builder + * + */ + public Builder vpcId(String vpcId) { + return vpcId(Output.of(vpcId)); + } + + public ClusterSnapshotCopyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyTimeoutsArgs.java new file mode 100644 index 00000000000..4db63df1720 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterSnapshotCopyTimeoutsArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ClusterSnapshotCopyTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterSnapshotCopyTimeoutsArgs Empty = new ClusterSnapshotCopyTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + private ClusterSnapshotCopyTimeoutsArgs() {} + + private ClusterSnapshotCopyTimeoutsArgs(ClusterSnapshotCopyTimeoutsArgs $) { + this.create = $.create; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterSnapshotCopyTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterSnapshotCopyTimeoutsArgs $; + + public Builder() { + $ = new ClusterSnapshotCopyTimeoutsArgs(); + } + + public Builder(ClusterSnapshotCopyTimeoutsArgs defaults) { + $ = new ClusterSnapshotCopyTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + public ClusterSnapshotCopyTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java index 8dbc4f8ac82..c4200bb96f7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterState.java @@ -745,14 +745,14 @@ public Optional> networkType() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster * */ @Import(name="performanceInsightsEnabled") private @Nullable Output performanceInsightsEnabled; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @return Enables Performance Insights for the RDS Cluster * */ public Optional> performanceInsightsEnabled() { @@ -760,14 +760,14 @@ public Optional> performanceInsightsEnabled() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ @Import(name="performanceInsightsKmsKeyId") private @Nullable Output performanceInsightsKmsKeyId; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @return Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * */ public Optional> performanceInsightsKmsKeyId() { @@ -775,14 +775,14 @@ public Optional> performanceInsightsKmsKeyId() { } /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ @Import(name="performanceInsightsRetentionPeriod") private @Nullable Output performanceInsightsRetentionPeriod; /** - * @return Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @return Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * */ public Optional> performanceInsightsRetentionPeriod() { @@ -2229,7 +2229,7 @@ public Builder networkType(String networkType) { } /** - * @param performanceInsightsEnabled Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @param performanceInsightsEnabled Enables Performance Insights for the RDS Cluster * * @return builder * @@ -2240,7 +2240,7 @@ public Builder performanceInsightsEnabled(@Nullable Output performanceI } /** - * @param performanceInsightsEnabled Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * @param performanceInsightsEnabled Enables Performance Insights for the RDS Cluster * * @return builder * @@ -2250,7 +2250,7 @@ public Builder performanceInsightsEnabled(Boolean performanceInsightsEnabled) { } /** - * @param performanceInsightsKmsKeyId Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @param performanceInsightsKmsKeyId Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * * @return builder * @@ -2261,7 +2261,7 @@ public Builder performanceInsightsKmsKeyId(@Nullable Output performanceI } /** - * @param performanceInsightsKmsKeyId Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * @param performanceInsightsKmsKeyId Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). * * @return builder * @@ -2271,7 +2271,7 @@ public Builder performanceInsightsKmsKeyId(String performanceInsightsKmsKeyId) { } /** - * @param performanceInsightsRetentionPeriod Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @param performanceInsightsRetentionPeriod Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * * @return builder * @@ -2282,7 +2282,7 @@ public Builder performanceInsightsRetentionPeriod(@Nullable Output perf } /** - * @param performanceInsightsRetentionPeriod Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * @param performanceInsightsRetentionPeriod Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/ClusterSnapshotCopyTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/ClusterSnapshotCopyTimeouts.java new file mode 100644 index 00000000000..f553fbdf420 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/ClusterSnapshotCopyTimeouts.java @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.rds.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterSnapshotCopyTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + + private ClusterSnapshotCopyTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterSnapshotCopyTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + public Builder() {} + public Builder(ClusterSnapshotCopyTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + public ClusterSnapshotCopyTimeouts build() { + final var _resultValue = new ClusterSnapshotCopyTimeouts(); + _resultValue.create = create; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/Resource.java b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/Resource.java index 73140954f85..91cbdb68930 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/Resource.java +++ b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/Resource.java @@ -69,36 +69,40 @@ *
* <!--End PulumiCodeChooser --> * + * ## Import + * + * Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: + * + * ```sh + * $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example + * ``` + * */ @ResourceType(type="aws:resourcegroups/resource:Resource") public class Resource extends com.pulumi.resources.CustomResource { /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. * */ @Export(name="groupArn", refs={String.class}, tree="[0]") private Output groupArn; /** - * @return The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @return Name or ARN of the resource group to add resources to. * */ public Output groupArn() { return this.groupArn; } /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. * */ @Export(name="resourceArn", refs={String.class}, tree="[0]") private Output resourceArn; /** - * @return The ARN of the resource to be added to the group. + * @return ARN of the resource to be added to the group. * */ public Output resourceArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/ResourceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/ResourceArgs.java index 76410e99da6..a2afd11f84c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/ResourceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/ResourceArgs.java @@ -15,18 +15,14 @@ public final class ResourceArgs extends com.pulumi.resources.ResourceArgs { public static final ResourceArgs Empty = new ResourceArgs(); /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. * */ @Import(name="groupArn", required=true) private Output groupArn; /** - * @return The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @return Name or ARN of the resource group to add resources to. * */ public Output groupArn() { @@ -34,14 +30,14 @@ public Output groupArn() { } /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. * */ @Import(name="resourceArn", required=true) private Output resourceArn; /** - * @return The ARN of the resource to be added to the group. + * @return ARN of the resource to be added to the group. * */ public Output resourceArn() { @@ -74,9 +70,7 @@ public Builder(ResourceArgs defaults) { } /** - * @param groupArn The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @param groupArn Name or ARN of the resource group to add resources to. * * @return builder * @@ -87,9 +81,7 @@ public Builder groupArn(Output groupArn) { } /** - * @param groupArn The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @param groupArn Name or ARN of the resource group to add resources to. * * @return builder * @@ -99,7 +91,7 @@ public Builder groupArn(String groupArn) { } /** - * @param resourceArn The ARN of the resource to be added to the group. + * @param resourceArn ARN of the resource to be added to the group. * * @return builder * @@ -110,7 +102,7 @@ public Builder resourceArn(Output resourceArn) { } /** - * @param resourceArn The ARN of the resource to be added to the group. + * @param resourceArn ARN of the resource to be added to the group. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/inputs/ResourceState.java b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/inputs/ResourceState.java index 41e6a0bf20d..f4f89b355e5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/inputs/ResourceState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/resourcegroups/inputs/ResourceState.java @@ -16,18 +16,14 @@ public final class ResourceState extends com.pulumi.resources.ResourceArgs { public static final ResourceState Empty = new ResourceState(); /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. * */ @Import(name="groupArn") private @Nullable Output groupArn; /** - * @return The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @return Name or ARN of the resource group to add resources to. * */ public Optional> groupArn() { @@ -35,14 +31,14 @@ public Optional> groupArn() { } /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. * */ @Import(name="resourceArn") private @Nullable Output resourceArn; /** - * @return The ARN of the resource to be added to the group. + * @return ARN of the resource to be added to the group. * */ public Optional> resourceArn() { @@ -91,9 +87,7 @@ public Builder(ResourceState defaults) { } /** - * @param groupArn The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @param groupArn Name or ARN of the resource group to add resources to. * * @return builder * @@ -104,9 +98,7 @@ public Builder groupArn(@Nullable Output groupArn) { } /** - * @param groupArn The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * @param groupArn Name or ARN of the resource group to add resources to. * * @return builder * @@ -116,7 +108,7 @@ public Builder groupArn(String groupArn) { } /** - * @param resourceArn The ARN of the resource to be added to the group. + * @param resourceArn ARN of the resource to be added to the group. * * @return builder * @@ -127,7 +119,7 @@ public Builder resourceArn(@Nullable Output resourceArn) { } /** - * @param resourceArn The ARN of the resource to be added to the group. + * @param resourceArn ARN of the resource to be added to the group. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java index 35aa8344728..4e10102da46 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java @@ -7,6 +7,8 @@ import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupArgs; +import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs; +import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetConstraintArgs; import com.pulumi.aws.servicecatalog.inputs.GetConstraintPlainArgs; @@ -21,6 +23,7 @@ import com.pulumi.aws.servicecatalog.inputs.GetProvisioningArtifactsArgs; import com.pulumi.aws.servicecatalog.inputs.GetProvisioningArtifactsPlainArgs; import com.pulumi.aws.servicecatalog.outputs.GetAppregistryApplicationResult; +import com.pulumi.aws.servicecatalog.outputs.GetAppregistryAttributeGroupAssociationsResult; import com.pulumi.aws.servicecatalog.outputs.GetAppregistryAttributeGroupResult; import com.pulumi.aws.servicecatalog.outputs.GetConstraintResult; import com.pulumi.aws.servicecatalog.outputs.GetLaunchPathsResult; @@ -564,6 +567,314 @@ public static Output getAppregistryAttribute public static CompletableFuture getAppregistryAttributeGroupPlain(GetAppregistryAttributeGroupPlainArgs args, InvokeOptions options) { return Deployment.getInstance().invokeAsync("aws:servicecatalog/getAppregistryAttributeGroup:getAppregistryAttributeGroup", TypeShape.of(GetAppregistryAttributeGroupResult.class), args, Utilities.withVersion(options)); } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryAttributeGroupAssociations() { + return getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.Empty, InvokeOptions.Empty); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAppregistryAttributeGroupAssociationsPlain() { + return getAppregistryAttributeGroupAssociationsPlain(GetAppregistryAttributeGroupAssociationsPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs args) { + return getAppregistryAttributeGroupAssociations(args, InvokeOptions.Empty); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAppregistryAttributeGroupAssociationsPlain(GetAppregistryAttributeGroupAssociationsPlainArgs args) { + return getAppregistryAttributeGroupAssociationsPlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", TypeShape.of(GetAppregistryAttributeGroupAssociationsResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", TypeShape.of(GetAppregistryAttributeGroupAssociationsResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions;
+     * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryAttributeGroupAssociationsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = ServicecatalogFunctions.getAppregistryAttributeGroupAssociations(GetAppregistryAttributeGroupAssociationsArgs.builder()
+     *             .id("12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAppregistryAttributeGroupAssociationsPlain(GetAppregistryAttributeGroupAssociationsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", TypeShape.of(GetAppregistryAttributeGroupAssociationsResult.class), args, Utilities.withVersion(options)); + } /** * Provides information on a Service Catalog Constraint. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsArgs.java new file mode 100644 index 00000000000..5aa36ed4867 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsArgs.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.servicecatalog.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAppregistryAttributeGroupAssociationsArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAppregistryAttributeGroupAssociationsArgs Empty = new GetAppregistryAttributeGroupAssociationsArgs(); + + /** + * ID of the application to which attribute groups are associated. + * + */ + @Import(name="id") + private @Nullable Output id; + + /** + * @return ID of the application to which attribute groups are associated. + * + */ + public Optional> id() { + return Optional.ofNullable(this.id); + } + + /** + * Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private GetAppregistryAttributeGroupAssociationsArgs() {} + + private GetAppregistryAttributeGroupAssociationsArgs(GetAppregistryAttributeGroupAssociationsArgs $) { + this.id = $.id; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAppregistryAttributeGroupAssociationsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAppregistryAttributeGroupAssociationsArgs $; + + public Builder() { + $ = new GetAppregistryAttributeGroupAssociationsArgs(); + } + + public Builder(GetAppregistryAttributeGroupAssociationsArgs defaults) { + $ = new GetAppregistryAttributeGroupAssociationsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id ID of the application to which attribute groups are associated. + * + * @return builder + * + */ + public Builder id(@Nullable Output id) { + $.id = id; + return this; + } + + /** + * @param id ID of the application to which attribute groups are associated. + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + /** + * @param name Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public GetAppregistryAttributeGroupAssociationsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsPlainArgs.java new file mode 100644 index 00000000000..817095f5c23 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryAttributeGroupAssociationsPlainArgs.java @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.servicecatalog.inputs; + +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAppregistryAttributeGroupAssociationsPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAppregistryAttributeGroupAssociationsPlainArgs Empty = new GetAppregistryAttributeGroupAssociationsPlainArgs(); + + /** + * ID of the application to which attribute groups are associated. + * + */ + @Import(name="id") + private @Nullable String id; + + /** + * @return ID of the application to which attribute groups are associated. + * + */ + public Optional id() { + return Optional.ofNullable(this.id); + } + + /** + * Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable String name; + + /** + * @return Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + + private GetAppregistryAttributeGroupAssociationsPlainArgs() {} + + private GetAppregistryAttributeGroupAssociationsPlainArgs(GetAppregistryAttributeGroupAssociationsPlainArgs $) { + this.id = $.id; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAppregistryAttributeGroupAssociationsPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAppregistryAttributeGroupAssociationsPlainArgs $; + + public Builder() { + $ = new GetAppregistryAttributeGroupAssociationsPlainArgs(); + } + + public Builder(GetAppregistryAttributeGroupAssociationsPlainArgs defaults) { + $ = new GetAppregistryAttributeGroupAssociationsPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id ID of the application to which attribute groups are associated. + * + * @return builder + * + */ + public Builder id(@Nullable String id) { + $.id = id; + return this; + } + + /** + * @param name Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable String name) { + $.name = name; + return this; + } + + public GetAppregistryAttributeGroupAssociationsPlainArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryAttributeGroupAssociationsResult.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryAttributeGroupAssociationsResult.java new file mode 100644 index 00000000000..1deb1e873c5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryAttributeGroupAssociationsResult.java @@ -0,0 +1,90 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.servicecatalog.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetAppregistryAttributeGroupAssociationsResult { + /** + * @return Set of attribute group IDs this application is associated with. + * + */ + private List attributeGroupIds; + private @Nullable String id; + private @Nullable String name; + + private GetAppregistryAttributeGroupAssociationsResult() {} + /** + * @return Set of attribute group IDs this application is associated with. + * + */ + public List attributeGroupIds() { + return this.attributeGroupIds; + } + public Optional id() { + return Optional.ofNullable(this.id); + } + public Optional name() { + return Optional.ofNullable(this.name); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetAppregistryAttributeGroupAssociationsResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List attributeGroupIds; + private @Nullable String id; + private @Nullable String name; + public Builder() {} + public Builder(GetAppregistryAttributeGroupAssociationsResult defaults) { + Objects.requireNonNull(defaults); + this.attributeGroupIds = defaults.attributeGroupIds; + this.id = defaults.id; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder attributeGroupIds(List attributeGroupIds) { + if (attributeGroupIds == null) { + throw new MissingRequiredPropertyException("GetAppregistryAttributeGroupAssociationsResult", "attributeGroupIds"); + } + this.attributeGroupIds = attributeGroupIds; + return this; + } + public Builder attributeGroupIds(String... attributeGroupIds) { + return attributeGroupIds(List.of(attributeGroupIds)); + } + @CustomType.Setter + public Builder id(@Nullable String id) { + + this.id = id; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + public GetAppregistryAttributeGroupAssociationsResult build() { + final var _resultValue = new GetAppregistryAttributeGroupAssociationsResult(); + _resultValue.attributeGroupIds = attributeGroupIds; + _resultValue.id = id; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/GroupSseConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/GroupSseConfigurationArgs.java index bd6ac90a2f6..9f67c228fef 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/GroupSseConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/inputs/GroupSseConfigurationArgs.java @@ -16,9 +16,17 @@ public final class GroupSseConfigurationArgs extends com.pulumi.resources.Resour public static final GroupSseConfigurationArgs Empty = new GroupSseConfigurationArgs(); + /** + * Boolean flag to indicate that the CMK should be used. + * + */ @Import(name="customerManagedKeyEnabled") private @Nullable Output customerManagedKeyEnabled; + /** + * @return Boolean flag to indicate that the CMK should be used. + * + */ public Optional> customerManagedKeyEnabled() { return Optional.ofNullable(this.customerManagedKeyEnabled); } @@ -63,11 +71,23 @@ public Builder(GroupSseConfigurationArgs defaults) { $ = new GroupSseConfigurationArgs(Objects.requireNonNull(defaults)); } + /** + * @param customerManagedKeyEnabled Boolean flag to indicate that the CMK should be used. + * + * @return builder + * + */ public Builder customerManagedKeyEnabled(@Nullable Output customerManagedKeyEnabled) { $.customerManagedKeyEnabled = customerManagedKeyEnabled; return this; } + /** + * @param customerManagedKeyEnabled Boolean flag to indicate that the CMK should be used. + * + * @return builder + * + */ public Builder customerManagedKeyEnabled(Boolean customerManagedKeyEnabled) { return customerManagedKeyEnabled(Output.of(customerManagedKeyEnabled)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/outputs/GroupSseConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/outputs/GroupSseConfiguration.java index dab5ed4a035..4232ec87a1b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/outputs/GroupSseConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/outputs/GroupSseConfiguration.java @@ -12,6 +12,10 @@ @CustomType public final class GroupSseConfiguration { + /** + * @return Boolean flag to indicate that the CMK should be used. + * + */ private @Nullable Boolean customerManagedKeyEnabled; /** * @return ARN of the KMS key to use. @@ -20,6 +24,10 @@ public final class GroupSseConfiguration { private @Nullable String kmsKeyArn; private GroupSseConfiguration() {} + /** + * @return Boolean flag to indicate that the CMK should be used. + * + */ public Optional customerManagedKeyEnabled() { return Optional.ofNullable(this.customerManagedKeyEnabled); } diff --git a/sdk/nodejs/amplify/domainAssociation.ts b/sdk/nodejs/amplify/domainAssociation.ts index 5972b6181d2..887f54b4173 100644 --- a/sdk/nodejs/amplify/domainAssociation.ts +++ b/sdk/nodejs/amplify/domainAssociation.ts @@ -91,7 +91,7 @@ export class DomainAssociation extends pulumi.CustomResource { /** * The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. */ - public readonly certificateSettings!: pulumi.Output; + public readonly certificateSettings!: pulumi.Output; /** * DNS records for certificate verification in a space-delimited format (` CNAME `). */ diff --git a/sdk/nodejs/apigateway/domainNameAccessAssociation.ts b/sdk/nodejs/apigateway/domainNameAccessAssociation.ts new file mode 100644 index 00000000000..f69baae21b3 --- /dev/null +++ b/sdk/nodejs/apigateway/domainNameAccessAssociation.ts @@ -0,0 +1,180 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Creates a domain name access association resource between an access association source and a private custom domain name. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.apigateway.DomainNameAccessAssociation("example", { + * accessAssociationSource: exampleAwsVpcEndpoint.id, + * accessAssociationSourceType: "VPCE", + * domainNameArn: exampleAwsApiGatewayDomainName.domainNameArn, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: + * + * ```sh + * $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 + * ``` + */ +export class DomainNameAccessAssociation extends pulumi.CustomResource { + /** + * Get an existing DomainNameAccessAssociation resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: DomainNameAccessAssociationState, opts?: pulumi.CustomResourceOptions): DomainNameAccessAssociation { + return new DomainNameAccessAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation'; + + /** + * Returns true if the given object is an instance of DomainNameAccessAssociation. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DomainNameAccessAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DomainNameAccessAssociation.__pulumiType; + } + + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + */ + public readonly accessAssociationSource!: pulumi.Output; + /** + * The type of the domain name access association source. Valid values are `VPCE`. + */ + public readonly accessAssociationSourceType!: pulumi.Output; + /** + * ARN of the domain name access association. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The ARN of the domain name. + */ + public readonly domainNameArn!: pulumi.Output; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + + /** + * Create a DomainNameAccessAssociation resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: DomainNameAccessAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DomainNameAccessAssociationArgs | DomainNameAccessAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DomainNameAccessAssociationState | undefined; + resourceInputs["accessAssociationSource"] = state ? state.accessAssociationSource : undefined; + resourceInputs["accessAssociationSourceType"] = state ? state.accessAssociationSourceType : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["domainNameArn"] = state ? state.domainNameArn : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + } else { + const args = argsOrState as DomainNameAccessAssociationArgs | undefined; + if ((!args || args.accessAssociationSource === undefined) && !opts.urn) { + throw new Error("Missing required property 'accessAssociationSource'"); + } + if ((!args || args.accessAssociationSourceType === undefined) && !opts.urn) { + throw new Error("Missing required property 'accessAssociationSourceType'"); + } + if ((!args || args.domainNameArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'domainNameArn'"); + } + resourceInputs["accessAssociationSource"] = args ? args.accessAssociationSource : undefined; + resourceInputs["accessAssociationSourceType"] = args ? args.accessAssociationSourceType : undefined; + resourceInputs["domainNameArn"] = args ? args.domainNameArn : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DomainNameAccessAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DomainNameAccessAssociation resources. + */ +export interface DomainNameAccessAssociationState { + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + */ + accessAssociationSource?: pulumi.Input; + /** + * The type of the domain name access association source. Valid values are `VPCE`. + */ + accessAssociationSourceType?: pulumi.Input; + /** + * ARN of the domain name access association. + */ + arn?: pulumi.Input; + /** + * The ARN of the domain name. + */ + domainNameArn?: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a DomainNameAccessAssociation resource. + */ +export interface DomainNameAccessAssociationArgs { + /** + * The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + */ + accessAssociationSource: pulumi.Input; + /** + * The type of the domain name access association source. Valid values are `VPCE`. + */ + accessAssociationSourceType: pulumi.Input; + /** + * The ARN of the domain name. + */ + domainNameArn: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/apigateway/index.ts b/sdk/nodejs/apigateway/index.ts index 328ba6fa252..3cfa8f3fa85 100644 --- a/sdk/nodejs/apigateway/index.ts +++ b/sdk/nodejs/apigateway/index.ts @@ -50,6 +50,11 @@ export type DomainName = import("./domainName").DomainName; export const DomainName: typeof import("./domainName").DomainName = null as any; utilities.lazyLoad(exports, ["DomainName"], () => require("./domainName")); +export { DomainNameAccessAssociationArgs, DomainNameAccessAssociationState } from "./domainNameAccessAssociation"; +export type DomainNameAccessAssociation = import("./domainNameAccessAssociation").DomainNameAccessAssociation; +export const DomainNameAccessAssociation: typeof import("./domainNameAccessAssociation").DomainNameAccessAssociation = null as any; +utilities.lazyLoad(exports, ["DomainNameAccessAssociation"], () => require("./domainNameAccessAssociation")); + export { GetAuthorizerArgs, GetAuthorizerResult, GetAuthorizerOutputArgs } from "./getAuthorizer"; export const getAuthorizer: typeof import("./getAuthorizer").getAuthorizer = null as any; export const getAuthorizerOutput: typeof import("./getAuthorizer").getAuthorizerOutput = null as any; @@ -193,6 +198,8 @@ const _module = { return new DocumentationVersion(name, undefined, { urn }) case "aws:apigateway/domainName:DomainName": return new DomainName(name, undefined, { urn }) + case "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation": + return new DomainNameAccessAssociation(name, undefined, { urn }) case "aws:apigateway/integration:Integration": return new Integration(name, undefined, { urn }) case "aws:apigateway/integrationResponse:IntegrationResponse": @@ -237,6 +244,7 @@ pulumi.runtime.registerResourceModule("aws", "apigateway/deployment", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/documentationPart", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/documentationVersion", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/domainName", _module) +pulumi.runtime.registerResourceModule("aws", "apigateway/domainNameAccessAssociation", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/integration", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/integrationResponse", _module) pulumi.runtime.registerResourceModule("aws", "apigateway/method", _module) diff --git a/sdk/nodejs/appstream/stack.ts b/sdk/nodejs/appstream/stack.ts index 226d5e08a06..ce9a9ed8fe7 100644 --- a/sdk/nodejs/appstream/stack.ts +++ b/sdk/nodejs/appstream/stack.ts @@ -27,6 +27,10 @@ import * as utilities from "../utilities"; * }], * userSettings: [ * { + * action: "AUTO_TIME_ZONE_REDIRECTION", + * permission: "DISABLED", + * }, + * { * action: "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", * permission: "ENABLED", * }, diff --git a/sdk/nodejs/autoscaling/group.ts b/sdk/nodejs/autoscaling/group.ts index aa595f78be0..76e164410da 100644 --- a/sdk/nodejs/autoscaling/group.ts +++ b/sdk/nodejs/autoscaling/group.ts @@ -490,6 +490,10 @@ export class Group extends pulumi.CustomResource { * ARN for this Auto Scaling Group */ public /*out*/ readonly arn!: pulumi.Output; + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + */ + public readonly availabilityZoneDistribution!: pulumi.Output; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. */ @@ -703,6 +707,7 @@ export class Group extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as GroupState | undefined; resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["availabilityZoneDistribution"] = state ? state.availabilityZoneDistribution : undefined; resourceInputs["availabilityZones"] = state ? state.availabilityZones : undefined; resourceInputs["capacityRebalance"] = state ? state.capacityRebalance : undefined; resourceInputs["context"] = state ? state.context : undefined; @@ -752,6 +757,7 @@ export class Group extends pulumi.CustomResource { if ((!args || args.minSize === undefined) && !opts.urn) { throw new Error("Missing required property 'minSize'"); } + resourceInputs["availabilityZoneDistribution"] = args ? args.availabilityZoneDistribution : undefined; resourceInputs["availabilityZones"] = args ? args.availabilityZones : undefined; resourceInputs["capacityRebalance"] = args ? args.capacityRebalance : undefined; resourceInputs["context"] = args ? args.context : undefined; @@ -808,6 +814,10 @@ export interface GroupState { * ARN for this Auto Scaling Group */ arn?: pulumi.Input; + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + */ + availabilityZoneDistribution?: pulumi.Input; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. */ @@ -1012,6 +1022,10 @@ export interface GroupState { * The set of arguments for constructing a Group resource. */ export interface GroupArgs { + /** + * The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + */ + availabilityZoneDistribution?: pulumi.Input; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpcZoneIdentifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpcZoneIdentifier`. */ diff --git a/sdk/nodejs/bedrock/agentAgent.ts b/sdk/nodejs/bedrock/agentAgent.ts index 0bddf9402db..e1fa263c891 100644 --- a/sdk/nodejs/bedrock/agentAgent.ts +++ b/sdk/nodejs/bedrock/agentAgent.ts @@ -104,6 +104,10 @@ export class AgentAgent extends pulumi.CustomResource { * ARN of the agent. */ public /*out*/ readonly agentArn!: pulumi.Output; + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + */ + public readonly agentCollaboration!: pulumi.Output; /** * Unique identifier of the agent. */ @@ -184,6 +188,7 @@ export class AgentAgent extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as AgentAgentState | undefined; resourceInputs["agentArn"] = state ? state.agentArn : undefined; + resourceInputs["agentCollaboration"] = state ? state.agentCollaboration : undefined; resourceInputs["agentId"] = state ? state.agentId : undefined; resourceInputs["agentName"] = state ? state.agentName : undefined; resourceInputs["agentResourceRoleArn"] = state ? state.agentResourceRoleArn : undefined; @@ -211,6 +216,7 @@ export class AgentAgent extends pulumi.CustomResource { if ((!args || args.foundationModel === undefined) && !opts.urn) { throw new Error("Missing required property 'foundationModel'"); } + resourceInputs["agentCollaboration"] = args ? args.agentCollaboration : undefined; resourceInputs["agentName"] = args ? args.agentName : undefined; resourceInputs["agentResourceRoleArn"] = args ? args.agentResourceRoleArn : undefined; resourceInputs["customerEncryptionKeyArn"] = args ? args.customerEncryptionKeyArn : undefined; @@ -242,6 +248,10 @@ export interface AgentAgentState { * ARN of the agent. */ agentArn?: pulumi.Input; + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + */ + agentCollaboration?: pulumi.Input; /** * Unique identifier of the agent. */ @@ -313,6 +323,10 @@ export interface AgentAgentState { * The set of arguments for constructing a AgentAgent resource. */ export interface AgentAgentArgs { + /** + * Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + */ + agentCollaboration?: pulumi.Input; /** * Name of the agent. */ diff --git a/sdk/nodejs/cloudfront/index.ts b/sdk/nodejs/cloudfront/index.ts index c175841a61e..423f459d138 100644 --- a/sdk/nodejs/cloudfront/index.ts +++ b/sdk/nodejs/cloudfront/index.ts @@ -135,6 +135,11 @@ export type ResponseHeadersPolicy = import("./responseHeadersPolicy").ResponseHe export const ResponseHeadersPolicy: typeof import("./responseHeadersPolicy").ResponseHeadersPolicy = null as any; utilities.lazyLoad(exports, ["ResponseHeadersPolicy"], () => require("./responseHeadersPolicy")); +export { VpcOriginArgs, VpcOriginState } from "./vpcOrigin"; +export type VpcOrigin = import("./vpcOrigin").VpcOrigin; +export const VpcOrigin: typeof import("./vpcOrigin").VpcOrigin = null as any; +utilities.lazyLoad(exports, ["VpcOrigin"], () => require("./vpcOrigin")); + const _module = { version: utilities.getVersion(), @@ -172,6 +177,8 @@ const _module = { return new RealtimeLogConfig(name, undefined, { urn }) case "aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy": return new ResponseHeadersPolicy(name, undefined, { urn }) + case "aws:cloudfront/vpcOrigin:VpcOrigin": + return new VpcOrigin(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } @@ -193,3 +200,4 @@ pulumi.runtime.registerResourceModule("aws", "cloudfront/originRequestPolicy", _ pulumi.runtime.registerResourceModule("aws", "cloudfront/publicKey", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/realtimeLogConfig", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/responseHeadersPolicy", _module) +pulumi.runtime.registerResourceModule("aws", "cloudfront/vpcOrigin", _module) diff --git a/sdk/nodejs/cloudfront/vpcOrigin.ts b/sdk/nodejs/cloudfront/vpcOrigin.ts new file mode 100644 index 00000000000..73f0ec946f9 --- /dev/null +++ b/sdk/nodejs/cloudfront/vpcOrigin.ts @@ -0,0 +1,166 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Creates an Amazon CloudFront VPC origin. + * + * For information about CloudFront VPC origins, see + * [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. + * + * ## Example Usage + * + * ### Application Load Balancer + * + * The following example below creates a CloudFront VPC origin for a Application Load Balancer. + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const alb = new aws.cloudfront.VpcOrigin("alb", {vpcOriginEndpointConfig: { + * name: "Example VPC Origin", + * arn: _this.arn, + * httpPort: 8080, + * httpsPort: 8443, + * originProtocolPolicy: "https-only", + * originSslProtocols: { + * items: ["TLSv1.2"], + * quantity: 1, + * }, + * }}); + * ``` + * + * ## Import + * + * terraform + * + * import { + * + * to = aws_cloudfront_vpc_origin.origin + * + * id = vo_JQEa410sssUFoY6wMkx69j + * + * } + * + * Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: + * + * console + * + * % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j + */ +export class VpcOrigin extends pulumi.CustomResource { + /** + * Get an existing VpcOrigin resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: VpcOriginState, opts?: pulumi.CustomResourceOptions): VpcOrigin { + return new VpcOrigin(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:cloudfront/vpcOrigin:VpcOrigin'; + + /** + * Returns true if the given object is an instance of VpcOrigin. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is VpcOrigin { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === VpcOrigin.__pulumiType; + } + + /** + * The VPC origin ARN. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The current version of the origin. + */ + public /*out*/ readonly etag!: pulumi.Output; + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + public readonly vpcOriginEndpointConfig!: pulumi.Output; + + /** + * Create a VpcOrigin resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: VpcOriginArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: VpcOriginArgs | VpcOriginState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as VpcOriginState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["vpcOriginEndpointConfig"] = state ? state.vpcOriginEndpointConfig : undefined; + } else { + const args = argsOrState as VpcOriginArgs | undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["vpcOriginEndpointConfig"] = args ? args.vpcOriginEndpointConfig : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["etag"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(VpcOrigin.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering VpcOrigin resources. + */ +export interface VpcOriginState { + /** + * The VPC origin ARN. + */ + arn?: pulumi.Input; + /** + * The current version of the origin. + */ + etag?: pulumi.Input; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + vpcOriginEndpointConfig?: pulumi.Input; +} + +/** + * The set of arguments for constructing a VpcOrigin resource. + */ +export interface VpcOriginArgs { + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + vpcOriginEndpointConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/cloudwatch/logAccountPolicy.ts b/sdk/nodejs/cloudwatch/logAccountPolicy.ts index d8976635697..b1dd244d7d9 100644 --- a/sdk/nodejs/cloudwatch/logAccountPolicy.ts +++ b/sdk/nodejs/cloudwatch/logAccountPolicy.ts @@ -62,6 +62,24 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Field Index Policy + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const fieldIndex = new aws.cloudwatch.LogAccountPolicy("field_index", { + * policyName: "field-index", + * policyType: "FIELD_INDEX_POLICY", + * policyDocument: JSON.stringify({ + * Fields: [ + * "field1", + * "field2", + * ], + * }), + * }); + * ``` + * * ## Import * * Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -107,7 +125,7 @@ export class LogAccountPolicy extends pulumi.CustomResource { */ public readonly policyName!: pulumi.Output; /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. */ public readonly policyType!: pulumi.Output; /** @@ -172,7 +190,7 @@ export interface LogAccountPolicyState { */ policyName?: pulumi.Input; /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. */ policyType?: pulumi.Input; /** @@ -198,7 +216,7 @@ export interface LogAccountPolicyArgs { */ policyName: pulumi.Input; /** - * Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + * Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. */ policyType: pulumi.Input; /** diff --git a/sdk/nodejs/directconnect/gateway.ts b/sdk/nodejs/directconnect/gateway.ts index 7ba99aeb384..793cc16b987 100644 --- a/sdk/nodejs/directconnect/gateway.ts +++ b/sdk/nodejs/directconnect/gateway.ts @@ -59,6 +59,10 @@ export class Gateway extends pulumi.CustomResource { * The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. */ public readonly amazonSideAsn!: pulumi.Output; + /** + * The ARN of the gateway. + */ + public /*out*/ readonly arn!: pulumi.Output; /** * The name of the connection. */ @@ -82,6 +86,7 @@ export class Gateway extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as GatewayState | undefined; resourceInputs["amazonSideAsn"] = state ? state.amazonSideAsn : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["ownerAccountId"] = state ? state.ownerAccountId : undefined; } else { @@ -91,6 +96,7 @@ export class Gateway extends pulumi.CustomResource { } resourceInputs["amazonSideAsn"] = args ? args.amazonSideAsn : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["arn"] = undefined /*out*/; resourceInputs["ownerAccountId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); @@ -106,6 +112,10 @@ export interface GatewayState { * The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. */ amazonSideAsn?: pulumi.Input; + /** + * The ARN of the gateway. + */ + arn?: pulumi.Input; /** * The name of the connection. */ diff --git a/sdk/nodejs/directconnect/getGateway.ts b/sdk/nodejs/directconnect/getGateway.ts index 0d7587aa770..70bb821f3db 100644 --- a/sdk/nodejs/directconnect/getGateway.ts +++ b/sdk/nodejs/directconnect/getGateway.ts @@ -43,6 +43,10 @@ export interface GetGatewayResult { * ASN on the Amazon side of the connection. */ readonly amazonSideAsn: string; + /** + * ARN of the gateway. + */ + readonly arn: string; /** * The provider-assigned unique ID for this managed resource. */ diff --git a/sdk/nodejs/ec2/vpcEndpoint.ts b/sdk/nodejs/ec2/vpcEndpoint.ts index 63b2e1c69d9..c0f06d1e8e4 100644 --- a/sdk/nodejs/ec2/vpcEndpoint.ts +++ b/sdk/nodejs/ec2/vpcEndpoint.ts @@ -207,6 +207,10 @@ export class VpcEndpoint extends pulumi.CustomResource { * The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ public readonly serviceName!: pulumi.Output; + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + */ + public readonly serviceRegion!: pulumi.Output; /** * The state of the VPC endpoint. */ @@ -266,6 +270,7 @@ export class VpcEndpoint extends pulumi.CustomResource { resourceInputs["routeTableIds"] = state ? state.routeTableIds : undefined; resourceInputs["securityGroupIds"] = state ? state.securityGroupIds : undefined; resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["serviceRegion"] = state ? state.serviceRegion : undefined; resourceInputs["state"] = state ? state.state : undefined; resourceInputs["subnetConfigurations"] = state ? state.subnetConfigurations : undefined; resourceInputs["subnetIds"] = state ? state.subnetIds : undefined; @@ -289,6 +294,7 @@ export class VpcEndpoint extends pulumi.CustomResource { resourceInputs["routeTableIds"] = args ? args.routeTableIds : undefined; resourceInputs["securityGroupIds"] = args ? args.securityGroupIds : undefined; resourceInputs["serviceName"] = args ? args.serviceName : undefined; + resourceInputs["serviceRegion"] = args ? args.serviceRegion : undefined; resourceInputs["subnetConfigurations"] = args ? args.subnetConfigurations : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; resourceInputs["tags"] = args ? args.tags : undefined; @@ -375,6 +381,10 @@ export interface VpcEndpointState { * The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ serviceName?: pulumi.Input; + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + */ + serviceRegion?: pulumi.Input; /** * The state of the VPC endpoint. */ @@ -445,6 +455,10 @@ export interface VpcEndpointArgs { * The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ serviceName: pulumi.Input; + /** + * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + */ + serviceRegion?: pulumi.Input; /** * Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnetConfiguration below. */ diff --git a/sdk/nodejs/eks/cluster.ts b/sdk/nodejs/eks/cluster.ts index b647adab431..105af5c9117 100644 --- a/sdk/nodejs/eks/cluster.ts +++ b/sdk/nodejs/eks/cluster.ts @@ -59,7 +59,7 @@ import * as utilities from "../utilities"; * * ### EKS Cluster with EKS Auto Mode * - * > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. + * > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrapSelfManagedAddons` is set to `false`. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -121,6 +121,7 @@ import * as utilities from "../utilities"; * }, * roleArn: cluster.arn, * version: "1.31", + * bootstrapSelfManagedAddons: false, * computeConfig: { * enabled: true, * nodePools: ["general-purpose"], diff --git a/sdk/nodejs/elasticache/replicationGroup.ts b/sdk/nodejs/elasticache/replicationGroup.ts index 7837f12ce1b..7a6bd1ef33c 100644 --- a/sdk/nodejs/elasticache/replicationGroup.ts +++ b/sdk/nodejs/elasticache/replicationGroup.ts @@ -241,6 +241,8 @@ export class ReplicationGroup extends pulumi.CustomResource { public /*out*/ readonly arn!: pulumi.Output; /** * Whether to enable encryption at rest. + * When `engine` is `redis`, default is `false`. + * When `engine` is `valkey`, default is `true`. */ public readonly atRestEncryptionEnabled!: pulumi.Output; /** @@ -282,7 +284,9 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + * Name of the cache engine to be used for the clusters in this replication group. + * Valid values are `redis` or `valkey`. + * Default is `redis`. */ public readonly engine!: pulumi.Output; /** @@ -585,6 +589,8 @@ export interface ReplicationGroupState { arn?: pulumi.Input; /** * Whether to enable encryption at rest. + * When `engine` is `redis`, default is `false`. + * When `engine` is `valkey`, default is `true`. */ atRestEncryptionEnabled?: pulumi.Input; /** @@ -626,7 +632,9 @@ export interface ReplicationGroupState { */ description?: pulumi.Input; /** - * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + * Name of the cache engine to be used for the clusters in this replication group. + * Valid values are `redis` or `valkey`. + * Default is `redis`. */ engine?: pulumi.Input; /** @@ -806,6 +814,8 @@ export interface ReplicationGroupArgs { applyImmediately?: pulumi.Input; /** * Whether to enable encryption at rest. + * When `engine` is `redis`, default is `false`. + * When `engine` is `valkey`, default is `true`. */ atRestEncryptionEnabled?: pulumi.Input; /** @@ -839,7 +849,9 @@ export interface ReplicationGroupArgs { */ description: pulumi.Input; /** - * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + * Name of the cache engine to be used for the clusters in this replication group. + * Valid values are `redis` or `valkey`. + * Default is `redis`. */ engine?: pulumi.Input; /** diff --git a/sdk/nodejs/fsx/lustreFileSystem.ts b/sdk/nodejs/fsx/lustreFileSystem.ts index 41f80f46a5c..54441fc4a35 100644 --- a/sdk/nodejs/fsx/lustreFileSystem.ts +++ b/sdk/nodejs/fsx/lustreFileSystem.ts @@ -102,6 +102,10 @@ export class LustreFileSystem extends pulumi.CustomResource { * The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. */ public readonly driveCacheType!: pulumi.Output; + /** + * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + */ + public readonly efaEnabled!: pulumi.Output; /** * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. */ @@ -222,6 +226,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["deploymentType"] = state ? state.deploymentType : undefined; resourceInputs["dnsName"] = state ? state.dnsName : undefined; resourceInputs["driveCacheType"] = state ? state.driveCacheType : undefined; + resourceInputs["efaEnabled"] = state ? state.efaEnabled : undefined; resourceInputs["exportPath"] = state ? state.exportPath : undefined; resourceInputs["fileSystemTypeVersion"] = state ? state.fileSystemTypeVersion : undefined; resourceInputs["finalBackupTags"] = state ? state.finalBackupTags : undefined; @@ -257,6 +262,7 @@ export class LustreFileSystem extends pulumi.CustomResource { resourceInputs["dataCompressionType"] = args ? args.dataCompressionType : undefined; resourceInputs["deploymentType"] = args ? args.deploymentType : undefined; resourceInputs["driveCacheType"] = args ? args.driveCacheType : undefined; + resourceInputs["efaEnabled"] = args ? args.efaEnabled : undefined; resourceInputs["exportPath"] = args ? args.exportPath : undefined; resourceInputs["fileSystemTypeVersion"] = args ? args.fileSystemTypeVersion : undefined; resourceInputs["finalBackupTags"] = args ? args.finalBackupTags : undefined; @@ -331,6 +337,10 @@ export interface LustreFileSystemState { * The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. */ driveCacheType?: pulumi.Input; + /** + * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + */ + efaEnabled?: pulumi.Input; /** * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. */ @@ -465,6 +475,10 @@ export interface LustreFileSystemArgs { * The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. */ driveCacheType?: pulumi.Input; + /** + * Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `perUnitStorageThroughput`. This is only supported when deploymentType is set to `PERSISTENT_2`, `metadataConfiguration` is used, and an EFA-enabled security group is attached. + */ + efaEnabled?: pulumi.Input; /** * S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `importPath` argument and the path must use the same Amazon S3 bucket as specified in `importPath`. Set equal to `importPath` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. */ diff --git a/sdk/nodejs/lakeformation/permissions.ts b/sdk/nodejs/lakeformation/permissions.ts index 027625399bb..1f51ea34180 100644 --- a/sdk/nodejs/lakeformation/permissions.ts +++ b/sdk/nodejs/lakeformation/permissions.ts @@ -83,6 +83,21 @@ import * as utilities from "../utilities"; * | ---- | ---- | * | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) | * + * ## `ALLIAMPrincipals` group + * + * AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined. + * + * resource "aws.lakeformation.Permissions" "example" { + * permissions = ["SELECT"] + * principal = "123456789012:IAMPrincipals" + * + * tableWithColumns { + * databaseName = aws_glue_catalog_table.example.database_name + * name = aws_glue_catalog_table.example.name + * columnNames = ["event"] + * } + * } + * * ## Using Lake Formation Permissions * * Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed. diff --git a/sdk/nodejs/memorydb/cluster.ts b/sdk/nodejs/memorydb/cluster.ts index e4f83d8c760..8db166d05bf 100644 --- a/sdk/nodejs/memorydb/cluster.ts +++ b/sdk/nodejs/memorydb/cluster.ts @@ -112,6 +112,10 @@ export class Cluster extends pulumi.CustomResource { * Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. */ public readonly maintenanceWindow!: pulumi.Output; + /** + * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + */ + public readonly multiRegionClusterName!: pulumi.Output; /** * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. */ @@ -214,6 +218,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["finalSnapshotName"] = state ? state.finalSnapshotName : undefined; resourceInputs["kmsKeyArn"] = state ? state.kmsKeyArn : undefined; resourceInputs["maintenanceWindow"] = state ? state.maintenanceWindow : undefined; + resourceInputs["multiRegionClusterName"] = state ? state.multiRegionClusterName : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["namePrefix"] = state ? state.namePrefix : undefined; resourceInputs["nodeType"] = state ? state.nodeType : undefined; @@ -249,6 +254,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["finalSnapshotName"] = args ? args.finalSnapshotName : undefined; resourceInputs["kmsKeyArn"] = args ? args.kmsKeyArn : undefined; resourceInputs["maintenanceWindow"] = args ? args.maintenanceWindow : undefined; + resourceInputs["multiRegionClusterName"] = args ? args.multiRegionClusterName : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["namePrefix"] = args ? args.namePrefix : undefined; resourceInputs["nodeType"] = args ? args.nodeType : undefined; @@ -325,6 +331,10 @@ export interface ClusterState { * Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. */ maintenanceWindow?: pulumi.Input; + /** + * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + */ + multiRegionClusterName?: pulumi.Input; /** * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. */ @@ -443,6 +453,10 @@ export interface ClusterArgs { * Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. */ maintenanceWindow?: pulumi.Input; + /** + * The multi region cluster identifier specified on `aws.memorydb.MultiRegionCluster`. + */ + multiRegionClusterName?: pulumi.Input; /** * Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. */ diff --git a/sdk/nodejs/memorydb/index.ts b/sdk/nodejs/memorydb/index.ts index 372e3ee6eaa..dc35eaaef77 100644 --- a/sdk/nodejs/memorydb/index.ts +++ b/sdk/nodejs/memorydb/index.ts @@ -45,6 +45,11 @@ export const getUser: typeof import("./getUser").getUser = null as any; export const getUserOutput: typeof import("./getUser").getUserOutput = null as any; utilities.lazyLoad(exports, ["getUser","getUserOutput"], () => require("./getUser")); +export { MultiRegionClusterArgs, MultiRegionClusterState } from "./multiRegionCluster"; +export type MultiRegionCluster = import("./multiRegionCluster").MultiRegionCluster; +export const MultiRegionCluster: typeof import("./multiRegionCluster").MultiRegionCluster = null as any; +utilities.lazyLoad(exports, ["MultiRegionCluster"], () => require("./multiRegionCluster")); + export { ParameterGroupArgs, ParameterGroupState } from "./parameterGroup"; export type ParameterGroup = import("./parameterGroup").ParameterGroup; export const ParameterGroup: typeof import("./parameterGroup").ParameterGroup = null as any; @@ -74,6 +79,8 @@ const _module = { return new Acl(name, undefined, { urn }) case "aws:memorydb/cluster:Cluster": return new Cluster(name, undefined, { urn }) + case "aws:memorydb/multiRegionCluster:MultiRegionCluster": + return new MultiRegionCluster(name, undefined, { urn }) case "aws:memorydb/parameterGroup:ParameterGroup": return new ParameterGroup(name, undefined, { urn }) case "aws:memorydb/snapshot:Snapshot": @@ -89,6 +96,7 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "memorydb/acl", _module) pulumi.runtime.registerResourceModule("aws", "memorydb/cluster", _module) +pulumi.runtime.registerResourceModule("aws", "memorydb/multiRegionCluster", _module) pulumi.runtime.registerResourceModule("aws", "memorydb/parameterGroup", _module) pulumi.runtime.registerResourceModule("aws", "memorydb/snapshot", _module) pulumi.runtime.registerResourceModule("aws", "memorydb/subnetGroup", _module) diff --git a/sdk/nodejs/memorydb/multiRegionCluster.ts b/sdk/nodejs/memorydb/multiRegionCluster.ts new file mode 100644 index 00000000000..caa0cde1fd2 --- /dev/null +++ b/sdk/nodejs/memorydb/multiRegionCluster.ts @@ -0,0 +1,292 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Provides a MemoryDB Multi Region Cluster. + * + * More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html). + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.memorydb.MultiRegionCluster("example", { + * multiRegionClusterNameSuffix: "example", + * nodeType: "db.r7g.xlarge", + * }); + * const exampleCluster = new aws.memorydb.Cluster("example", { + * aclName: exampleAwsMemorydbAcl.id, + * autoMinorVersionUpgrade: false, + * name: "example", + * nodeType: "db.t4g.small", + * numShards: 2, + * securityGroupIds: [exampleAwsSecurityGroup.id], + * snapshotRetentionLimit: 7, + * subnetGroupName: exampleAwsMemorydbSubnetGroup.id, + * multiRegionClusterName: example.multiRegionClusterName, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: + * + * ```sh + * $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example + * ``` + */ +export class MultiRegionCluster extends pulumi.CustomResource { + /** + * Get an existing MultiRegionCluster resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: MultiRegionClusterState, opts?: pulumi.CustomResourceOptions): MultiRegionCluster { + return new MultiRegionCluster(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:memorydb/multiRegionCluster:MultiRegionCluster'; + + /** + * Returns true if the given object is an instance of MultiRegionCluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MultiRegionCluster { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MultiRegionCluster.__pulumiType; + } + + /** + * The ARN of the multi-region cluster. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * description for the multi-region cluster. + */ + public readonly description!: pulumi.Output; + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + */ + public readonly engine!: pulumi.Output; + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + */ + public readonly engineVersion!: pulumi.Output; + /** + * The name of the multi-region cluster. + */ + public /*out*/ readonly multiRegionClusterName!: pulumi.Output; + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + */ + public readonly multiRegionClusterNameSuffix!: pulumi.Output; + /** + * The name of the multi-region parameter group to be associated with the cluster. + */ + public readonly multiRegionParameterGroupName!: pulumi.Output; + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + */ + public readonly nodeType!: pulumi.Output; + /** + * The number of shards for the multi-region cluster. + */ + public readonly numShards!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + /** + * A flag to enable in-transit encryption on the cluster. + */ + public readonly tlsEnabled!: pulumi.Output; + public readonly updateStrategy!: pulumi.Output; + + /** + * Create a MultiRegionCluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MultiRegionClusterArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MultiRegionClusterArgs | MultiRegionClusterState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MultiRegionClusterState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["engine"] = state ? state.engine : undefined; + resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; + resourceInputs["multiRegionClusterName"] = state ? state.multiRegionClusterName : undefined; + resourceInputs["multiRegionClusterNameSuffix"] = state ? state.multiRegionClusterNameSuffix : undefined; + resourceInputs["multiRegionParameterGroupName"] = state ? state.multiRegionParameterGroupName : undefined; + resourceInputs["nodeType"] = state ? state.nodeType : undefined; + resourceInputs["numShards"] = state ? state.numShards : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["tlsEnabled"] = state ? state.tlsEnabled : undefined; + resourceInputs["updateStrategy"] = state ? state.updateStrategy : undefined; + } else { + const args = argsOrState as MultiRegionClusterArgs | undefined; + if ((!args || args.multiRegionClusterNameSuffix === undefined) && !opts.urn) { + throw new Error("Missing required property 'multiRegionClusterNameSuffix'"); + } + if ((!args || args.nodeType === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodeType'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["engine"] = args ? args.engine : undefined; + resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; + resourceInputs["multiRegionClusterNameSuffix"] = args ? args.multiRegionClusterNameSuffix : undefined; + resourceInputs["multiRegionParameterGroupName"] = args ? args.multiRegionParameterGroupName : undefined; + resourceInputs["nodeType"] = args ? args.nodeType : undefined; + resourceInputs["numShards"] = args ? args.numShards : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["tlsEnabled"] = args ? args.tlsEnabled : undefined; + resourceInputs["updateStrategy"] = args ? args.updateStrategy : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["multiRegionClusterName"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MultiRegionCluster.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MultiRegionCluster resources. + */ +export interface MultiRegionClusterState { + /** + * The ARN of the multi-region cluster. + */ + arn?: pulumi.Input; + /** + * description for the multi-region cluster. + */ + description?: pulumi.Input; + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + */ + engine?: pulumi.Input; + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + */ + engineVersion?: pulumi.Input; + /** + * The name of the multi-region cluster. + */ + multiRegionClusterName?: pulumi.Input; + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + */ + multiRegionClusterNameSuffix?: pulumi.Input; + /** + * The name of the multi-region parameter group to be associated with the cluster. + */ + multiRegionParameterGroupName?: pulumi.Input; + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + */ + nodeType?: pulumi.Input; + /** + * The number of shards for the multi-region cluster. + */ + numShards?: pulumi.Input; + status?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + /** + * A flag to enable in-transit encryption on the cluster. + */ + tlsEnabled?: pulumi.Input; + updateStrategy?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MultiRegionCluster resource. + */ +export interface MultiRegionClusterArgs { + /** + * description for the multi-region cluster. + */ + description?: pulumi.Input; + /** + * The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + */ + engine?: pulumi.Input; + /** + * The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + */ + engineVersion?: pulumi.Input; + /** + * A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + */ + multiRegionClusterNameSuffix: pulumi.Input; + /** + * The name of the multi-region parameter group to be associated with the cluster. + */ + multiRegionParameterGroupName?: pulumi.Input; + /** + * The node type to be used for the multi-region cluster. + * + * The following arguments are optional: + */ + nodeType: pulumi.Input; + /** + * The number of shards for the multi-region cluster. + */ + numShards?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + /** + * A flag to enable in-transit encryption on the cluster. + */ + tlsEnabled?: pulumi.Input; + updateStrategy?: pulumi.Input; +} diff --git a/sdk/nodejs/networkmanager/attachmentAccepter.ts b/sdk/nodejs/networkmanager/attachmentAccepter.ts index a9a739f579b..de6d2393251 100644 --- a/sdk/nodejs/networkmanager/attachmentAccepter.ts +++ b/sdk/nodejs/networkmanager/attachmentAccepter.ts @@ -82,9 +82,13 @@ export class AttachmentAccepter extends pulumi.CustomResource { */ public /*out*/ readonly coreNetworkId!: pulumi.Output; /** - * The Region where the edge is located. + * The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. */ public /*out*/ readonly edgeLocation!: pulumi.Output; + /** + * The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` + */ + public /*out*/ readonly edgeLocations!: pulumi.Output; /** * The ID of the attachment account owner. */ @@ -121,6 +125,7 @@ export class AttachmentAccepter extends pulumi.CustomResource { resourceInputs["coreNetworkArn"] = state ? state.coreNetworkArn : undefined; resourceInputs["coreNetworkId"] = state ? state.coreNetworkId : undefined; resourceInputs["edgeLocation"] = state ? state.edgeLocation : undefined; + resourceInputs["edgeLocations"] = state ? state.edgeLocations : undefined; resourceInputs["ownerAccountId"] = state ? state.ownerAccountId : undefined; resourceInputs["resourceArn"] = state ? state.resourceArn : undefined; resourceInputs["segmentName"] = state ? state.segmentName : undefined; @@ -139,6 +144,7 @@ export class AttachmentAccepter extends pulumi.CustomResource { resourceInputs["coreNetworkArn"] = undefined /*out*/; resourceInputs["coreNetworkId"] = undefined /*out*/; resourceInputs["edgeLocation"] = undefined /*out*/; + resourceInputs["edgeLocations"] = undefined /*out*/; resourceInputs["ownerAccountId"] = undefined /*out*/; resourceInputs["resourceArn"] = undefined /*out*/; resourceInputs["segmentName"] = undefined /*out*/; @@ -174,9 +180,13 @@ export interface AttachmentAccepterState { */ coreNetworkId?: pulumi.Input; /** - * The Region where the edge is located. + * The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edgeLocations`. */ edgeLocation?: pulumi.Input; + /** + * The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edgeLocation` + */ + edgeLocations?: pulumi.Input[]>; /** * The ID of the attachment account owner. */ diff --git a/sdk/nodejs/networkmanager/dxGatewayAttachment.ts b/sdk/nodejs/networkmanager/dxGatewayAttachment.ts new file mode 100644 index 00000000000..8cdf8acf662 --- /dev/null +++ b/sdk/nodejs/networkmanager/dxGatewayAttachment.ts @@ -0,0 +1,250 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.networkmanager.DxGatewayAttachment("test", { + * coreNetworkId: testAwsNetworkmanagerCoreNetworkPolicyAttachment.coreNetworkId, + * directConnectGatewayArn: `arn:aws:directconnect::${current.accountId}:dx-gateway/${testAwsDxGateway.id}`, + * edgeLocations: [currentAwsRegion.name], + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: + * + * ```sh + * $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g + * ``` + */ +export class DxGatewayAttachment extends pulumi.CustomResource { + /** + * Get an existing DxGatewayAttachment resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: DxGatewayAttachmentState, opts?: pulumi.CustomResourceOptions): DxGatewayAttachment { + return new DxGatewayAttachment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment'; + + /** + * Returns true if the given object is an instance of DxGatewayAttachment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DxGatewayAttachment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DxGatewayAttachment.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + /** + * Policy rule number associated with the attachment. + */ + public /*out*/ readonly attachmentPolicyRuleNumber!: pulumi.Output; + /** + * Type of attachment. + */ + public /*out*/ readonly attachmentType!: pulumi.Output; + /** + * ARN of the core network for the attachment. + */ + public /*out*/ readonly coreNetworkArn!: pulumi.Output; + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + */ + public readonly coreNetworkId!: pulumi.Output; + /** + * ARN of the Direct Connect gateway attachment. + */ + public readonly directConnectGatewayArn!: pulumi.Output; + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + */ + public readonly edgeLocations!: pulumi.Output; + /** + * ID of the attachment account owner. + */ + public /*out*/ readonly ownerAccountId!: pulumi.Output; + /** + * Name of the segment attachment. + */ + public /*out*/ readonly segmentName!: pulumi.Output; + /** + * State of the attachment. + */ + public /*out*/ readonly state!: pulumi.Output; + /** + * Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + + /** + * Create a DxGatewayAttachment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: DxGatewayAttachmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DxGatewayAttachmentArgs | DxGatewayAttachmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DxGatewayAttachmentState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["attachmentPolicyRuleNumber"] = state ? state.attachmentPolicyRuleNumber : undefined; + resourceInputs["attachmentType"] = state ? state.attachmentType : undefined; + resourceInputs["coreNetworkArn"] = state ? state.coreNetworkArn : undefined; + resourceInputs["coreNetworkId"] = state ? state.coreNetworkId : undefined; + resourceInputs["directConnectGatewayArn"] = state ? state.directConnectGatewayArn : undefined; + resourceInputs["edgeLocations"] = state ? state.edgeLocations : undefined; + resourceInputs["ownerAccountId"] = state ? state.ownerAccountId : undefined; + resourceInputs["segmentName"] = state ? state.segmentName : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as DxGatewayAttachmentArgs | undefined; + if ((!args || args.coreNetworkId === undefined) && !opts.urn) { + throw new Error("Missing required property 'coreNetworkId'"); + } + if ((!args || args.directConnectGatewayArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'directConnectGatewayArn'"); + } + if ((!args || args.edgeLocations === undefined) && !opts.urn) { + throw new Error("Missing required property 'edgeLocations'"); + } + resourceInputs["coreNetworkId"] = args ? args.coreNetworkId : undefined; + resourceInputs["directConnectGatewayArn"] = args ? args.directConnectGatewayArn : undefined; + resourceInputs["edgeLocations"] = args ? args.edgeLocations : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["attachmentPolicyRuleNumber"] = undefined /*out*/; + resourceInputs["attachmentType"] = undefined /*out*/; + resourceInputs["coreNetworkArn"] = undefined /*out*/; + resourceInputs["ownerAccountId"] = undefined /*out*/; + resourceInputs["segmentName"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DxGatewayAttachment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DxGatewayAttachment resources. + */ +export interface DxGatewayAttachmentState { + arn?: pulumi.Input; + /** + * Policy rule number associated with the attachment. + */ + attachmentPolicyRuleNumber?: pulumi.Input; + /** + * Type of attachment. + */ + attachmentType?: pulumi.Input; + /** + * ARN of the core network for the attachment. + */ + coreNetworkArn?: pulumi.Input; + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + */ + coreNetworkId?: pulumi.Input; + /** + * ARN of the Direct Connect gateway attachment. + */ + directConnectGatewayArn?: pulumi.Input; + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + */ + edgeLocations?: pulumi.Input[]>; + /** + * ID of the attachment account owner. + */ + ownerAccountId?: pulumi.Input; + /** + * Name of the segment attachment. + */ + segmentName?: pulumi.Input; + /** + * State of the attachment. + */ + state?: pulumi.Input; + /** + * Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a DxGatewayAttachment resource. + */ +export interface DxGatewayAttachmentArgs { + /** + * ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + */ + coreNetworkId: pulumi.Input; + /** + * ARN of the Direct Connect gateway attachment. + */ + directConnectGatewayArn: pulumi.Input; + /** + * One or more core network edge locations to associate with the Direct Connect gateway attachment. + * + * The following arguments are optional: + */ + edgeLocations: pulumi.Input[]>; + /** + * Key-value tags for the attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/networkmanager/index.ts b/sdk/nodejs/networkmanager/index.ts index 12e54e0a9af..011acce7cb0 100644 --- a/sdk/nodejs/networkmanager/index.ts +++ b/sdk/nodejs/networkmanager/index.ts @@ -45,6 +45,11 @@ export type Device = import("./device").Device; export const Device: typeof import("./device").Device = null as any; utilities.lazyLoad(exports, ["Device"], () => require("./device")); +export { DxGatewayAttachmentArgs, DxGatewayAttachmentState } from "./dxGatewayAttachment"; +export type DxGatewayAttachment = import("./dxGatewayAttachment").DxGatewayAttachment; +export const DxGatewayAttachment: typeof import("./dxGatewayAttachment").DxGatewayAttachment = null as any; +utilities.lazyLoad(exports, ["DxGatewayAttachment"], () => require("./dxGatewayAttachment")); + export { GetConnectionArgs, GetConnectionResult, GetConnectionOutputArgs } from "./getConnection"; export const getConnection: typeof import("./getConnection").getConnection = null as any; export const getConnectionOutput: typeof import("./getConnection").getConnectionOutput = null as any; @@ -171,6 +176,8 @@ const _module = { return new CustomerGatewayAssociation(name, undefined, { urn }) case "aws:networkmanager/device:Device": return new Device(name, undefined, { urn }) + case "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment": + return new DxGatewayAttachment(name, undefined, { urn }) case "aws:networkmanager/globalNetwork:GlobalNetwork": return new GlobalNetwork(name, undefined, { urn }) case "aws:networkmanager/link:Link": @@ -204,6 +211,7 @@ pulumi.runtime.registerResourceModule("aws", "networkmanager/coreNetwork", _modu pulumi.runtime.registerResourceModule("aws", "networkmanager/coreNetworkPolicyAttachment", _module) pulumi.runtime.registerResourceModule("aws", "networkmanager/customerGatewayAssociation", _module) pulumi.runtime.registerResourceModule("aws", "networkmanager/device", _module) +pulumi.runtime.registerResourceModule("aws", "networkmanager/dxGatewayAttachment", _module) pulumi.runtime.registerResourceModule("aws", "networkmanager/globalNetwork", _module) pulumi.runtime.registerResourceModule("aws", "networkmanager/link", _module) pulumi.runtime.registerResourceModule("aws", "networkmanager/linkAssociation", _module) diff --git a/sdk/nodejs/rds/cluster.ts b/sdk/nodejs/rds/cluster.ts index 16ee1d13f37..2a5119b7c62 100644 --- a/sdk/nodejs/rds/cluster.ts +++ b/sdk/nodejs/rds/cluster.ts @@ -446,15 +446,15 @@ export class Cluster extends pulumi.CustomResource { */ public readonly networkType!: pulumi.Output; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster */ public readonly performanceInsightsEnabled!: pulumi.Output; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). */ public readonly performanceInsightsKmsKeyId!: pulumi.Output; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. */ public readonly performanceInsightsRetentionPeriod!: pulumi.Output; /** @@ -885,15 +885,15 @@ export interface ClusterState { */ networkType?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster */ performanceInsightsEnabled?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). */ performanceInsightsKmsKeyId?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. */ performanceInsightsRetentionPeriod?: pulumi.Input; /** @@ -1137,15 +1137,15 @@ export interface ClusterArgs { */ networkType?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + * Enables Performance Insights for the RDS Cluster */ performanceInsightsEnabled?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + * Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). */ performanceInsightsKmsKeyId?: pulumi.Input; /** - * Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + * Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. */ performanceInsightsRetentionPeriod?: pulumi.Input; /** diff --git a/sdk/nodejs/rds/clusterSnapshotCopy.ts b/sdk/nodejs/rds/clusterSnapshotCopy.ts new file mode 100644 index 00000000000..419a99ef090 --- /dev/null +++ b/sdk/nodejs/rds/clusterSnapshotCopy.ts @@ -0,0 +1,332 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `aws.rds.SnapshotCopy` resource. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.rds.Cluster("example", { + * clusterIdentifier: "aurora-cluster-demo", + * databaseName: "test", + * engine: aws.rds.EngineType.AuroraMysql, + * masterUsername: "tfacctest", + * masterPassword: "avoid-plaintext-passwords", + * skipFinalSnapshot: true, + * }); + * const exampleClusterSnapshot = new aws.rds.ClusterSnapshot("example", { + * dbClusterIdentifier: example.clusterIdentifier, + * dbClusterSnapshotIdentifier: "example", + * }); + * const exampleClusterSnapshotCopy = new aws.rds.ClusterSnapshotCopy("example", { + * sourceDbClusterSnapshotIdentifier: exampleClusterSnapshot.dbClusterSnapshotArn, + * targetDbClusterSnapshotIdentifier: "example-copy", + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: + * + * ```sh + * $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot + * ``` + */ +export class ClusterSnapshotCopy extends pulumi.CustomResource { + /** + * Get an existing ClusterSnapshotCopy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ClusterSnapshotCopyState, opts?: pulumi.CustomResourceOptions): ClusterSnapshotCopy { + return new ClusterSnapshotCopy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy'; + + /** + * Returns true if the given object is an instance of ClusterSnapshotCopy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ClusterSnapshotCopy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ClusterSnapshotCopy.__pulumiType; + } + + /** + * Specifies the allocated storage size in gigabytes (GB). + */ + public /*out*/ readonly allocatedStorage!: pulumi.Output; + /** + * Whether to copy existing tags. Defaults to `false`. + */ + public readonly copyTags!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) for the DB cluster snapshot. + */ + public /*out*/ readonly dbClusterSnapshotArn!: pulumi.Output; + /** + * The Destination region to place snapshot copy. + */ + public readonly destinationRegion!: pulumi.Output; + /** + * Specifies the name of the database engine. + */ + public /*out*/ readonly engine!: pulumi.Output; + /** + * Specifies the version of the database engine. + */ + public /*out*/ readonly engineVersion!: pulumi.Output; + /** + * KMS key ID. + */ + public readonly kmsKeyId!: pulumi.Output; + /** + * License model information for the restored DB instance. + */ + public /*out*/ readonly licenseModel!: pulumi.Output; + /** + * URL that contains a Signature Version 4 signed request. + */ + public readonly presignedUrl!: pulumi.Output; + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + */ + public readonly sharedAccounts!: pulumi.Output; + public /*out*/ readonly snapshotType!: pulumi.Output; + /** + * Identifier of the source snapshot. + */ + public readonly sourceDbClusterSnapshotIdentifier!: pulumi.Output; + /** + * Specifies whether the DB cluster snapshot is encrypted. + */ + public /*out*/ readonly storageEncrypted!: pulumi.Output; + /** + * Specifies the storage type associated with DB cluster snapshot. + */ + public /*out*/ readonly storageType!: pulumi.Output; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + */ + public readonly targetDbClusterSnapshotIdentifier!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + /** + * Provides the VPC ID associated with the DB cluster snapshot. + */ + public /*out*/ readonly vpcId!: pulumi.Output; + + /** + * Create a ClusterSnapshotCopy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ClusterSnapshotCopyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ClusterSnapshotCopyArgs | ClusterSnapshotCopyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ClusterSnapshotCopyState | undefined; + resourceInputs["allocatedStorage"] = state ? state.allocatedStorage : undefined; + resourceInputs["copyTags"] = state ? state.copyTags : undefined; + resourceInputs["dbClusterSnapshotArn"] = state ? state.dbClusterSnapshotArn : undefined; + resourceInputs["destinationRegion"] = state ? state.destinationRegion : undefined; + resourceInputs["engine"] = state ? state.engine : undefined; + resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; + resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; + resourceInputs["licenseModel"] = state ? state.licenseModel : undefined; + resourceInputs["presignedUrl"] = state ? state.presignedUrl : undefined; + resourceInputs["sharedAccounts"] = state ? state.sharedAccounts : undefined; + resourceInputs["snapshotType"] = state ? state.snapshotType : undefined; + resourceInputs["sourceDbClusterSnapshotIdentifier"] = state ? state.sourceDbClusterSnapshotIdentifier : undefined; + resourceInputs["storageEncrypted"] = state ? state.storageEncrypted : undefined; + resourceInputs["storageType"] = state ? state.storageType : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["targetDbClusterSnapshotIdentifier"] = state ? state.targetDbClusterSnapshotIdentifier : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["vpcId"] = state ? state.vpcId : undefined; + } else { + const args = argsOrState as ClusterSnapshotCopyArgs | undefined; + if ((!args || args.sourceDbClusterSnapshotIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'sourceDbClusterSnapshotIdentifier'"); + } + if ((!args || args.targetDbClusterSnapshotIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'targetDbClusterSnapshotIdentifier'"); + } + resourceInputs["copyTags"] = args ? args.copyTags : undefined; + resourceInputs["destinationRegion"] = args ? args.destinationRegion : undefined; + resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + resourceInputs["presignedUrl"] = args ? args.presignedUrl : undefined; + resourceInputs["sharedAccounts"] = args ? args.sharedAccounts : undefined; + resourceInputs["sourceDbClusterSnapshotIdentifier"] = args ? args.sourceDbClusterSnapshotIdentifier : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["targetDbClusterSnapshotIdentifier"] = args ? args.targetDbClusterSnapshotIdentifier : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["allocatedStorage"] = undefined /*out*/; + resourceInputs["dbClusterSnapshotArn"] = undefined /*out*/; + resourceInputs["engine"] = undefined /*out*/; + resourceInputs["engineVersion"] = undefined /*out*/; + resourceInputs["licenseModel"] = undefined /*out*/; + resourceInputs["snapshotType"] = undefined /*out*/; + resourceInputs["storageEncrypted"] = undefined /*out*/; + resourceInputs["storageType"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + resourceInputs["vpcId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ClusterSnapshotCopy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ClusterSnapshotCopy resources. + */ +export interface ClusterSnapshotCopyState { + /** + * Specifies the allocated storage size in gigabytes (GB). + */ + allocatedStorage?: pulumi.Input; + /** + * Whether to copy existing tags. Defaults to `false`. + */ + copyTags?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) for the DB cluster snapshot. + */ + dbClusterSnapshotArn?: pulumi.Input; + /** + * The Destination region to place snapshot copy. + */ + destinationRegion?: pulumi.Input; + /** + * Specifies the name of the database engine. + */ + engine?: pulumi.Input; + /** + * Specifies the version of the database engine. + */ + engineVersion?: pulumi.Input; + /** + * KMS key ID. + */ + kmsKeyId?: pulumi.Input; + /** + * License model information for the restored DB instance. + */ + licenseModel?: pulumi.Input; + /** + * URL that contains a Signature Version 4 signed request. + */ + presignedUrl?: pulumi.Input; + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + */ + sharedAccounts?: pulumi.Input[]>; + snapshotType?: pulumi.Input; + /** + * Identifier of the source snapshot. + */ + sourceDbClusterSnapshotIdentifier?: pulumi.Input; + /** + * Specifies whether the DB cluster snapshot is encrypted. + */ + storageEncrypted?: pulumi.Input; + /** + * Specifies the storage type associated with DB cluster snapshot. + */ + storageType?: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + */ + targetDbClusterSnapshotIdentifier?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Provides the VPC ID associated with the DB cluster snapshot. + */ + vpcId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ClusterSnapshotCopy resource. + */ +export interface ClusterSnapshotCopyArgs { + /** + * Whether to copy existing tags. Defaults to `false`. + */ + copyTags?: pulumi.Input; + /** + * The Destination region to place snapshot copy. + */ + destinationRegion?: pulumi.Input; + /** + * KMS key ID. + */ + kmsKeyId?: pulumi.Input; + /** + * URL that contains a Signature Version 4 signed request. + */ + presignedUrl?: pulumi.Input; + /** + * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + */ + sharedAccounts?: pulumi.Input[]>; + /** + * Identifier of the source snapshot. + */ + sourceDbClusterSnapshotIdentifier: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Identifier for the snapshot. + * + * The following arguments are optional: + */ + targetDbClusterSnapshotIdentifier: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/rds/index.ts b/sdk/nodejs/rds/index.ts index c99d2f4a3ea..cce0a7f2f7b 100644 --- a/sdk/nodejs/rds/index.ts +++ b/sdk/nodejs/rds/index.ts @@ -45,6 +45,11 @@ export type ClusterSnapshot = import("./clusterSnapshot").ClusterSnapshot; export const ClusterSnapshot: typeof import("./clusterSnapshot").ClusterSnapshot = null as any; utilities.lazyLoad(exports, ["ClusterSnapshot"], () => require("./clusterSnapshot")); +export { ClusterSnapshotCopyArgs, ClusterSnapshotCopyState } from "./clusterSnapshotCopy"; +export type ClusterSnapshotCopy = import("./clusterSnapshotCopy").ClusterSnapshotCopy; +export const ClusterSnapshotCopy: typeof import("./clusterSnapshotCopy").ClusterSnapshotCopy = null as any; +utilities.lazyLoad(exports, ["ClusterSnapshotCopy"], () => require("./clusterSnapshotCopy")); + export { CustomDbEngineVersionArgs, CustomDbEngineVersionState } from "./customDbEngineVersion"; export type CustomDbEngineVersion = import("./customDbEngineVersion").CustomDbEngineVersion; export const CustomDbEngineVersion: typeof import("./customDbEngineVersion").CustomDbEngineVersion = null as any; @@ -243,6 +248,8 @@ const _module = { return new ClusterRoleAssociation(name, undefined, { urn }) case "aws:rds/clusterSnapshot:ClusterSnapshot": return new ClusterSnapshot(name, undefined, { urn }) + case "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy": + return new ClusterSnapshotCopy(name, undefined, { urn }) case "aws:rds/customDbEngineVersion:CustomDbEngineVersion": return new CustomDbEngineVersion(name, undefined, { urn }) case "aws:rds/eventSubscription:EventSubscription": @@ -294,6 +301,7 @@ pulumi.runtime.registerResourceModule("aws", "rds/clusterInstance", _module) pulumi.runtime.registerResourceModule("aws", "rds/clusterParameterGroup", _module) pulumi.runtime.registerResourceModule("aws", "rds/clusterRoleAssociation", _module) pulumi.runtime.registerResourceModule("aws", "rds/clusterSnapshot", _module) +pulumi.runtime.registerResourceModule("aws", "rds/clusterSnapshotCopy", _module) pulumi.runtime.registerResourceModule("aws", "rds/customDbEngineVersion", _module) pulumi.runtime.registerResourceModule("aws", "rds/eventSubscription", _module) pulumi.runtime.registerResourceModule("aws", "rds/exportTask", _module) diff --git a/sdk/nodejs/resourcegroups/resource.ts b/sdk/nodejs/resourcegroups/resource.ts index 69e1f96556d..bfc1b03bdb0 100644 --- a/sdk/nodejs/resourcegroups/resource.ts +++ b/sdk/nodejs/resourcegroups/resource.ts @@ -27,6 +27,14 @@ import * as utilities from "../utilities"; * resourceArn: example.arn, * }); * ``` + * + * ## Import + * + * Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: + * + * ```sh + * $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example + * ``` */ export class Resource extends pulumi.CustomResource { /** @@ -57,13 +65,11 @@ export class Resource extends pulumi.CustomResource { } /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. */ public readonly groupArn!: pulumi.Output; /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. */ public readonly resourceArn!: pulumi.Output; /** @@ -109,13 +115,11 @@ export class Resource extends pulumi.CustomResource { */ export interface ResourceState { /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. */ groupArn?: pulumi.Input; /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. */ resourceArn?: pulumi.Input; /** @@ -129,13 +133,11 @@ export interface ResourceState { */ export interface ResourceArgs { /** - * The name or the ARN of the resource group to add resources to. - * - * The following arguments are optional: + * Name or ARN of the resource group to add resources to. */ groupArn: pulumi.Input; /** - * The ARN of the resource to be added to the group. + * ARN of the resource to be added to the group. */ resourceArn: pulumi.Input; } diff --git a/sdk/nodejs/servicecatalog/getAppregistryAttributeGroupAssociations.ts b/sdk/nodejs/servicecatalog/getAppregistryAttributeGroupAssociations.ts new file mode 100644 index 00000000000..d56a2d5e361 --- /dev/null +++ b/sdk/nodejs/servicecatalog/getAppregistryAttributeGroupAssociations.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.servicecatalog.getAppregistryAttributeGroupAssociations({ + * id: "12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3", + * }); + * ``` + */ +export function getAppregistryAttributeGroupAssociations(args?: GetAppregistryAttributeGroupAssociationsArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", { + "id": args.id, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getAppregistryAttributeGroupAssociations. + */ +export interface GetAppregistryAttributeGroupAssociationsArgs { + /** + * ID of the application to which attribute groups are associated. + */ + id?: string; + /** + * Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + */ + name?: string; +} + +/** + * A collection of values returned by getAppregistryAttributeGroupAssociations. + */ +export interface GetAppregistryAttributeGroupAssociationsResult { + /** + * Set of attribute group IDs this application is associated with. + */ + readonly attributeGroupIds: string[]; + readonly id?: string; + readonly name?: string; +} +/** + * Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.servicecatalog.getAppregistryAttributeGroupAssociations({ + * id: "12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3", + * }); + * ``` + */ +export function getAppregistryAttributeGroupAssociationsOutput(args?: GetAppregistryAttributeGroupAssociationsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations", { + "id": args.id, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getAppregistryAttributeGroupAssociations. + */ +export interface GetAppregistryAttributeGroupAssociationsOutputArgs { + /** + * ID of the application to which attribute groups are associated. + */ + id?: pulumi.Input; + /** + * Name of the application to which attribute groups are associated. + * + * The following arguments are optional: + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/servicecatalog/index.ts b/sdk/nodejs/servicecatalog/index.ts index c31787d9303..491d9f8bf69 100644 --- a/sdk/nodejs/servicecatalog/index.ts +++ b/sdk/nodejs/servicecatalog/index.ts @@ -40,6 +40,11 @@ export const getAppregistryAttributeGroup: typeof import("./getAppregistryAttrib export const getAppregistryAttributeGroupOutput: typeof import("./getAppregistryAttributeGroup").getAppregistryAttributeGroupOutput = null as any; utilities.lazyLoad(exports, ["getAppregistryAttributeGroup","getAppregistryAttributeGroupOutput"], () => require("./getAppregistryAttributeGroup")); +export { GetAppregistryAttributeGroupAssociationsArgs, GetAppregistryAttributeGroupAssociationsResult, GetAppregistryAttributeGroupAssociationsOutputArgs } from "./getAppregistryAttributeGroupAssociations"; +export const getAppregistryAttributeGroupAssociations: typeof import("./getAppregistryAttributeGroupAssociations").getAppregistryAttributeGroupAssociations = null as any; +export const getAppregistryAttributeGroupAssociationsOutput: typeof import("./getAppregistryAttributeGroupAssociations").getAppregistryAttributeGroupAssociationsOutput = null as any; +utilities.lazyLoad(exports, ["getAppregistryAttributeGroupAssociations","getAppregistryAttributeGroupAssociationsOutput"], () => require("./getAppregistryAttributeGroupAssociations")); + export { GetConstraintArgs, GetConstraintResult, GetConstraintOutputArgs } from "./getConstraint"; export const getConstraint: typeof import("./getConstraint").getConstraint = null as any; export const getConstraintOutput: typeof import("./getConstraint").getConstraintOutput = null as any; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index e5e2ae5347e..9a6c66ffb14 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -67,6 +67,7 @@ "apigateway/documentationPart.ts", "apigateway/documentationVersion.ts", "apigateway/domainName.ts", + "apigateway/domainNameAccessAssociation.ts", "apigateway/getAuthorizer.ts", "apigateway/getAuthorizers.ts", "apigateway/getDomainName.ts", @@ -357,6 +358,7 @@ "cloudfront/publicKey.ts", "cloudfront/realtimeLogConfig.ts", "cloudfront/responseHeadersPolicy.ts", + "cloudfront/vpcOrigin.ts", "cloudhsmv2/cluster.ts", "cloudhsmv2/getCluster.ts", "cloudhsmv2/hsm.ts", @@ -1471,6 +1473,7 @@ "memorydb/getSubnetGroup.ts", "memorydb/getUser.ts", "memorydb/index.ts", + "memorydb/multiRegionCluster.ts", "memorydb/parameterGroup.ts", "memorydb/snapshot.ts", "memorydb/subnetGroup.ts", @@ -1535,6 +1538,7 @@ "networkmanager/coreNetworkPolicyAttachment.ts", "networkmanager/customerGatewayAssociation.ts", "networkmanager/device.ts", + "networkmanager/dxGatewayAttachment.ts", "networkmanager/getConnection.ts", "networkmanager/getConnections.ts", "networkmanager/getCoreNetworkPolicyDocument.ts", @@ -1712,6 +1716,7 @@ "rds/clusterParameterGroup.ts", "rds/clusterRoleAssociation.ts", "rds/clusterSnapshot.ts", + "rds/clusterSnapshotCopy.ts", "rds/customDbEngineVersion.ts", "rds/engineMode.ts", "rds/engineType.ts", @@ -2020,6 +2025,7 @@ "servicecatalog/constraint.ts", "servicecatalog/getAppregistryApplication.ts", "servicecatalog/getAppregistryAttributeGroup.ts", + "servicecatalog/getAppregistryAttributeGroupAssociations.ts", "servicecatalog/getConstraint.ts", "servicecatalog/getLaunchPaths.ts", "servicecatalog/getPortfolio.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 2fa6d2cb524..ae9608cf12f 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -896,6 +896,10 @@ export interface ProviderEndpoint { * Use this to override the default service endpoint URL */ memorydb?: pulumi.Input; + /** + * Use this to override the default service endpoint URL + */ + mgn?: pulumi.Input; /** * Use this to override the default service endpoint URL */ @@ -1268,6 +1272,10 @@ export interface ProviderEndpoint { * Use this to override the default service endpoint URL */ timestreaminfluxdb?: pulumi.Input; + /** + * Use this to override the default service endpoint URL + */ + timestreamquery?: pulumi.Input; /** * Use this to override the default service endpoint URL */ @@ -1766,6 +1774,10 @@ export namespace alb { } export interface ListenerMutualAuthentication { + /** + * Valid values are `off` and `on`. + */ + advertiseTrustStoreCaNames?: pulumi.Input; /** * Whether client certificate expiry is ignored. Default is `false`. */ @@ -2374,10 +2386,12 @@ export namespace amplify { certificateVerificationDnsRecord?: pulumi.Input; /** * The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. */ customCertificateArn?: pulumi.Input; /** - * The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. */ type: pulumi.Input; } @@ -7446,7 +7460,7 @@ export namespace appstream { export interface StackUserSetting { /** * Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. */ action: pulumi.Input; /** @@ -8166,6 +8180,13 @@ export namespace autoscaling { values: pulumi.Input[]>; } + export interface GroupAvailabilityZoneDistribution { + /** + * The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + */ + capacityDistributionStrategy?: pulumi.Input; + } + export interface GroupInitialLifecycleHook { defaultResult?: pulumi.Input; heartbeatTimeout?: pulumi.Input; @@ -12785,6 +12806,10 @@ export namespace cloudfront { * CloudFront S3 origin configuration information. If a custom origin is required, use `customOriginConfig` instead. */ s3OriginConfig?: pulumi.Input; + /** + * The VPC origin configuration. + */ + vpcOriginConfig?: pulumi.Input; } export interface DistributionOriginCustomHeader { @@ -12801,17 +12826,11 @@ export namespace cloudfront { * HTTPS port the custom origin listens on. */ httpsPort: pulumi.Input; - /** - * The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - */ originKeepaliveTimeout?: pulumi.Input; /** * Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. */ originProtocolPolicy: pulumi.Input; - /** - * The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - */ originReadTimeout?: pulumi.Input; /** * List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. @@ -12860,6 +12879,15 @@ export namespace cloudfront { originAccessIdentity: pulumi.Input; } + export interface DistributionOriginVpcOriginConfig { + originKeepaliveTimeout?: pulumi.Input; + originReadTimeout?: pulumi.Input; + /** + * The VPC origin ID. + */ + vpcOriginId: pulumi.Input; + } + export interface DistributionRestrictions { geoRestriction: pulumi.Input; } @@ -13269,6 +13297,53 @@ export namespace cloudfront { */ samplingRate: pulumi.Input; } + + export interface VpcOriginTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } + + export interface VpcOriginVpcOriginEndpointConfig { + /** + * The VPC origin ARN. + */ + arn: pulumi.Input; + /** + * The HTTP port for the CloudFront VPC origin endpoint configuration. + */ + httpPort: pulumi.Input; + /** + * The HTTPS port for the CloudFront VPC origin endpoint configuration. + */ + httpsPort: pulumi.Input; + /** + * The name of the CloudFront VPC origin endpoint configuration. + */ + name: pulumi.Input; + /** + * The origin protocol policy for the CloudFront VPC origin endpoint configuration. + */ + originProtocolPolicy: pulumi.Input; + /** + * A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + */ + originSslProtocols?: pulumi.Input; + } + + export interface VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + items: pulumi.Input[]>; + quantity: pulumi.Input; + } } export namespace cloudhsmv2 { @@ -14997,7 +15072,7 @@ export namespace codeconnections { /** * The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. */ - tlsCertificate: pulumi.Input; + tlsCertificate?: pulumi.Input; /** * The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. */ @@ -41167,6 +41242,10 @@ export namespace lb { } export interface ListenerMutualAuthentication { + /** + * Valid values are `off` and `on`. + */ + advertiseTrustStoreCaNames?: pulumi.Input; /** * Whether client certificate expiry is ignored. Default is `false`. */ @@ -57815,6 +57894,21 @@ export namespace memorydb { port?: pulumi.Input; } + export interface MultiRegionClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } + export interface ParameterGroupParameter { /** * The name of the parameter. @@ -59635,6 +59729,21 @@ export namespace networkmanager { longitude?: pulumi.Input; } + export interface DxGatewayAttachmentTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } + export interface GetCoreNetworkPolicyDocumentAttachmentPolicy { /** * Action to take when a condition is true. Detailed Below. @@ -64751,6 +64860,13 @@ export namespace rds { secondsUntilAutoPause?: pulumi.Input; } + export interface ClusterSnapshotCopyTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + } + export interface ExportTaskTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). @@ -77601,6 +77717,9 @@ export namespace verifiedaccess { } export interface GroupSseConfiguration { + /** + * Boolean flag to indicate that the CMK should be used. + */ customerManagedKeyEnabled?: pulumi.Input; /** * ARN of the KMS key to use. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index b7ab5564d82..e13bbe11acc 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -634,6 +634,10 @@ export namespace alb { } export interface ListenerMutualAuthentication { + /** + * Valid values are `off` and `on`. + */ + advertiseTrustStoreCaNames: string; /** * Whether client certificate expiry is ignored. Default is `false`. */ @@ -1244,10 +1248,12 @@ export namespace amplify { certificateVerificationDnsRecord: string; /** * The Amazon resource name (ARN) for the custom certificate. + * Required when `type` is `CUSTOM`. */ customCertificateArn?: string; /** - * The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + * The certificate type. + * Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. */ type: string; } @@ -7568,7 +7574,7 @@ export namespace appstream { export interface StackUserSetting { /** * Action that is enabled or disabled. - * Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + * Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. */ action: string; /** @@ -8618,6 +8624,13 @@ export namespace autoscaling { reuseOnScaleIn: boolean; } + export interface GroupAvailabilityZoneDistribution { + /** + * The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + */ + capacityDistributionStrategy?: string; + } + export interface GroupInitialLifecycleHook { defaultResult: string; heartbeatTimeout?: number; @@ -14351,6 +14364,10 @@ export namespace cloudfront { * CloudFront S3 origin configuration information. If a custom origin is required, use `customOriginConfig` instead. */ s3OriginConfig?: outputs.cloudfront.DistributionOriginS3OriginConfig; + /** + * The VPC origin configuration. + */ + vpcOriginConfig?: outputs.cloudfront.DistributionOriginVpcOriginConfig; } export interface DistributionOriginCustomHeader { @@ -14367,17 +14384,11 @@ export namespace cloudfront { * HTTPS port the custom origin listens on. */ httpsPort: number; - /** - * The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - */ originKeepaliveTimeout?: number; /** * Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. */ originProtocolPolicy: string; - /** - * The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - */ originReadTimeout?: number; /** * List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. @@ -14426,6 +14437,15 @@ export namespace cloudfront { originAccessIdentity: string; } + export interface DistributionOriginVpcOriginConfig { + originKeepaliveTimeout?: number; + originReadTimeout?: number; + /** + * The VPC origin ID. + */ + vpcOriginId: string; + } + export interface DistributionRestrictions { geoRestriction: outputs.cloudfront.DistributionRestrictionsGeoRestriction; } @@ -15153,6 +15173,53 @@ export namespace cloudfront { samplingRate: number; } + export interface VpcOriginTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + + export interface VpcOriginVpcOriginEndpointConfig { + /** + * The VPC origin ARN. + */ + arn: string; + /** + * The HTTP port for the CloudFront VPC origin endpoint configuration. + */ + httpPort: number; + /** + * The HTTPS port for the CloudFront VPC origin endpoint configuration. + */ + httpsPort: number; + /** + * The name of the CloudFront VPC origin endpoint configuration. + */ + name: string; + /** + * The origin protocol policy for the CloudFront VPC origin endpoint configuration. + */ + originProtocolPolicy: string; + /** + * A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + */ + originSslProtocols?: outputs.cloudfront.VpcOriginVpcOriginEndpointConfigOriginSslProtocols; + } + + export interface VpcOriginVpcOriginEndpointConfigOriginSslProtocols { + items: string[]; + quantity: number; + } + } export namespace cloudhsmv2 { @@ -16895,7 +16962,7 @@ export namespace codeconnections { /** * The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. */ - tlsCertificate: string; + tlsCertificate?: string; /** * The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. */ @@ -19633,6 +19700,10 @@ export namespace config { * Use this to override the default service endpoint URL */ memorydb?: string; + /** + * Use this to override the default service endpoint URL + */ + mgn?: string; /** * Use this to override the default service endpoint URL */ @@ -20005,6 +20076,10 @@ export namespace config { * Use this to override the default service endpoint URL */ timestreaminfluxdb?: string; + /** + * Use this to override the default service endpoint URL + */ + timestreamquery?: string; /** * Use this to override the default service endpoint URL */ @@ -48290,6 +48365,10 @@ export namespace lb { } export interface ListenerMutualAuthentication { + /** + * Valid values are `off` and `on`. + */ + advertiseTrustStoreCaNames: string; /** * Whether client certificate expiry is ignored. Default is `false`. */ @@ -61517,6 +61596,10 @@ export namespace licensemanager { * The key name. */ name: string; + /** + * Indicates whether overages are allowed. + */ + overage: boolean; /** * Entitlement unit. */ @@ -65187,6 +65270,21 @@ export namespace memorydb { type: string; } + export interface MultiRegionClusterTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + export interface ParameterGroupParameter { /** * The name of the parameter. @@ -67317,6 +67415,21 @@ export namespace networkmanager { longitude?: string; } + export interface DxGatewayAttachmentTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + export interface GetCoreNetworkPolicyDocumentAttachmentPolicy { /** * Action to take when a condition is true. Detailed Below. @@ -73008,6 +73121,13 @@ export namespace rds { secondsUntilAutoPause: number; } + export interface ClusterSnapshotCopyTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + } + export interface ExportTaskTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). @@ -86532,6 +86652,9 @@ export namespace verifiedaccess { } export interface GroupSseConfiguration { + /** + * Boolean flag to indicate that the CMK should be used. + */ customerManagedKeyEnabled?: boolean; /** * ARN of the KMS key to use. diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 97a2228882e..fefeedb1a9a 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -968,6 +968,14 @@ "aws:apigateway/domainName:DomainName": "DomainName" } }, + { + "pkg": "aws", + "mod": "apigateway/domainNameAccessAssociation", + "fqn": "pulumi_aws.apigateway", + "classes": { + "aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation": "DomainNameAccessAssociation" + } + }, { "pkg": "aws", "mod": "apigateway/integration", @@ -2472,6 +2480,14 @@ "aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy": "ResponseHeadersPolicy" } }, + { + "pkg": "aws", + "mod": "cloudfront/vpcOrigin", + "fqn": "pulumi_aws.cloudfront", + "classes": { + "aws:cloudfront/vpcOrigin:VpcOrigin": "VpcOrigin" + } + }, { "pkg": "aws", "mod": "cloudhsmv2/cluster", @@ -7968,6 +7984,14 @@ "aws:memorydb/cluster:Cluster": "Cluster" } }, + { + "pkg": "aws", + "mod": "memorydb/multiRegionCluster", + "fqn": "pulumi_aws.memorydb", + "classes": { + "aws:memorydb/multiRegionCluster:MultiRegionCluster": "MultiRegionCluster" + } + }, { "pkg": "aws", "mod": "memorydb/parameterGroup", @@ -8296,6 +8320,14 @@ "aws:networkmanager/device:Device": "Device" } }, + { + "pkg": "aws", + "mod": "networkmanager/dxGatewayAttachment", + "fqn": "pulumi_aws.networkmanager", + "classes": { + "aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment": "DxGatewayAttachment" + } + }, { "pkg": "aws", "mod": "networkmanager/globalNetwork", @@ -9152,6 +9184,14 @@ "aws:rds/clusterSnapshot:ClusterSnapshot": "ClusterSnapshot" } }, + { + "pkg": "aws", + "mod": "rds/clusterSnapshotCopy", + "fqn": "pulumi_aws.rds", + "classes": { + "aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy": "ClusterSnapshotCopy" + } + }, { "pkg": "aws", "mod": "rds/customDbEngineVersion", diff --git a/sdk/python/pulumi_aws/_inputs.py b/sdk/python/pulumi_aws/_inputs.py index 6210bedce8f..558baed7f39 100644 --- a/sdk/python/pulumi_aws/_inputs.py +++ b/sdk/python/pulumi_aws/_inputs.py @@ -1148,6 +1148,10 @@ class ProviderEndpointArgsDict(TypedDict): """ Use this to override the default service endpoint URL """ + mgn: NotRequired[pulumi.Input[str]] + """ + Use this to override the default service endpoint URL + """ mq: NotRequired[pulumi.Input[str]] """ Use this to override the default service endpoint URL @@ -1520,6 +1524,10 @@ class ProviderEndpointArgsDict(TypedDict): """ Use this to override the default service endpoint URL """ + timestreamquery: NotRequired[pulumi.Input[str]] + """ + Use this to override the default service endpoint URL + """ timestreamwrite: NotRequired[pulumi.Input[str]] """ Use this to override the default service endpoint URL @@ -1769,6 +1777,7 @@ def __init__(__self__, *, mediapackagev2: Optional[pulumi.Input[str]] = None, mediastore: Optional[pulumi.Input[str]] = None, memorydb: Optional[pulumi.Input[str]] = None, + mgn: Optional[pulumi.Input[str]] = None, mq: Optional[pulumi.Input[str]] = None, msk: Optional[pulumi.Input[str]] = None, mwaa: Optional[pulumi.Input[str]] = None, @@ -1862,6 +1871,7 @@ def __init__(__self__, *, synthetics: Optional[pulumi.Input[str]] = None, taxsettings: Optional[pulumi.Input[str]] = None, timestreaminfluxdb: Optional[pulumi.Input[str]] = None, + timestreamquery: Optional[pulumi.Input[str]] = None, timestreamwrite: Optional[pulumi.Input[str]] = None, transcribe: Optional[pulumi.Input[str]] = None, transcribeservice: Optional[pulumi.Input[str]] = None, @@ -2064,6 +2074,7 @@ def __init__(__self__, *, :param pulumi.Input[str] mediapackagev2: Use this to override the default service endpoint URL :param pulumi.Input[str] mediastore: Use this to override the default service endpoint URL :param pulumi.Input[str] memorydb: Use this to override the default service endpoint URL + :param pulumi.Input[str] mgn: Use this to override the default service endpoint URL :param pulumi.Input[str] mq: Use this to override the default service endpoint URL :param pulumi.Input[str] msk: Use this to override the default service endpoint URL :param pulumi.Input[str] mwaa: Use this to override the default service endpoint URL @@ -2157,6 +2168,7 @@ def __init__(__self__, *, :param pulumi.Input[str] synthetics: Use this to override the default service endpoint URL :param pulumi.Input[str] taxsettings: Use this to override the default service endpoint URL :param pulumi.Input[str] timestreaminfluxdb: Use this to override the default service endpoint URL + :param pulumi.Input[str] timestreamquery: Use this to override the default service endpoint URL :param pulumi.Input[str] timestreamwrite: Use this to override the default service endpoint URL :param pulumi.Input[str] transcribe: Use this to override the default service endpoint URL :param pulumi.Input[str] transcribeservice: Use this to override the default service endpoint URL @@ -2546,6 +2558,8 @@ def __init__(__self__, *, pulumi.set(__self__, "mediastore", mediastore) if memorydb is not None: pulumi.set(__self__, "memorydb", memorydb) + if mgn is not None: + pulumi.set(__self__, "mgn", mgn) if mq is not None: pulumi.set(__self__, "mq", mq) if msk is not None: @@ -2732,6 +2746,8 @@ def __init__(__self__, *, pulumi.set(__self__, "taxsettings", taxsettings) if timestreaminfluxdb is not None: pulumi.set(__self__, "timestreaminfluxdb", timestreaminfluxdb) + if timestreamquery is not None: + pulumi.set(__self__, "timestreamquery", timestreamquery) if timestreamwrite is not None: pulumi.set(__self__, "timestreamwrite", timestreamwrite) if transcribe is not None: @@ -5005,6 +5021,18 @@ def memorydb(self) -> Optional[pulumi.Input[str]]: def memorydb(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "memorydb", value) + @property + @pulumi.getter + def mgn(self) -> Optional[pulumi.Input[str]]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "mgn") + + @mgn.setter + def mgn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mgn", value) + @property @pulumi.getter def mq(self) -> Optional[pulumi.Input[str]]: @@ -6121,6 +6149,18 @@ def timestreaminfluxdb(self) -> Optional[pulumi.Input[str]]: def timestreaminfluxdb(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "timestreaminfluxdb", value) + @property + @pulumi.getter + def timestreamquery(self) -> Optional[pulumi.Input[str]]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "timestreamquery") + + @timestreamquery.setter + def timestreamquery(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "timestreamquery", value) + @property @pulumi.getter def timestreamwrite(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_aws/alb/_inputs.py b/sdk/python/pulumi_aws/alb/_inputs.py index 057114494dc..ca11e729399 100644 --- a/sdk/python/pulumi_aws/alb/_inputs.py +++ b/sdk/python/pulumi_aws/alb/_inputs.py @@ -1063,6 +1063,10 @@ class ListenerMutualAuthenticationArgsDict(TypedDict): """ Valid values are `off`, `verify` and `passthrough`. """ + advertise_trust_store_ca_names: NotRequired[pulumi.Input[str]] + """ + Valid values are `off` and `on`. + """ ignore_client_certificate_expiry: NotRequired[pulumi.Input[bool]] """ Whether client certificate expiry is ignored. Default is `false`. @@ -1078,14 +1082,18 @@ class ListenerMutualAuthenticationArgsDict(TypedDict): class ListenerMutualAuthenticationArgs: def __init__(__self__, *, mode: pulumi.Input[str], + advertise_trust_store_ca_names: Optional[pulumi.Input[str]] = None, ignore_client_certificate_expiry: Optional[pulumi.Input[bool]] = None, trust_store_arn: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] mode: Valid values are `off`, `verify` and `passthrough`. + :param pulumi.Input[str] advertise_trust_store_ca_names: Valid values are `off` and `on`. :param pulumi.Input[bool] ignore_client_certificate_expiry: Whether client certificate expiry is ignored. Default is `false`. :param pulumi.Input[str] trust_store_arn: ARN of the elbv2 Trust Store. """ pulumi.set(__self__, "mode", mode) + if advertise_trust_store_ca_names is not None: + pulumi.set(__self__, "advertise_trust_store_ca_names", advertise_trust_store_ca_names) if ignore_client_certificate_expiry is not None: pulumi.set(__self__, "ignore_client_certificate_expiry", ignore_client_certificate_expiry) if trust_store_arn is not None: @@ -1103,6 +1111,18 @@ def mode(self) -> pulumi.Input[str]: def mode(self, value: pulumi.Input[str]): pulumi.set(self, "mode", value) + @property + @pulumi.getter(name="advertiseTrustStoreCaNames") + def advertise_trust_store_ca_names(self) -> Optional[pulumi.Input[str]]: + """ + Valid values are `off` and `on`. + """ + return pulumi.get(self, "advertise_trust_store_ca_names") + + @advertise_trust_store_ca_names.setter + def advertise_trust_store_ca_names(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "advertise_trust_store_ca_names", value) + @property @pulumi.getter(name="ignoreClientCertificateExpiry") def ignore_client_certificate_expiry(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_aws/alb/outputs.py b/sdk/python/pulumi_aws/alb/outputs.py index 58a5af6095d..04558289231 100644 --- a/sdk/python/pulumi_aws/alb/outputs.py +++ b/sdk/python/pulumi_aws/alb/outputs.py @@ -789,7 +789,9 @@ class ListenerMutualAuthentication(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "ignoreClientCertificateExpiry": + if key == "advertiseTrustStoreCaNames": + suggest = "advertise_trust_store_ca_names" + elif key == "ignoreClientCertificateExpiry": suggest = "ignore_client_certificate_expiry" elif key == "trustStoreArn": suggest = "trust_store_arn" @@ -807,14 +809,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, mode: str, + advertise_trust_store_ca_names: Optional[str] = None, ignore_client_certificate_expiry: Optional[bool] = None, trust_store_arn: Optional[str] = None): """ :param str mode: Valid values are `off`, `verify` and `passthrough`. + :param str advertise_trust_store_ca_names: Valid values are `off` and `on`. :param bool ignore_client_certificate_expiry: Whether client certificate expiry is ignored. Default is `false`. :param str trust_store_arn: ARN of the elbv2 Trust Store. """ pulumi.set(__self__, "mode", mode) + if advertise_trust_store_ca_names is not None: + pulumi.set(__self__, "advertise_trust_store_ca_names", advertise_trust_store_ca_names) if ignore_client_certificate_expiry is not None: pulumi.set(__self__, "ignore_client_certificate_expiry", ignore_client_certificate_expiry) if trust_store_arn is not None: @@ -828,6 +834,14 @@ def mode(self) -> str: """ return pulumi.get(self, "mode") + @property + @pulumi.getter(name="advertiseTrustStoreCaNames") + def advertise_trust_store_ca_names(self) -> Optional[str]: + """ + Valid values are `off` and `on`. + """ + return pulumi.get(self, "advertise_trust_store_ca_names") + @property @pulumi.getter(name="ignoreClientCertificateExpiry") def ignore_client_certificate_expiry(self) -> Optional[bool]: diff --git a/sdk/python/pulumi_aws/amplify/_inputs.py b/sdk/python/pulumi_aws/amplify/_inputs.py index b375fd71cf0..79830de3311 100644 --- a/sdk/python/pulumi_aws/amplify/_inputs.py +++ b/sdk/python/pulumi_aws/amplify/_inputs.py @@ -460,7 +460,8 @@ def thumbnail_url(self, value: Optional[pulumi.Input[str]]): class DomainAssociationCertificateSettingsArgsDict(TypedDict): type: pulumi.Input[str] """ - The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + The certificate type. + Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. """ certificate_verification_dns_record: NotRequired[pulumi.Input[str]] """ @@ -469,6 +470,7 @@ class DomainAssociationCertificateSettingsArgsDict(TypedDict): custom_certificate_arn: NotRequired[pulumi.Input[str]] """ The Amazon resource name (ARN) for the custom certificate. + Required when `type` is `CUSTOM`. """ elif False: DomainAssociationCertificateSettingsArgsDict: TypeAlias = Mapping[str, Any] @@ -480,9 +482,11 @@ def __init__(__self__, *, certificate_verification_dns_record: Optional[pulumi.Input[str]] = None, custom_certificate_arn: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] type: The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + :param pulumi.Input[str] type: The certificate type. + Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. :param pulumi.Input[str] certificate_verification_dns_record: DNS records for certificate verification in a space-delimited format (` CNAME `). :param pulumi.Input[str] custom_certificate_arn: The Amazon resource name (ARN) for the custom certificate. + Required when `type` is `CUSTOM`. """ pulumi.set(__self__, "type", type) if certificate_verification_dns_record is not None: @@ -494,7 +498,8 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + The certificate type. + Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. """ return pulumi.get(self, "type") @@ -519,6 +524,7 @@ def certificate_verification_dns_record(self, value: Optional[pulumi.Input[str]] def custom_certificate_arn(self) -> Optional[pulumi.Input[str]]: """ The Amazon resource name (ARN) for the custom certificate. + Required when `type` is `CUSTOM`. """ return pulumi.get(self, "custom_certificate_arn") diff --git a/sdk/python/pulumi_aws/amplify/domain_association.py b/sdk/python/pulumi_aws/amplify/domain_association.py index b6f44abe24f..6c3265b5372 100644 --- a/sdk/python/pulumi_aws/amplify/domain_association.py +++ b/sdk/python/pulumi_aws/amplify/domain_association.py @@ -476,7 +476,7 @@ def arn(self) -> pulumi.Output[str]: @property @pulumi.getter(name="certificateSettings") - def certificate_settings(self) -> pulumi.Output[Optional['outputs.DomainAssociationCertificateSettings']]: + def certificate_settings(self) -> pulumi.Output['outputs.DomainAssociationCertificateSettings']: """ The type of SSL/TLS certificate to use for your custom domain. If you don't specify a certificate type, Amplify uses the default certificate that it provisions and manages for you. """ diff --git a/sdk/python/pulumi_aws/amplify/outputs.py b/sdk/python/pulumi_aws/amplify/outputs.py index c01129e480b..ec5cd18446e 100644 --- a/sdk/python/pulumi_aws/amplify/outputs.py +++ b/sdk/python/pulumi_aws/amplify/outputs.py @@ -354,9 +354,11 @@ def __init__(__self__, *, certificate_verification_dns_record: Optional[str] = None, custom_certificate_arn: Optional[str] = None): """ - :param str type: The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + :param str type: The certificate type. + Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. :param str certificate_verification_dns_record: DNS records for certificate verification in a space-delimited format (` CNAME `). :param str custom_certificate_arn: The Amazon resource name (ARN) for the custom certificate. + Required when `type` is `CUSTOM`. """ pulumi.set(__self__, "type", type) if certificate_verification_dns_record is not None: @@ -368,7 +370,8 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The certificate type. Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. + The certificate type. + Valid values are `AMPLIFY_MANAGED` and `CUSTOM`. """ return pulumi.get(self, "type") @@ -385,6 +388,7 @@ def certificate_verification_dns_record(self) -> Optional[str]: def custom_certificate_arn(self) -> Optional[str]: """ The Amazon resource name (ARN) for the custom certificate. + Required when `type` is `CUSTOM`. """ return pulumi.get(self, "custom_certificate_arn") diff --git a/sdk/python/pulumi_aws/apigateway/__init__.py b/sdk/python/pulumi_aws/apigateway/__init__.py index 5e098f667c5..95f0a56bd53 100644 --- a/sdk/python/pulumi_aws/apigateway/__init__.py +++ b/sdk/python/pulumi_aws/apigateway/__init__.py @@ -14,6 +14,7 @@ from .documentation_part import * from .documentation_version import * from .domain_name import * +from .domain_name_access_association import * from .get_authorizer import * from .get_authorizers import * from .get_domain_name import * diff --git a/sdk/python/pulumi_aws/apigateway/domain_name_access_association.py b/sdk/python/pulumi_aws/apigateway/domain_name_access_association.py new file mode 100644 index 00000000000..87602912a17 --- /dev/null +++ b/sdk/python/pulumi_aws/apigateway/domain_name_access_association.py @@ -0,0 +1,395 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['DomainNameAccessAssociationArgs', 'DomainNameAccessAssociation'] + +@pulumi.input_type +class DomainNameAccessAssociationArgs: + def __init__(__self__, *, + access_association_source: pulumi.Input[str], + access_association_source_type: pulumi.Input[str], + domain_name_arn: pulumi.Input[str], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a DomainNameAccessAssociation resource. + :param pulumi.Input[str] access_association_source: The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + :param pulumi.Input[str] access_association_source_type: The type of the domain name access association source. Valid values are `VPCE`. + :param pulumi.Input[str] domain_name_arn: The ARN of the domain name. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "access_association_source", access_association_source) + pulumi.set(__self__, "access_association_source_type", access_association_source_type) + pulumi.set(__self__, "domain_name_arn", domain_name_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="accessAssociationSource") + def access_association_source(self) -> pulumi.Input[str]: + """ + The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + """ + return pulumi.get(self, "access_association_source") + + @access_association_source.setter + def access_association_source(self, value: pulumi.Input[str]): + pulumi.set(self, "access_association_source", value) + + @property + @pulumi.getter(name="accessAssociationSourceType") + def access_association_source_type(self) -> pulumi.Input[str]: + """ + The type of the domain name access association source. Valid values are `VPCE`. + """ + return pulumi.get(self, "access_association_source_type") + + @access_association_source_type.setter + def access_association_source_type(self, value: pulumi.Input[str]): + pulumi.set(self, "access_association_source_type", value) + + @property + @pulumi.getter(name="domainNameArn") + def domain_name_arn(self) -> pulumi.Input[str]: + """ + The ARN of the domain name. + """ + return pulumi.get(self, "domain_name_arn") + + @domain_name_arn.setter + def domain_name_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "domain_name_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _DomainNameAccessAssociationState: + def __init__(__self__, *, + access_association_source: Optional[pulumi.Input[str]] = None, + access_association_source_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + domain_name_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering DomainNameAccessAssociation resources. + :param pulumi.Input[str] access_association_source: The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + :param pulumi.Input[str] access_association_source_type: The type of the domain name access association source. Valid values are `VPCE`. + :param pulumi.Input[str] arn: ARN of the domain name access association. + :param pulumi.Input[str] domain_name_arn: The ARN of the domain name. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if access_association_source is not None: + pulumi.set(__self__, "access_association_source", access_association_source) + if access_association_source_type is not None: + pulumi.set(__self__, "access_association_source_type", access_association_source_type) + if arn is not None: + pulumi.set(__self__, "arn", arn) + if domain_name_arn is not None: + pulumi.set(__self__, "domain_name_arn", domain_name_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + + @property + @pulumi.getter(name="accessAssociationSource") + def access_association_source(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + """ + return pulumi.get(self, "access_association_source") + + @access_association_source.setter + def access_association_source(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_association_source", value) + + @property + @pulumi.getter(name="accessAssociationSourceType") + def access_association_source_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the domain name access association source. Valid values are `VPCE`. + """ + return pulumi.get(self, "access_association_source_type") + + @access_association_source_type.setter + def access_association_source_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_association_source_type", value) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the domain name access association. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="domainNameArn") + def domain_name_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the domain name. + """ + return pulumi.get(self, "domain_name_arn") + + @domain_name_arn.setter + def domain_name_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_name_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + +class DomainNameAccessAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_association_source: Optional[pulumi.Input[str]] = None, + access_association_source_type: Optional[pulumi.Input[str]] = None, + domain_name_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Creates a domain name access association resource between an access association source and a private custom domain name. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.apigateway.DomainNameAccessAssociation("example", + access_association_source=example_aws_vpc_endpoint["id"], + access_association_source_type="VPCE", + domain_name_arn=example_aws_api_gateway_domain_name["domainNameArn"]) + ``` + + ## Import + + Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: + + ```sh + $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] access_association_source: The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + :param pulumi.Input[str] access_association_source_type: The type of the domain name access association source. Valid values are `VPCE`. + :param pulumi.Input[str] domain_name_arn: The ARN of the domain name. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DomainNameAccessAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Creates a domain name access association resource between an access association source and a private custom domain name. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.apigateway.DomainNameAccessAssociation("example", + access_association_source=example_aws_vpc_endpoint["id"], + access_association_source_type="VPCE", + domain_name_arn=example_aws_api_gateway_domain_name["domainNameArn"]) + ``` + + ## Import + + Using `pulumi import`, import API Gateway domain name acces associations as using their `arn`. For example: + + ```sh + $ pulumi import aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation example arn:aws:apigateway:us-west-2:123456789012:/domainnameaccessassociations/domainname/12qmzgp2.9m7ilski.test+hykg7a12e7/vpcesource/vpce-05de3f8f82740a748 + ``` + + :param str resource_name: The name of the resource. + :param DomainNameAccessAssociationArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DomainNameAccessAssociationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_association_source: Optional[pulumi.Input[str]] = None, + access_association_source_type: Optional[pulumi.Input[str]] = None, + domain_name_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DomainNameAccessAssociationArgs.__new__(DomainNameAccessAssociationArgs) + + if access_association_source is None and not opts.urn: + raise TypeError("Missing required property 'access_association_source'") + __props__.__dict__["access_association_source"] = access_association_source + if access_association_source_type is None and not opts.urn: + raise TypeError("Missing required property 'access_association_source_type'") + __props__.__dict__["access_association_source_type"] = access_association_source_type + if domain_name_arn is None and not opts.urn: + raise TypeError("Missing required property 'domain_name_arn'") + __props__.__dict__["domain_name_arn"] = domain_name_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + super(DomainNameAccessAssociation, __self__).__init__( + 'aws:apigateway/domainNameAccessAssociation:DomainNameAccessAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_association_source: Optional[pulumi.Input[str]] = None, + access_association_source_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + domain_name_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'DomainNameAccessAssociation': + """ + Get an existing DomainNameAccessAssociation resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] access_association_source: The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + :param pulumi.Input[str] access_association_source_type: The type of the domain name access association source. Valid values are `VPCE`. + :param pulumi.Input[str] arn: ARN of the domain name access association. + :param pulumi.Input[str] domain_name_arn: The ARN of the domain name. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DomainNameAccessAssociationState.__new__(_DomainNameAccessAssociationState) + + __props__.__dict__["access_association_source"] = access_association_source + __props__.__dict__["access_association_source_type"] = access_association_source_type + __props__.__dict__["arn"] = arn + __props__.__dict__["domain_name_arn"] = domain_name_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + return DomainNameAccessAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accessAssociationSource") + def access_association_source(self) -> pulumi.Output[str]: + """ + The identifier of the domain name access association source. For a `VPCE`, the value is the VPC endpoint ID. + """ + return pulumi.get(self, "access_association_source") + + @property + @pulumi.getter(name="accessAssociationSourceType") + def access_association_source_type(self) -> pulumi.Output[str]: + """ + The type of the domain name access association source. Valid values are `VPCE`. + """ + return pulumi.get(self, "access_association_source_type") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + ARN of the domain name access association. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="domainNameArn") + def domain_name_arn(self) -> pulumi.Output[str]: + """ + The ARN of the domain name. + """ + return pulumi.get(self, "domain_name_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + diff --git a/sdk/python/pulumi_aws/appstream/_inputs.py b/sdk/python/pulumi_aws/appstream/_inputs.py index 22ede2ff81d..88684fc7510 100644 --- a/sdk/python/pulumi_aws/appstream/_inputs.py +++ b/sdk/python/pulumi_aws/appstream/_inputs.py @@ -689,7 +689,7 @@ class StackUserSettingArgsDict(TypedDict): action: pulumi.Input[str] """ Action that is enabled or disabled. - Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. """ permission: pulumi.Input[str] """ @@ -706,7 +706,7 @@ def __init__(__self__, *, permission: pulumi.Input[str]): """ :param pulumi.Input[str] action: Action that is enabled or disabled. - Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. :param pulumi.Input[str] permission: Whether the action is enabled or disabled. Valid values are `ENABLED` or `DISABLED`. """ @@ -718,7 +718,7 @@ def __init__(__self__, *, def action(self) -> pulumi.Input[str]: """ Action that is enabled or disabled. - Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. """ return pulumi.get(self, "action") diff --git a/sdk/python/pulumi_aws/appstream/outputs.py b/sdk/python/pulumi_aws/appstream/outputs.py index 2a83565ab81..835637c8cfd 100644 --- a/sdk/python/pulumi_aws/appstream/outputs.py +++ b/sdk/python/pulumi_aws/appstream/outputs.py @@ -629,7 +629,7 @@ def __init__(__self__, *, permission: str): """ :param str action: Action that is enabled or disabled. - Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. :param str permission: Whether the action is enabled or disabled. Valid values are `ENABLED` or `DISABLED`. """ @@ -641,7 +641,7 @@ def __init__(__self__, *, def action(self) -> str: """ Action that is enabled or disabled. - Valid values are `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, `PRINTING_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, or `DOMAIN_SMART_CARD_SIGNIN`. + Valid values are `AUTO_TIME_ZONE_REDIRECTION`, `CLIPBOARD_COPY_FROM_LOCAL_DEVICE`, `CLIPBOARD_COPY_TO_LOCAL_DEVICE`, `DOMAIN_PASSWORD_SIGNIN`, `DOMAIN_SMART_CARD_SIGNIN`, `FILE_UPLOAD`, `FILE_DOWNLOAD`, or `PRINTING_TO_LOCAL_DEVICE`. """ return pulumi.get(self, "action") diff --git a/sdk/python/pulumi_aws/appstream/stack.py b/sdk/python/pulumi_aws/appstream/stack.py index 33b3545094b..65ee6dfa97c 100644 --- a/sdk/python/pulumi_aws/appstream/stack.py +++ b/sdk/python/pulumi_aws/appstream/stack.py @@ -531,6 +531,10 @@ def __init__(__self__, "connector_type": "HOMEFOLDERS", }], user_settings=[ + { + "action": "AUTO_TIME_ZONE_REDIRECTION", + "permission": "DISABLED", + }, { "action": "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", "permission": "ENABLED", @@ -624,6 +628,10 @@ def __init__(__self__, "connector_type": "HOMEFOLDERS", }], user_settings=[ + { + "action": "AUTO_TIME_ZONE_REDIRECTION", + "permission": "DISABLED", + }, { "action": "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", "permission": "ENABLED", diff --git a/sdk/python/pulumi_aws/autoscaling/_inputs.py b/sdk/python/pulumi_aws/autoscaling/_inputs.py index 72b9fa8f792..72a3ed0ab7a 100644 --- a/sdk/python/pulumi_aws/autoscaling/_inputs.py +++ b/sdk/python/pulumi_aws/autoscaling/_inputs.py @@ -16,6 +16,8 @@ from ._enums import * __all__ = [ + 'GroupAvailabilityZoneDistributionArgs', + 'GroupAvailabilityZoneDistributionArgsDict', 'GroupInitialLifecycleHookArgs', 'GroupInitialLifecycleHookArgsDict', 'GroupInstanceMaintenancePolicyArgs', @@ -136,6 +138,38 @@ MYPY = False +if not MYPY: + class GroupAvailabilityZoneDistributionArgsDict(TypedDict): + capacity_distribution_strategy: NotRequired[pulumi.Input[str]] + """ + The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + """ +elif False: + GroupAvailabilityZoneDistributionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GroupAvailabilityZoneDistributionArgs: + def __init__(__self__, *, + capacity_distribution_strategy: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] capacity_distribution_strategy: The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + """ + if capacity_distribution_strategy is not None: + pulumi.set(__self__, "capacity_distribution_strategy", capacity_distribution_strategy) + + @property + @pulumi.getter(name="capacityDistributionStrategy") + def capacity_distribution_strategy(self) -> Optional[pulumi.Input[str]]: + """ + The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + """ + return pulumi.get(self, "capacity_distribution_strategy") + + @capacity_distribution_strategy.setter + def capacity_distribution_strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "capacity_distribution_strategy", value) + + if not MYPY: class GroupInitialLifecycleHookArgsDict(TypedDict): lifecycle_transition: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws/autoscaling/group.py b/sdk/python/pulumi_aws/autoscaling/group.py index dcd07e326b8..5dd1dc67b9c 100644 --- a/sdk/python/pulumi_aws/autoscaling/group.py +++ b/sdk/python/pulumi_aws/autoscaling/group.py @@ -24,6 +24,7 @@ class GroupArgs: def __init__(__self__, *, max_size: pulumi.Input[int], min_size: pulumi.Input[int], + availability_zone_distribution: Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -66,6 +67,7 @@ def __init__(__self__, *, :param pulumi.Input[int] max_size: Maximum size of the Auto Scaling Group. :param pulumi.Input[int] min_size: Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.) + :param pulumi.Input['GroupAvailabilityZoneDistributionArgs'] availability_zone_distribution: The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. :param pulumi.Input[bool] capacity_rebalance: Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. :param pulumi.Input[str] context: Reserved. @@ -139,6 +141,8 @@ def __init__(__self__, *, """ pulumi.set(__self__, "max_size", max_size) pulumi.set(__self__, "min_size", min_size) + if availability_zone_distribution is not None: + pulumi.set(__self__, "availability_zone_distribution", availability_zone_distribution) if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) if capacity_rebalance is not None: @@ -239,6 +243,18 @@ def min_size(self) -> pulumi.Input[int]: def min_size(self, value: pulumi.Input[int]): pulumi.set(self, "min_size", value) + @property + @pulumi.getter(name="availabilityZoneDistribution") + def availability_zone_distribution(self) -> Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']]: + """ + The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + """ + return pulumi.get(self, "availability_zone_distribution") + + @availability_zone_distribution.setter + def availability_zone_distribution(self, value: Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']]): + pulumi.set(self, "availability_zone_distribution", value) + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -721,6 +737,7 @@ def warm_pool(self, value: Optional[pulumi.Input['GroupWarmPoolArgs']]): class _GroupState: def __init__(__self__, *, arn: Optional[pulumi.Input[str]] = None, + availability_zone_distribution: Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -765,6 +782,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering Group resources. :param pulumi.Input[str] arn: ARN for this Auto Scaling Group + :param pulumi.Input['GroupAvailabilityZoneDistributionArgs'] availability_zone_distribution: The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. :param pulumi.Input[bool] capacity_rebalance: Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. :param pulumi.Input[str] context: Reserved. @@ -843,6 +861,8 @@ def __init__(__self__, *, """ if arn is not None: pulumi.set(__self__, "arn", arn) + if availability_zone_distribution is not None: + pulumi.set(__self__, "availability_zone_distribution", availability_zone_distribution) if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) if capacity_rebalance is not None: @@ -938,6 +958,18 @@ def arn(self) -> Optional[pulumi.Input[str]]: def arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "arn", value) + @property + @pulumi.getter(name="availabilityZoneDistribution") + def availability_zone_distribution(self) -> Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']]: + """ + The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + """ + return pulumi.get(self, "availability_zone_distribution") + + @availability_zone_distribution.setter + def availability_zone_distribution(self, value: Optional[pulumi.Input['GroupAvailabilityZoneDistributionArgs']]): + pulumi.set(self, "availability_zone_distribution", value) + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -1470,6 +1502,7 @@ class Group(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + availability_zone_distribution: Optional[pulumi.Input[Union['GroupAvailabilityZoneDistributionArgs', 'GroupAvailabilityZoneDistributionArgsDict']]] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -1942,6 +1975,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['GroupAvailabilityZoneDistributionArgs', 'GroupAvailabilityZoneDistributionArgsDict']] availability_zone_distribution: The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. :param pulumi.Input[bool] capacity_rebalance: Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. :param pulumi.Input[str] context: Reserved. @@ -2467,6 +2501,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + availability_zone_distribution: Optional[pulumi.Input[Union['GroupAvailabilityZoneDistributionArgs', 'GroupAvailabilityZoneDistributionArgsDict']]] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -2515,6 +2550,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = GroupArgs.__new__(GroupArgs) + __props__.__dict__["availability_zone_distribution"] = availability_zone_distribution __props__.__dict__["availability_zones"] = availability_zones __props__.__dict__["capacity_rebalance"] = capacity_rebalance __props__.__dict__["context"] = context @@ -2572,6 +2608,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, arn: Optional[pulumi.Input[str]] = None, + availability_zone_distribution: Optional[pulumi.Input[Union['GroupAvailabilityZoneDistributionArgs', 'GroupAvailabilityZoneDistributionArgsDict']]] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -2621,6 +2658,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] arn: ARN for this Auto Scaling Group + :param pulumi.Input[Union['GroupAvailabilityZoneDistributionArgs', 'GroupAvailabilityZoneDistributionArgsDict']] availability_zone_distribution: The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the `vpc_zone_identifier` attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts with `vpc_zone_identifier`. :param pulumi.Input[bool] capacity_rebalance: Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled. :param pulumi.Input[str] context: Reserved. @@ -2702,6 +2740,7 @@ def get(resource_name: str, __props__ = _GroupState.__new__(_GroupState) __props__.__dict__["arn"] = arn + __props__.__dict__["availability_zone_distribution"] = availability_zone_distribution __props__.__dict__["availability_zones"] = availability_zones __props__.__dict__["capacity_rebalance"] = capacity_rebalance __props__.__dict__["context"] = context @@ -2753,6 +2792,14 @@ def arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="availabilityZoneDistribution") + def availability_zone_distribution(self) -> pulumi.Output['outputs.GroupAvailabilityZoneDistribution']: + """ + The instance capacity distribution across Availability Zones. See Availability Zone Distribution below for more details. + """ + return pulumi.get(self, "availability_zone_distribution") + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> pulumi.Output[Sequence[str]]: diff --git a/sdk/python/pulumi_aws/autoscaling/outputs.py b/sdk/python/pulumi_aws/autoscaling/outputs.py index b816fba58a1..a3bd33f7ce1 100644 --- a/sdk/python/pulumi_aws/autoscaling/outputs.py +++ b/sdk/python/pulumi_aws/autoscaling/outputs.py @@ -17,6 +17,7 @@ from ._enums import * __all__ = [ + 'GroupAvailabilityZoneDistribution', 'GroupInitialLifecycleHook', 'GroupInstanceMaintenancePolicy', 'GroupInstanceRefresh', @@ -99,6 +100,42 @@ 'GetGroupWarmPoolInstanceReusePolicyResult', ] +@pulumi.output_type +class GroupAvailabilityZoneDistribution(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "capacityDistributionStrategy": + suggest = "capacity_distribution_strategy" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GroupAvailabilityZoneDistribution. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GroupAvailabilityZoneDistribution.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GroupAvailabilityZoneDistribution.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + capacity_distribution_strategy: Optional[str] = None): + """ + :param str capacity_distribution_strategy: The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + """ + if capacity_distribution_strategy is not None: + pulumi.set(__self__, "capacity_distribution_strategy", capacity_distribution_strategy) + + @property + @pulumi.getter(name="capacityDistributionStrategy") + def capacity_distribution_strategy(self) -> Optional[str]: + """ + The strategy to use for distributing capacity across the Availability Zones. Valid values are `balanced-only` and `balanced-best-effort`. Default is `balanced-best-effort`. + """ + return pulumi.get(self, "capacity_distribution_strategy") + + @pulumi.output_type class GroupInitialLifecycleHook(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent.py b/sdk/python/pulumi_aws/bedrock/agent_agent.py index 65b30d72cdc..6c77243ce8c 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent.py @@ -24,6 +24,7 @@ def __init__(__self__, *, agent_name: pulumi.Input[str], agent_resource_role_arn: pulumi.Input[str], foundation_model: pulumi.Input[str], + agent_collaboration: Optional[pulumi.Input[str]] = None, customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, guardrail_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAgentGuardrailConfigurationArgs']]]] = None, @@ -41,6 +42,7 @@ def __init__(__self__, *, :param pulumi.Input[str] foundation_model: Foundation model used for orchestration by the agent. The following arguments are optional: + :param pulumi.Input[str] agent_collaboration: Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. :param pulumi.Input[str] customer_encryption_key_arn: ARN of the AWS KMS key that encrypts the agent. :param pulumi.Input[str] description: Description of the agent. :param pulumi.Input[Sequence[pulumi.Input['AgentAgentGuardrailConfigurationArgs']]] guardrail_configurations: Details about the guardrail associated with the agent. See `guardrail_configuration` Block for details. @@ -54,6 +56,8 @@ def __init__(__self__, *, pulumi.set(__self__, "agent_name", agent_name) pulumi.set(__self__, "agent_resource_role_arn", agent_resource_role_arn) pulumi.set(__self__, "foundation_model", foundation_model) + if agent_collaboration is not None: + pulumi.set(__self__, "agent_collaboration", agent_collaboration) if customer_encryption_key_arn is not None: pulumi.set(__self__, "customer_encryption_key_arn", customer_encryption_key_arn) if description is not None: @@ -113,6 +117,18 @@ def foundation_model(self) -> pulumi.Input[str]: def foundation_model(self, value: pulumi.Input[str]): pulumi.set(self, "foundation_model", value) + @property + @pulumi.getter(name="agentCollaboration") + def agent_collaboration(self) -> Optional[pulumi.Input[str]]: + """ + Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + """ + return pulumi.get(self, "agent_collaboration") + + @agent_collaboration.setter + def agent_collaboration(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "agent_collaboration", value) + @property @pulumi.getter(name="customerEncryptionKeyArn") def customer_encryption_key_arn(self) -> Optional[pulumi.Input[str]]: @@ -235,6 +251,7 @@ def timeouts(self, value: Optional[pulumi.Input['AgentAgentTimeoutsArgs']]): class _AgentAgentState: def __init__(__self__, *, agent_arn: Optional[pulumi.Input[str]] = None, + agent_collaboration: Optional[pulumi.Input[str]] = None, agent_id: Optional[pulumi.Input[str]] = None, agent_name: Optional[pulumi.Input[str]] = None, agent_resource_role_arn: Optional[pulumi.Input[str]] = None, @@ -254,6 +271,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering AgentAgent resources. :param pulumi.Input[str] agent_arn: ARN of the agent. + :param pulumi.Input[str] agent_collaboration: Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. :param pulumi.Input[str] agent_id: Unique identifier of the agent. :param pulumi.Input[str] agent_name: Name of the agent. :param pulumi.Input[str] agent_resource_role_arn: ARN of the IAM role with permissions to invoke API operations on the agent. @@ -274,6 +292,8 @@ def __init__(__self__, *, """ if agent_arn is not None: pulumi.set(__self__, "agent_arn", agent_arn) + if agent_collaboration is not None: + pulumi.set(__self__, "agent_collaboration", agent_collaboration) if agent_id is not None: pulumi.set(__self__, "agent_id", agent_id) if agent_name is not None: @@ -322,6 +342,18 @@ def agent_arn(self) -> Optional[pulumi.Input[str]]: def agent_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "agent_arn", value) + @property + @pulumi.getter(name="agentCollaboration") + def agent_collaboration(self) -> Optional[pulumi.Input[str]]: + """ + Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + """ + return pulumi.get(self, "agent_collaboration") + + @agent_collaboration.setter + def agent_collaboration(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "agent_collaboration", value) + @property @pulumi.getter(name="agentId") def agent_id(self) -> Optional[pulumi.Input[str]]: @@ -520,6 +552,7 @@ class AgentAgent(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + agent_collaboration: Optional[pulumi.Input[str]] = None, agent_name: Optional[pulumi.Input[str]] = None, agent_resource_role_arn: Optional[pulumi.Input[str]] = None, customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, @@ -594,6 +627,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] agent_collaboration: Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. :param pulumi.Input[str] agent_name: Name of the agent. :param pulumi.Input[str] agent_resource_role_arn: ARN of the IAM role with permissions to invoke API operations on the agent. :param pulumi.Input[str] customer_encryption_key_arn: ARN of the AWS KMS key that encrypts the agent. @@ -688,6 +722,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + agent_collaboration: Optional[pulumi.Input[str]] = None, agent_name: Optional[pulumi.Input[str]] = None, agent_resource_role_arn: Optional[pulumi.Input[str]] = None, customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, @@ -710,6 +745,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AgentAgentArgs.__new__(AgentAgentArgs) + __props__.__dict__["agent_collaboration"] = agent_collaboration if agent_name is None and not opts.urn: raise TypeError("Missing required property 'agent_name'") __props__.__dict__["agent_name"] = agent_name @@ -744,6 +780,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, agent_arn: Optional[pulumi.Input[str]] = None, + agent_collaboration: Optional[pulumi.Input[str]] = None, agent_id: Optional[pulumi.Input[str]] = None, agent_name: Optional[pulumi.Input[str]] = None, agent_resource_role_arn: Optional[pulumi.Input[str]] = None, @@ -768,6 +805,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] agent_arn: ARN of the agent. + :param pulumi.Input[str] agent_collaboration: Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. :param pulumi.Input[str] agent_id: Unique identifier of the agent. :param pulumi.Input[str] agent_name: Name of the agent. :param pulumi.Input[str] agent_resource_role_arn: ARN of the IAM role with permissions to invoke API operations on the agent. @@ -791,6 +829,7 @@ def get(resource_name: str, __props__ = _AgentAgentState.__new__(_AgentAgentState) __props__.__dict__["agent_arn"] = agent_arn + __props__.__dict__["agent_collaboration"] = agent_collaboration __props__.__dict__["agent_id"] = agent_id __props__.__dict__["agent_name"] = agent_name __props__.__dict__["agent_resource_role_arn"] = agent_resource_role_arn @@ -817,6 +856,14 @@ def agent_arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "agent_arn") + @property + @pulumi.getter(name="agentCollaboration") + def agent_collaboration(self) -> pulumi.Output[str]: + """ + Agents collaboration role. Valid values: `SUPERVISOR`, `SUPERVISOR_ROUTER`, `DISABLED`. + """ + return pulumi.get(self, "agent_collaboration") + @property @pulumi.getter(name="agentId") def agent_id(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/cloudfront/__init__.py b/sdk/python/pulumi_aws/cloudfront/__init__.py index 55443c53a50..40e00d1a7a9 100644 --- a/sdk/python/pulumi_aws/cloudfront/__init__.py +++ b/sdk/python/pulumi_aws/cloudfront/__init__.py @@ -31,5 +31,6 @@ from .public_key import * from .realtime_log_config import * from .response_headers_policy import * +from .vpc_origin import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/cloudfront/_inputs.py b/sdk/python/pulumi_aws/cloudfront/_inputs.py index f33fb378cc0..52c2ec820c1 100644 --- a/sdk/python/pulumi_aws/cloudfront/_inputs.py +++ b/sdk/python/pulumi_aws/cloudfront/_inputs.py @@ -79,6 +79,8 @@ 'DistributionOriginOriginShieldArgsDict', 'DistributionOriginS3OriginConfigArgs', 'DistributionOriginS3OriginConfigArgsDict', + 'DistributionOriginVpcOriginConfigArgs', + 'DistributionOriginVpcOriginConfigArgsDict', 'DistributionRestrictionsArgs', 'DistributionRestrictionsArgsDict', 'DistributionRestrictionsGeoRestrictionArgs', @@ -167,6 +169,12 @@ 'ResponseHeadersPolicySecurityHeadersConfigXssProtectionArgsDict', 'ResponseHeadersPolicyServerTimingHeadersConfigArgs', 'ResponseHeadersPolicyServerTimingHeadersConfigArgsDict', + 'VpcOriginTimeoutsArgs', + 'VpcOriginTimeoutsArgsDict', + 'VpcOriginVpcOriginEndpointConfigArgs', + 'VpcOriginVpcOriginEndpointConfigArgsDict', + 'VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs', + 'VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgsDict', ] MYPY = False @@ -2321,6 +2329,10 @@ class DistributionOriginArgsDict(TypedDict): """ CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. """ + vpc_origin_config: NotRequired[pulumi.Input['DistributionOriginVpcOriginConfigArgsDict']] + """ + The VPC origin configuration. + """ elif False: DistributionOriginArgsDict: TypeAlias = Mapping[str, Any] @@ -2336,7 +2348,8 @@ def __init__(__self__, *, origin_access_control_id: Optional[pulumi.Input[str]] = None, origin_path: Optional[pulumi.Input[str]] = None, origin_shield: Optional[pulumi.Input['DistributionOriginOriginShieldArgs']] = None, - s3_origin_config: Optional[pulumi.Input['DistributionOriginS3OriginConfigArgs']] = None): + s3_origin_config: Optional[pulumi.Input['DistributionOriginS3OriginConfigArgs']] = None, + vpc_origin_config: Optional[pulumi.Input['DistributionOriginVpcOriginConfigArgs']] = None): """ :param pulumi.Input[str] domain_name: Domain name corresponding to the distribution. For example: `d604721fxaaqy9.cloudfront.net`. :param pulumi.Input[int] connection_attempts: Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3. @@ -2347,6 +2360,7 @@ def __init__(__self__, *, :param pulumi.Input[str] origin_path: Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. :param pulumi.Input['DistributionOriginOriginShieldArgs'] origin_shield: CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the Amazon CloudFront Developer Guide. :param pulumi.Input['DistributionOriginS3OriginConfigArgs'] s3_origin_config: CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. + :param pulumi.Input['DistributionOriginVpcOriginConfigArgs'] vpc_origin_config: The VPC origin configuration. """ pulumi.set(__self__, "domain_name", domain_name) pulumi.set(__self__, "origin_id", origin_id) @@ -2366,6 +2380,8 @@ def __init__(__self__, *, pulumi.set(__self__, "origin_shield", origin_shield) if s3_origin_config is not None: pulumi.set(__self__, "s3_origin_config", s3_origin_config) + if vpc_origin_config is not None: + pulumi.set(__self__, "vpc_origin_config", vpc_origin_config) @property @pulumi.getter(name="domainName") @@ -2484,6 +2500,18 @@ def s3_origin_config(self) -> Optional[pulumi.Input['DistributionOriginS3OriginC def s3_origin_config(self, value: Optional[pulumi.Input['DistributionOriginS3OriginConfigArgs']]): pulumi.set(self, "s3_origin_config", value) + @property + @pulumi.getter(name="vpcOriginConfig") + def vpc_origin_config(self) -> Optional[pulumi.Input['DistributionOriginVpcOriginConfigArgs']]: + """ + The VPC origin configuration. + """ + return pulumi.get(self, "vpc_origin_config") + + @vpc_origin_config.setter + def vpc_origin_config(self, value: Optional[pulumi.Input['DistributionOriginVpcOriginConfigArgs']]): + pulumi.set(self, "vpc_origin_config", value) + if not MYPY: class DistributionOriginCustomHeaderArgsDict(TypedDict): @@ -2538,13 +2566,7 @@ class DistributionOriginCustomOriginConfigArgsDict(TypedDict): List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. """ origin_keepalive_timeout: NotRequired[pulumi.Input[int]] - """ - The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - """ origin_read_timeout: NotRequired[pulumi.Input[int]] - """ - The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - """ elif False: DistributionOriginCustomOriginConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -2562,8 +2584,6 @@ def __init__(__self__, *, :param pulumi.Input[int] https_port: HTTPS port the custom origin listens on. :param pulumi.Input[str] origin_protocol_policy: Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. :param pulumi.Input[Sequence[pulumi.Input[str]]] origin_ssl_protocols: List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. - :param pulumi.Input[int] origin_keepalive_timeout: The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - :param pulumi.Input[int] origin_read_timeout: The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. """ pulumi.set(__self__, "http_port", http_port) pulumi.set(__self__, "https_port", https_port) @@ -2625,9 +2645,6 @@ def origin_ssl_protocols(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]) @property @pulumi.getter(name="originKeepaliveTimeout") def origin_keepalive_timeout(self) -> Optional[pulumi.Input[int]]: - """ - The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - """ return pulumi.get(self, "origin_keepalive_timeout") @origin_keepalive_timeout.setter @@ -2637,9 +2654,6 @@ def origin_keepalive_timeout(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="originReadTimeout") def origin_read_timeout(self) -> Optional[pulumi.Input[int]]: - """ - The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - """ return pulumi.get(self, "origin_read_timeout") @origin_read_timeout.setter @@ -2844,6 +2858,63 @@ def origin_access_identity(self, value: pulumi.Input[str]): pulumi.set(self, "origin_access_identity", value) +if not MYPY: + class DistributionOriginVpcOriginConfigArgsDict(TypedDict): + vpc_origin_id: pulumi.Input[str] + """ + The VPC origin ID. + """ + origin_keepalive_timeout: NotRequired[pulumi.Input[int]] + origin_read_timeout: NotRequired[pulumi.Input[int]] +elif False: + DistributionOriginVpcOriginConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DistributionOriginVpcOriginConfigArgs: + def __init__(__self__, *, + vpc_origin_id: pulumi.Input[str], + origin_keepalive_timeout: Optional[pulumi.Input[int]] = None, + origin_read_timeout: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] vpc_origin_id: The VPC origin ID. + """ + pulumi.set(__self__, "vpc_origin_id", vpc_origin_id) + if origin_keepalive_timeout is not None: + pulumi.set(__self__, "origin_keepalive_timeout", origin_keepalive_timeout) + if origin_read_timeout is not None: + pulumi.set(__self__, "origin_read_timeout", origin_read_timeout) + + @property + @pulumi.getter(name="vpcOriginId") + def vpc_origin_id(self) -> pulumi.Input[str]: + """ + The VPC origin ID. + """ + return pulumi.get(self, "vpc_origin_id") + + @vpc_origin_id.setter + def vpc_origin_id(self, value: pulumi.Input[str]): + pulumi.set(self, "vpc_origin_id", value) + + @property + @pulumi.getter(name="originKeepaliveTimeout") + def origin_keepalive_timeout(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "origin_keepalive_timeout") + + @origin_keepalive_timeout.setter + def origin_keepalive_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "origin_keepalive_timeout", value) + + @property + @pulumi.getter(name="originReadTimeout") + def origin_read_timeout(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "origin_read_timeout") + + @origin_read_timeout.setter + def origin_read_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "origin_read_timeout", value) + + if not MYPY: class DistributionRestrictionsArgsDict(TypedDict): geo_restriction: pulumi.Input['DistributionRestrictionsGeoRestrictionArgsDict'] @@ -4881,3 +4952,236 @@ def sampling_rate(self, value: pulumi.Input[float]): pulumi.set(self, "sampling_rate", value) +if not MYPY: + class VpcOriginTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + VpcOriginTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class VpcOriginTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + +if not MYPY: + class VpcOriginVpcOriginEndpointConfigArgsDict(TypedDict): + arn: pulumi.Input[str] + """ + The VPC origin ARN. + """ + http_port: pulumi.Input[int] + """ + The HTTP port for the CloudFront VPC origin endpoint configuration. + """ + https_port: pulumi.Input[int] + """ + The HTTPS port for the CloudFront VPC origin endpoint configuration. + """ + name: pulumi.Input[str] + """ + The name of the CloudFront VPC origin endpoint configuration. + """ + origin_protocol_policy: pulumi.Input[str] + """ + The origin protocol policy for the CloudFront VPC origin endpoint configuration. + """ + origin_ssl_protocols: NotRequired[pulumi.Input['VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgsDict']] + """ + A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + """ +elif False: + VpcOriginVpcOriginEndpointConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class VpcOriginVpcOriginEndpointConfigArgs: + def __init__(__self__, *, + arn: pulumi.Input[str], + http_port: pulumi.Input[int], + https_port: pulumi.Input[int], + name: pulumi.Input[str], + origin_protocol_policy: pulumi.Input[str], + origin_ssl_protocols: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs']] = None): + """ + :param pulumi.Input[str] arn: The VPC origin ARN. + :param pulumi.Input[int] http_port: The HTTP port for the CloudFront VPC origin endpoint configuration. + :param pulumi.Input[int] https_port: The HTTPS port for the CloudFront VPC origin endpoint configuration. + :param pulumi.Input[str] name: The name of the CloudFront VPC origin endpoint configuration. + :param pulumi.Input[str] origin_protocol_policy: The origin protocol policy for the CloudFront VPC origin endpoint configuration. + :param pulumi.Input['VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs'] origin_ssl_protocols: A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "http_port", http_port) + pulumi.set(__self__, "https_port", https_port) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "origin_protocol_policy", origin_protocol_policy) + if origin_ssl_protocols is not None: + pulumi.set(__self__, "origin_ssl_protocols", origin_ssl_protocols) + + @property + @pulumi.getter + def arn(self) -> pulumi.Input[str]: + """ + The VPC origin ARN. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: pulumi.Input[str]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="httpPort") + def http_port(self) -> pulumi.Input[int]: + """ + The HTTP port for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "http_port") + + @http_port.setter + def http_port(self, value: pulumi.Input[int]): + pulumi.set(self, "http_port", value) + + @property + @pulumi.getter(name="httpsPort") + def https_port(self) -> pulumi.Input[int]: + """ + The HTTPS port for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "https_port") + + @https_port.setter + def https_port(self, value: pulumi.Input[int]): + pulumi.set(self, "https_port", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="originProtocolPolicy") + def origin_protocol_policy(self) -> pulumi.Input[str]: + """ + The origin protocol policy for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "origin_protocol_policy") + + @origin_protocol_policy.setter + def origin_protocol_policy(self, value: pulumi.Input[str]): + pulumi.set(self, "origin_protocol_policy", value) + + @property + @pulumi.getter(name="originSslProtocols") + def origin_ssl_protocols(self) -> Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs']]: + """ + A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + """ + return pulumi.get(self, "origin_ssl_protocols") + + @origin_ssl_protocols.setter + def origin_ssl_protocols(self, value: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs']]): + pulumi.set(self, "origin_ssl_protocols", value) + + +if not MYPY: + class VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgsDict(TypedDict): + items: pulumi.Input[Sequence[pulumi.Input[str]]] + quantity: pulumi.Input[int] +elif False: + VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs: + def __init__(__self__, *, + items: pulumi.Input[Sequence[pulumi.Input[str]]], + quantity: pulumi.Input[int]): + pulumi.set(__self__, "items", items) + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def items(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + return pulumi.get(self, "items") + + @items.setter + def items(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "items", value) + + @property + @pulumi.getter + def quantity(self) -> pulumi.Input[int]: + return pulumi.get(self, "quantity") + + @quantity.setter + def quantity(self, value: pulumi.Input[int]): + pulumi.set(self, "quantity", value) + + diff --git a/sdk/python/pulumi_aws/cloudfront/outputs.py b/sdk/python/pulumi_aws/cloudfront/outputs.py index 3e786ebf20a..e637b3af878 100644 --- a/sdk/python/pulumi_aws/cloudfront/outputs.py +++ b/sdk/python/pulumi_aws/cloudfront/outputs.py @@ -48,6 +48,7 @@ 'DistributionOriginGroupMember', 'DistributionOriginOriginShield', 'DistributionOriginS3OriginConfig', + 'DistributionOriginVpcOriginConfig', 'DistributionRestrictions', 'DistributionRestrictionsGeoRestriction', 'DistributionTrustedKeyGroup', @@ -92,6 +93,9 @@ 'ResponseHeadersPolicySecurityHeadersConfigStrictTransportSecurity', 'ResponseHeadersPolicySecurityHeadersConfigXssProtection', 'ResponseHeadersPolicyServerTimingHeadersConfig', + 'VpcOriginTimeouts', + 'VpcOriginVpcOriginEndpointConfig', + 'VpcOriginVpcOriginEndpointConfigOriginSslProtocols', 'GetCachePolicyParametersInCacheKeyAndForwardedToOriginResult', 'GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigResult', 'GetCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfigCookieResult', @@ -1827,6 +1831,8 @@ def __key_warning(key: str): suggest = "origin_shield" elif key == "s3OriginConfig": suggest = "s3_origin_config" + elif key == "vpcOriginConfig": + suggest = "vpc_origin_config" if suggest: pulumi.log.warn(f"Key '{key}' not found in DistributionOrigin. Access the value via the '{suggest}' property getter instead.") @@ -1849,7 +1855,8 @@ def __init__(__self__, *, origin_access_control_id: Optional[str] = None, origin_path: Optional[str] = None, origin_shield: Optional['outputs.DistributionOriginOriginShield'] = None, - s3_origin_config: Optional['outputs.DistributionOriginS3OriginConfig'] = None): + s3_origin_config: Optional['outputs.DistributionOriginS3OriginConfig'] = None, + vpc_origin_config: Optional['outputs.DistributionOriginVpcOriginConfig'] = None): """ :param str domain_name: Domain name corresponding to the distribution. For example: `d604721fxaaqy9.cloudfront.net`. :param int connection_attempts: Number of times that CloudFront attempts to connect to the origin. Must be between 1-3. Defaults to 3. @@ -1860,6 +1867,7 @@ def __init__(__self__, *, :param str origin_path: Optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin. :param 'DistributionOriginOriginShieldArgs' origin_shield: CloudFront Origin Shield configuration information. Using Origin Shield can help reduce the load on your origin. For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the Amazon CloudFront Developer Guide. :param 'DistributionOriginS3OriginConfigArgs' s3_origin_config: CloudFront S3 origin configuration information. If a custom origin is required, use `custom_origin_config` instead. + :param 'DistributionOriginVpcOriginConfigArgs' vpc_origin_config: The VPC origin configuration. """ pulumi.set(__self__, "domain_name", domain_name) pulumi.set(__self__, "origin_id", origin_id) @@ -1879,6 +1887,8 @@ def __init__(__self__, *, pulumi.set(__self__, "origin_shield", origin_shield) if s3_origin_config is not None: pulumi.set(__self__, "s3_origin_config", s3_origin_config) + if vpc_origin_config is not None: + pulumi.set(__self__, "vpc_origin_config", vpc_origin_config) @property @pulumi.getter(name="domainName") @@ -1957,6 +1967,14 @@ def s3_origin_config(self) -> Optional['outputs.DistributionOriginS3OriginConfig """ return pulumi.get(self, "s3_origin_config") + @property + @pulumi.getter(name="vpcOriginConfig") + def vpc_origin_config(self) -> Optional['outputs.DistributionOriginVpcOriginConfig']: + """ + The VPC origin configuration. + """ + return pulumi.get(self, "vpc_origin_config") + @pulumi.output_type class DistributionOriginCustomHeader(dict): @@ -2018,8 +2036,6 @@ def __init__(__self__, *, :param int https_port: HTTPS port the custom origin listens on. :param str origin_protocol_policy: Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`. :param Sequence[str] origin_ssl_protocols: List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide. - :param int origin_keepalive_timeout: The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - :param int origin_read_timeout: The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. """ pulumi.set(__self__, "http_port", http_port) pulumi.set(__self__, "https_port", https_port) @@ -2065,17 +2081,11 @@ def origin_ssl_protocols(self) -> Sequence[str]: @property @pulumi.getter(name="originKeepaliveTimeout") def origin_keepalive_timeout(self) -> Optional[int]: - """ - The Custom KeepAlive timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `5`. - """ return pulumi.get(self, "origin_keepalive_timeout") @property @pulumi.getter(name="originReadTimeout") def origin_read_timeout(self) -> Optional[int]: - """ - The Custom Read timeout, in seconds. By default, AWS enforces an upper limit of `60`. But you can request an [increase](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-request-timeout). Defaults to `30`. - """ return pulumi.get(self, "origin_read_timeout") @@ -2280,6 +2290,61 @@ def origin_access_identity(self) -> str: return pulumi.get(self, "origin_access_identity") +@pulumi.output_type +class DistributionOriginVpcOriginConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "vpcOriginId": + suggest = "vpc_origin_id" + elif key == "originKeepaliveTimeout": + suggest = "origin_keepalive_timeout" + elif key == "originReadTimeout": + suggest = "origin_read_timeout" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DistributionOriginVpcOriginConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DistributionOriginVpcOriginConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DistributionOriginVpcOriginConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + vpc_origin_id: str, + origin_keepalive_timeout: Optional[int] = None, + origin_read_timeout: Optional[int] = None): + """ + :param str vpc_origin_id: The VPC origin ID. + """ + pulumi.set(__self__, "vpc_origin_id", vpc_origin_id) + if origin_keepalive_timeout is not None: + pulumi.set(__self__, "origin_keepalive_timeout", origin_keepalive_timeout) + if origin_read_timeout is not None: + pulumi.set(__self__, "origin_read_timeout", origin_read_timeout) + + @property + @pulumi.getter(name="vpcOriginId") + def vpc_origin_id(self) -> str: + """ + The VPC origin ID. + """ + return pulumi.get(self, "vpc_origin_id") + + @property + @pulumi.getter(name="originKeepaliveTimeout") + def origin_keepalive_timeout(self) -> Optional[int]: + return pulumi.get(self, "origin_keepalive_timeout") + + @property + @pulumi.getter(name="originReadTimeout") + def origin_read_timeout(self) -> Optional[int]: + return pulumi.get(self, "origin_read_timeout") + + @pulumi.output_type class DistributionRestrictions(dict): @staticmethod @@ -3948,6 +4013,165 @@ def sampling_rate(self) -> float: return pulumi.get(self, "sampling_rate") +@pulumi.output_type +class VpcOriginTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + +@pulumi.output_type +class VpcOriginVpcOriginEndpointConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "httpPort": + suggest = "http_port" + elif key == "httpsPort": + suggest = "https_port" + elif key == "originProtocolPolicy": + suggest = "origin_protocol_policy" + elif key == "originSslProtocols": + suggest = "origin_ssl_protocols" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in VpcOriginVpcOriginEndpointConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + VpcOriginVpcOriginEndpointConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + VpcOriginVpcOriginEndpointConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + arn: str, + http_port: int, + https_port: int, + name: str, + origin_protocol_policy: str, + origin_ssl_protocols: Optional['outputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocols'] = None): + """ + :param str arn: The VPC origin ARN. + :param int http_port: The HTTP port for the CloudFront VPC origin endpoint configuration. + :param int https_port: The HTTPS port for the CloudFront VPC origin endpoint configuration. + :param str name: The name of the CloudFront VPC origin endpoint configuration. + :param str origin_protocol_policy: The origin protocol policy for the CloudFront VPC origin endpoint configuration. + :param 'VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs' origin_ssl_protocols: A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "http_port", http_port) + pulumi.set(__self__, "https_port", https_port) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "origin_protocol_policy", origin_protocol_policy) + if origin_ssl_protocols is not None: + pulumi.set(__self__, "origin_ssl_protocols", origin_ssl_protocols) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The VPC origin ARN. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="httpPort") + def http_port(self) -> int: + """ + The HTTP port for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "http_port") + + @property + @pulumi.getter(name="httpsPort") + def https_port(self) -> int: + """ + The HTTPS port for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "https_port") + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="originProtocolPolicy") + def origin_protocol_policy(self) -> str: + """ + The origin protocol policy for the CloudFront VPC origin endpoint configuration. + """ + return pulumi.get(self, "origin_protocol_policy") + + @property + @pulumi.getter(name="originSslProtocols") + def origin_ssl_protocols(self) -> Optional['outputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocols']: + """ + A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin. + """ + return pulumi.get(self, "origin_ssl_protocols") + + +@pulumi.output_type +class VpcOriginVpcOriginEndpointConfigOriginSslProtocols(dict): + def __init__(__self__, *, + items: Sequence[str], + quantity: int): + pulumi.set(__self__, "items", items) + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def items(self) -> Sequence[str]: + return pulumi.get(self, "items") + + @property + @pulumi.getter + def quantity(self) -> int: + return pulumi.get(self, "quantity") + + @pulumi.output_type class GetCachePolicyParametersInCacheKeyAndForwardedToOriginResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/cloudfront/vpc_origin.py b/sdk/python/pulumi_aws/cloudfront/vpc_origin.py new file mode 100644 index 00000000000..c7daf3d03f2 --- /dev/null +++ b/sdk/python/pulumi_aws/cloudfront/vpc_origin.py @@ -0,0 +1,384 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['VpcOriginArgs', 'VpcOrigin'] + +@pulumi.input_type +class VpcOriginArgs: + def __init__(__self__, *, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['VpcOriginTimeoutsArgs']] = None, + vpc_origin_endpoint_config: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']] = None): + """ + The set of arguments for constructing a VpcOrigin resource. + """ + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if vpc_origin_endpoint_config is not None: + pulumi.set(__self__, "vpc_origin_endpoint_config", vpc_origin_endpoint_config) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['VpcOriginTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['VpcOriginTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="vpcOriginEndpointConfig") + def vpc_origin_endpoint_config(self) -> Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']]: + return pulumi.get(self, "vpc_origin_endpoint_config") + + @vpc_origin_endpoint_config.setter + def vpc_origin_endpoint_config(self, value: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']]): + pulumi.set(self, "vpc_origin_endpoint_config", value) + + +@pulumi.input_type +class _VpcOriginState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['VpcOriginTimeoutsArgs']] = None, + vpc_origin_endpoint_config: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']] = None): + """ + Input properties used for looking up and filtering VpcOrigin resources. + :param pulumi.Input[str] arn: The VPC origin ARN. + :param pulumi.Input[str] etag: The current version of the origin. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if etag is not None: + pulumi.set(__self__, "etag", etag) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if vpc_origin_endpoint_config is not None: + pulumi.set(__self__, "vpc_origin_endpoint_config", vpc_origin_endpoint_config) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The VPC origin ARN. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + The current version of the origin. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['VpcOriginTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['VpcOriginTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="vpcOriginEndpointConfig") + def vpc_origin_endpoint_config(self) -> Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']]: + return pulumi.get(self, "vpc_origin_endpoint_config") + + @vpc_origin_endpoint_config.setter + def vpc_origin_endpoint_config(self, value: Optional[pulumi.Input['VpcOriginVpcOriginEndpointConfigArgs']]): + pulumi.set(self, "vpc_origin_endpoint_config", value) + + +class VpcOrigin(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['VpcOriginTimeoutsArgs', 'VpcOriginTimeoutsArgsDict']]] = None, + vpc_origin_endpoint_config: Optional[pulumi.Input[Union['VpcOriginVpcOriginEndpointConfigArgs', 'VpcOriginVpcOriginEndpointConfigArgsDict']]] = None, + __props__=None): + """ + Creates an Amazon CloudFront VPC origin. + + For information about CloudFront VPC origins, see + [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. + + ## Example Usage + + ### Application Load Balancer + + The following example below creates a CloudFront VPC origin for a Application Load Balancer. + + ```python + import pulumi + import pulumi_aws as aws + + alb = aws.cloudfront.VpcOrigin("alb", vpc_origin_endpoint_config={ + "name": "Example VPC Origin", + "arn": this["arn"], + "http_port": 8080, + "https_port": 8443, + "origin_protocol_policy": "https-only", + "origin_ssl_protocols": { + "items": ["TLSv1.2"], + "quantity": 1, + }, + }) + ``` + + ## Import + + terraform + + import { + + to = aws_cloudfront_vpc_origin.origin + + id = vo_JQEa410sssUFoY6wMkx69j + + } + + Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: + + console + + % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[VpcOriginArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Creates an Amazon CloudFront VPC origin. + + For information about CloudFront VPC origins, see + [Amazon CloudFront Developer Guide - Restrict access with VPC origins][1]. + + ## Example Usage + + ### Application Load Balancer + + The following example below creates a CloudFront VPC origin for a Application Load Balancer. + + ```python + import pulumi + import pulumi_aws as aws + + alb = aws.cloudfront.VpcOrigin("alb", vpc_origin_endpoint_config={ + "name": "Example VPC Origin", + "arn": this["arn"], + "http_port": 8080, + "https_port": 8443, + "origin_protocol_policy": "https-only", + "origin_ssl_protocols": { + "items": ["TLSv1.2"], + "quantity": 1, + }, + }) + ``` + + ## Import + + terraform + + import { + + to = aws_cloudfront_vpc_origin.origin + + id = vo_JQEa410sssUFoY6wMkx69j + + } + + Using `pulumi import`, import Cloudfront VPC origins using the `id`. For example: + + console + + % pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j + + :param str resource_name: The name of the resource. + :param VpcOriginArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(VpcOriginArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['VpcOriginTimeoutsArgs', 'VpcOriginTimeoutsArgsDict']]] = None, + vpc_origin_endpoint_config: Optional[pulumi.Input[Union['VpcOriginVpcOriginEndpointConfigArgs', 'VpcOriginVpcOriginEndpointConfigArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = VpcOriginArgs.__new__(VpcOriginArgs) + + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["vpc_origin_endpoint_config"] = vpc_origin_endpoint_config + __props__.__dict__["arn"] = None + __props__.__dict__["etag"] = None + __props__.__dict__["tags_all"] = None + super(VpcOrigin, __self__).__init__( + 'aws:cloudfront/vpcOrigin:VpcOrigin', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['VpcOriginTimeoutsArgs', 'VpcOriginTimeoutsArgsDict']]] = None, + vpc_origin_endpoint_config: Optional[pulumi.Input[Union['VpcOriginVpcOriginEndpointConfigArgs', 'VpcOriginVpcOriginEndpointConfigArgsDict']]] = None) -> 'VpcOrigin': + """ + Get an existing VpcOrigin resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] arn: The VPC origin ARN. + :param pulumi.Input[str] etag: The current version of the origin. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _VpcOriginState.__new__(_VpcOriginState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["etag"] = etag + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["vpc_origin_endpoint_config"] = vpc_origin_endpoint_config + return VpcOrigin(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The VPC origin ARN. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + The current version of the origin. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.VpcOriginTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="vpcOriginEndpointConfig") + def vpc_origin_endpoint_config(self) -> pulumi.Output[Optional['outputs.VpcOriginVpcOriginEndpointConfig']]: + return pulumi.get(self, "vpc_origin_endpoint_config") + diff --git a/sdk/python/pulumi_aws/cloudwatch/log_account_policy.py b/sdk/python/pulumi_aws/cloudwatch/log_account_policy.py index 1715f7d8dd1..551dfbdb977 100644 --- a/sdk/python/pulumi_aws/cloudwatch/log_account_policy.py +++ b/sdk/python/pulumi_aws/cloudwatch/log_account_policy.py @@ -28,7 +28,7 @@ def __init__(__self__, *, The set of arguments for constructing a LogAccountPolicy resource. :param pulumi.Input[str] policy_document: Text of the account policy. Refer to the [AWS docs](https://docs.aws.amazon.com/cli/latest/reference/logs/put-account-policy.html) for more information. :param pulumi.Input[str] policy_name: Name of the account policy. - :param pulumi.Input[str] policy_type: Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + :param pulumi.Input[str] policy_type: Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. :param pulumi.Input[str] scope: Currently defaults to and only accepts the value: `ALL`. :param pulumi.Input[str] selection_criteria: Criteria for applying a subscription filter policy to a selection of log groups. The only allowable criteria selector is `LogGroupName NOT IN []`. """ @@ -68,7 +68,7 @@ def policy_name(self, value: pulumi.Input[str]): @pulumi.getter(name="policyType") def policy_type(self) -> pulumi.Input[str]: """ - Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. """ return pulumi.get(self, "policy_type") @@ -113,7 +113,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering LogAccountPolicy resources. :param pulumi.Input[str] policy_document: Text of the account policy. Refer to the [AWS docs](https://docs.aws.amazon.com/cli/latest/reference/logs/put-account-policy.html) for more information. :param pulumi.Input[str] policy_name: Name of the account policy. - :param pulumi.Input[str] policy_type: Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + :param pulumi.Input[str] policy_type: Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. :param pulumi.Input[str] scope: Currently defaults to and only accepts the value: `ALL`. :param pulumi.Input[str] selection_criteria: Criteria for applying a subscription filter policy to a selection of log groups. The only allowable criteria selector is `LogGroupName NOT IN []`. """ @@ -156,7 +156,7 @@ def policy_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="policyType") def policy_type(self) -> Optional[pulumi.Input[str]]: """ - Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. """ return pulumi.get(self, "policy_type") @@ -258,6 +258,24 @@ def __init__(__self__, selection_criteria="LogGroupName NOT IN [\\"excluded_log_group_name\\"]") ``` + ### Field Index Policy + + ```python + import pulumi + import json + import pulumi_aws as aws + + field_index = aws.cloudwatch.LogAccountPolicy("field_index", + policy_name="field-index", + policy_type="FIELD_INDEX_POLICY", + policy_document=json.dumps({ + "Fields": [ + "field1", + "field2", + ], + })) + ``` + ## Import Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -270,7 +288,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] policy_document: Text of the account policy. Refer to the [AWS docs](https://docs.aws.amazon.com/cli/latest/reference/logs/put-account-policy.html) for more information. :param pulumi.Input[str] policy_name: Name of the account policy. - :param pulumi.Input[str] policy_type: Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + :param pulumi.Input[str] policy_type: Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. :param pulumi.Input[str] scope: Currently defaults to and only accepts the value: `ALL`. :param pulumi.Input[str] selection_criteria: Criteria for applying a subscription filter policy to a selection of log groups. The only allowable criteria selector is `LogGroupName NOT IN []`. """ @@ -338,6 +356,24 @@ def __init__(__self__, selection_criteria="LogGroupName NOT IN [\\"excluded_log_group_name\\"]") ``` + ### Field Index Policy + + ```python + import pulumi + import json + import pulumi_aws as aws + + field_index = aws.cloudwatch.LogAccountPolicy("field_index", + policy_name="field-index", + policy_type="FIELD_INDEX_POLICY", + policy_document=json.dumps({ + "Fields": [ + "field1", + "field2", + ], + })) + ``` + ## Import Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: @@ -410,7 +446,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] policy_document: Text of the account policy. Refer to the [AWS docs](https://docs.aws.amazon.com/cli/latest/reference/logs/put-account-policy.html) for more information. :param pulumi.Input[str] policy_name: Name of the account policy. - :param pulumi.Input[str] policy_type: Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + :param pulumi.Input[str] policy_type: Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. :param pulumi.Input[str] scope: Currently defaults to and only accepts the value: `ALL`. :param pulumi.Input[str] selection_criteria: Criteria for applying a subscription filter policy to a selection of log groups. The only allowable criteria selector is `LogGroupName NOT IN []`. """ @@ -445,7 +481,7 @@ def policy_name(self) -> pulumi.Output[str]: @pulumi.getter(name="policyType") def policy_type(self) -> pulumi.Output[str]: """ - Type of account policy. Either `DATA_PROTECTION_POLICY` or `SUBSCRIPTION_FILTER_POLICY`. You can have one account policy per type in an account. + Type of account policy. One of `DATA_PROTECTION_POLICY`, `SUBSCRIPTION_FILTER_POLICY`, `FIELD_INDEX_POLICY` or `TRANSFORMER_POLICY`. You can have one account policy per type in an account. """ return pulumi.get(self, "policy_type") diff --git a/sdk/python/pulumi_aws/codeconnections/_inputs.py b/sdk/python/pulumi_aws/codeconnections/_inputs.py index 82deb834815..3e420a8c3ee 100644 --- a/sdk/python/pulumi_aws/codeconnections/_inputs.py +++ b/sdk/python/pulumi_aws/codeconnections/_inputs.py @@ -179,14 +179,14 @@ class HostVpcConfigurationArgsDict(TypedDict): """ The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. """ - tls_certificate: pulumi.Input[str] - """ - The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. - """ vpc_id: pulumi.Input[str] """ The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. """ + tls_certificate: NotRequired[pulumi.Input[str]] + """ + The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. + """ elif False: HostVpcConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -195,18 +195,19 @@ class HostVpcConfigurationArgs: def __init__(__self__, *, security_group_ids: pulumi.Input[Sequence[pulumi.Input[str]]], subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]], - tls_certificate: pulumi.Input[str], - vpc_id: pulumi.Input[str]): + vpc_id: pulumi.Input[str], + tls_certificate: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. - :param pulumi.Input[str] tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. :param pulumi.Input[str] vpc_id: The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. + :param pulumi.Input[str] tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. """ pulumi.set(__self__, "security_group_ids", security_group_ids) pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "tls_certificate", tls_certificate) pulumi.set(__self__, "vpc_id", vpc_id) + if tls_certificate is not None: + pulumi.set(__self__, "tls_certificate", tls_certificate) @property @pulumi.getter(name="securityGroupIds") @@ -232,18 +233,6 @@ def subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: def subnet_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): pulumi.set(self, "subnet_ids", value) - @property - @pulumi.getter(name="tlsCertificate") - def tls_certificate(self) -> pulumi.Input[str]: - """ - The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. - """ - return pulumi.get(self, "tls_certificate") - - @tls_certificate.setter - def tls_certificate(self, value: pulumi.Input[str]): - pulumi.set(self, "tls_certificate", value) - @property @pulumi.getter(name="vpcId") def vpc_id(self) -> pulumi.Input[str]: @@ -256,4 +245,16 @@ def vpc_id(self) -> pulumi.Input[str]: def vpc_id(self, value: pulumi.Input[str]): pulumi.set(self, "vpc_id", value) + @property + @pulumi.getter(name="tlsCertificate") + def tls_certificate(self) -> Optional[pulumi.Input[str]]: + """ + The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. + """ + return pulumi.get(self, "tls_certificate") + + @tls_certificate.setter + def tls_certificate(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tls_certificate", value) + diff --git a/sdk/python/pulumi_aws/codeconnections/outputs.py b/sdk/python/pulumi_aws/codeconnections/outputs.py index 4d1814160c2..530a4d31eef 100644 --- a/sdk/python/pulumi_aws/codeconnections/outputs.py +++ b/sdk/python/pulumi_aws/codeconnections/outputs.py @@ -115,10 +115,10 @@ def __key_warning(key: str): suggest = "security_group_ids" elif key == "subnetIds": suggest = "subnet_ids" - elif key == "tlsCertificate": - suggest = "tls_certificate" elif key == "vpcId": suggest = "vpc_id" + elif key == "tlsCertificate": + suggest = "tls_certificate" if suggest: pulumi.log.warn(f"Key '{key}' not found in HostVpcConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -134,18 +134,19 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, security_group_ids: Sequence[str], subnet_ids: Sequence[str], - tls_certificate: str, - vpc_id: str): + vpc_id: str, + tls_certificate: Optional[str] = None): """ :param Sequence[str] security_group_ids: ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed. :param Sequence[str] subnet_ids: The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. - :param str tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. :param str vpc_id: The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. + :param str tls_certificate: The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. """ pulumi.set(__self__, "security_group_ids", security_group_ids) pulumi.set(__self__, "subnet_ids", subnet_ids) - pulumi.set(__self__, "tls_certificate", tls_certificate) pulumi.set(__self__, "vpc_id", vpc_id) + if tls_certificate is not None: + pulumi.set(__self__, "tls_certificate", tls_certificate) @property @pulumi.getter(name="securityGroupIds") @@ -163,14 +164,6 @@ def subnet_ids(self) -> Sequence[str]: """ return pulumi.get(self, "subnet_ids") - @property - @pulumi.getter(name="tlsCertificate") - def tls_certificate(self) -> str: - """ - The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. - """ - return pulumi.get(self, "tls_certificate") - @property @pulumi.getter(name="vpcId") def vpc_id(self) -> str: @@ -179,4 +172,12 @@ def vpc_id(self) -> str: """ return pulumi.get(self, "vpc_id") + @property + @pulumi.getter(name="tlsCertificate") + def tls_certificate(self) -> Optional[str]: + """ + The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. + """ + return pulumi.get(self, "tls_certificate") + diff --git a/sdk/python/pulumi_aws/config/outputs.py b/sdk/python/pulumi_aws/config/outputs.py index cc19adf7265..fd3101fcf40 100644 --- a/sdk/python/pulumi_aws/config/outputs.py +++ b/sdk/python/pulumi_aws/config/outputs.py @@ -429,6 +429,7 @@ def __init__(__self__, *, mediapackagev2: Optional[str] = None, mediastore: Optional[str] = None, memorydb: Optional[str] = None, + mgn: Optional[str] = None, mq: Optional[str] = None, msk: Optional[str] = None, mwaa: Optional[str] = None, @@ -522,6 +523,7 @@ def __init__(__self__, *, synthetics: Optional[str] = None, taxsettings: Optional[str] = None, timestreaminfluxdb: Optional[str] = None, + timestreamquery: Optional[str] = None, timestreamwrite: Optional[str] = None, transcribe: Optional[str] = None, transcribeservice: Optional[str] = None, @@ -724,6 +726,7 @@ def __init__(__self__, *, :param str mediapackagev2: Use this to override the default service endpoint URL :param str mediastore: Use this to override the default service endpoint URL :param str memorydb: Use this to override the default service endpoint URL + :param str mgn: Use this to override the default service endpoint URL :param str mq: Use this to override the default service endpoint URL :param str msk: Use this to override the default service endpoint URL :param str mwaa: Use this to override the default service endpoint URL @@ -817,6 +820,7 @@ def __init__(__self__, *, :param str synthetics: Use this to override the default service endpoint URL :param str taxsettings: Use this to override the default service endpoint URL :param str timestreaminfluxdb: Use this to override the default service endpoint URL + :param str timestreamquery: Use this to override the default service endpoint URL :param str timestreamwrite: Use this to override the default service endpoint URL :param str transcribe: Use this to override the default service endpoint URL :param str transcribeservice: Use this to override the default service endpoint URL @@ -1206,6 +1210,8 @@ def __init__(__self__, *, pulumi.set(__self__, "mediastore", mediastore) if memorydb is not None: pulumi.set(__self__, "memorydb", memorydb) + if mgn is not None: + pulumi.set(__self__, "mgn", mgn) if mq is not None: pulumi.set(__self__, "mq", mq) if msk is not None: @@ -1392,6 +1398,8 @@ def __init__(__self__, *, pulumi.set(__self__, "taxsettings", taxsettings) if timestreaminfluxdb is not None: pulumi.set(__self__, "timestreaminfluxdb", timestreaminfluxdb) + if timestreamquery is not None: + pulumi.set(__self__, "timestreamquery", timestreamquery) if timestreamwrite is not None: pulumi.set(__self__, "timestreamwrite", timestreamwrite) if transcribe is not None: @@ -2917,6 +2925,14 @@ def memorydb(self) -> Optional[str]: """ return pulumi.get(self, "memorydb") + @property + @pulumi.getter + def mgn(self) -> Optional[str]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "mgn") + @property @pulumi.getter def mq(self) -> Optional[str]: @@ -3661,6 +3677,14 @@ def timestreaminfluxdb(self) -> Optional[str]: """ return pulumi.get(self, "timestreaminfluxdb") + @property + @pulumi.getter + def timestreamquery(self) -> Optional[str]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "timestreamquery") + @property @pulumi.getter def timestreamwrite(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/directconnect/gateway.py b/sdk/python/pulumi_aws/directconnect/gateway.py index 89b1624b926..3231de29dae 100644 --- a/sdk/python/pulumi_aws/directconnect/gateway.py +++ b/sdk/python/pulumi_aws/directconnect/gateway.py @@ -59,16 +59,20 @@ def name(self, value: Optional[pulumi.Input[str]]): class _GatewayState: def __init__(__self__, *, amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, owner_account_id: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Gateway resources. :param pulumi.Input[str] amazon_side_asn: The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. + :param pulumi.Input[str] arn: The ARN of the gateway. :param pulumi.Input[str] name: The name of the connection. :param pulumi.Input[str] owner_account_id: AWS Account ID of the gateway. """ if amazon_side_asn is not None: pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + if arn is not None: + pulumi.set(__self__, "arn", arn) if name is not None: pulumi.set(__self__, "name", name) if owner_account_id is not None: @@ -86,6 +90,18 @@ def amazon_side_asn(self) -> Optional[pulumi.Input[str]]: def amazon_side_asn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "amazon_side_asn", value) + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the gateway. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -204,6 +220,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'amazon_side_asn'") __props__.__dict__["amazon_side_asn"] = amazon_side_asn __props__.__dict__["name"] = name + __props__.__dict__["arn"] = None __props__.__dict__["owner_account_id"] = None super(Gateway, __self__).__init__( 'aws:directconnect/gateway:Gateway', @@ -216,6 +233,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, amazon_side_asn: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, owner_account_id: Optional[pulumi.Input[str]] = None) -> 'Gateway': """ @@ -226,6 +244,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] amazon_side_asn: The ASN to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. + :param pulumi.Input[str] arn: The ARN of the gateway. :param pulumi.Input[str] name: The name of the connection. :param pulumi.Input[str] owner_account_id: AWS Account ID of the gateway. """ @@ -234,6 +253,7 @@ def get(resource_name: str, __props__ = _GatewayState.__new__(_GatewayState) __props__.__dict__["amazon_side_asn"] = amazon_side_asn + __props__.__dict__["arn"] = arn __props__.__dict__["name"] = name __props__.__dict__["owner_account_id"] = owner_account_id return Gateway(resource_name, opts=opts, __props__=__props__) @@ -246,6 +266,14 @@ def amazon_side_asn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "amazon_side_asn") + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the gateway. + """ + return pulumi.get(self, "arn") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/directconnect/get_gateway.py b/sdk/python/pulumi_aws/directconnect/get_gateway.py index de7d2a20270..dbf6eabb7f2 100644 --- a/sdk/python/pulumi_aws/directconnect/get_gateway.py +++ b/sdk/python/pulumi_aws/directconnect/get_gateway.py @@ -26,10 +26,13 @@ class GetGatewayResult: """ A collection of values returned by getGateway. """ - def __init__(__self__, amazon_side_asn=None, id=None, name=None, owner_account_id=None): + def __init__(__self__, amazon_side_asn=None, arn=None, id=None, name=None, owner_account_id=None): if amazon_side_asn and not isinstance(amazon_side_asn, str): raise TypeError("Expected argument 'amazon_side_asn' to be a str") pulumi.set(__self__, "amazon_side_asn", amazon_side_asn) + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) @@ -48,6 +51,14 @@ def amazon_side_asn(self) -> str: """ return pulumi.get(self, "amazon_side_asn") + @property + @pulumi.getter + def arn(self) -> str: + """ + ARN of the gateway. + """ + return pulumi.get(self, "arn") + @property @pulumi.getter def id(self) -> str: @@ -77,6 +88,7 @@ def __await__(self): yield self return GetGatewayResult( amazon_side_asn=self.amazon_side_asn, + arn=self.arn, id=self.id, name=self.name, owner_account_id=self.owner_account_id) @@ -106,6 +118,7 @@ def get_gateway(name: Optional[str] = None, return AwaitableGetGatewayResult( amazon_side_asn=pulumi.get(__ret__, 'amazon_side_asn'), + arn=pulumi.get(__ret__, 'arn'), id=pulumi.get(__ret__, 'id'), name=pulumi.get(__ret__, 'name'), owner_account_id=pulumi.get(__ret__, 'owner_account_id')) @@ -132,6 +145,7 @@ def get_gateway_output(name: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws:directconnect/getGateway:getGateway', __args__, opts=opts, typ=GetGatewayResult) return __ret__.apply(lambda __response__: GetGatewayResult( amazon_side_asn=pulumi.get(__response__, 'amazon_side_asn'), + arn=pulumi.get(__response__, 'arn'), id=pulumi.get(__response__, 'id'), name=pulumi.get(__response__, 'name'), owner_account_id=pulumi.get(__response__, 'owner_account_id'))) diff --git a/sdk/python/pulumi_aws/ec2/vpc_endpoint.py b/sdk/python/pulumi_aws/ec2/vpc_endpoint.py index 11b7994e7b0..fd8aeb275a5 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_endpoint.py +++ b/sdk/python/pulumi_aws/ec2/vpc_endpoint.py @@ -30,6 +30,7 @@ def __init__(__self__, *, private_dns_enabled: Optional[pulumi.Input[bool]] = None, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_region: Optional[pulumi.Input[str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['VpcEndpointSubnetConfigurationArgs']]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -47,6 +48,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] route_table_ids: One or more route table IDs. Applicable for endpoints of type `Gateway`. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. + :param pulumi.Input[str] service_region: The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. :param pulumi.Input[Sequence[pulumi.Input['VpcEndpointSubnetConfigurationArgs']]] subnet_configurations: Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -68,6 +70,8 @@ def __init__(__self__, *, pulumi.set(__self__, "route_table_ids", route_table_ids) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) + if service_region is not None: + pulumi.set(__self__, "service_region", service_region) if subnet_configurations is not None: pulumi.set(__self__, "subnet_configurations", subnet_configurations) if subnet_ids is not None: @@ -187,6 +191,18 @@ def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str] def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "security_group_ids", value) + @property + @pulumi.getter(name="serviceRegion") + def service_region(self) -> Optional[pulumi.Input[str]]: + """ + The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + """ + return pulumi.get(self, "service_region") + + @service_region.setter + def service_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_region", value) + @property @pulumi.getter(name="subnetConfigurations") def subnet_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VpcEndpointSubnetConfigurationArgs']]]]: @@ -254,6 +270,7 @@ def __init__(__self__, *, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, + service_region: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['VpcEndpointSubnetConfigurationArgs']]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -280,6 +297,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. :param pulumi.Input[str] service_name: The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). + :param pulumi.Input[str] service_region: The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. :param pulumi.Input[str] state: The state of the VPC endpoint. :param pulumi.Input[Sequence[pulumi.Input['VpcEndpointSubnetConfigurationArgs']]] subnet_configurations: Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. @@ -318,6 +336,8 @@ def __init__(__self__, *, pulumi.set(__self__, "security_group_ids", security_group_ids) if service_name is not None: pulumi.set(__self__, "service_name", service_name) + if service_region is not None: + pulumi.set(__self__, "service_region", service_region) if state is not None: pulumi.set(__self__, "state", state) if subnet_configurations is not None: @@ -518,6 +538,18 @@ def service_name(self) -> Optional[pulumi.Input[str]]: def service_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "service_name", value) + @property + @pulumi.getter(name="serviceRegion") + def service_region(self) -> Optional[pulumi.Input[str]]: + """ + The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + """ + return pulumi.get(self, "service_region") + + @service_region.setter + def service_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_region", value) + @property @pulumi.getter def state(self) -> Optional[pulumi.Input[str]]: @@ -617,6 +649,7 @@ def __init__(__self__, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, + service_region: Optional[pulumi.Input[str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpcEndpointSubnetConfigurationArgs', 'VpcEndpointSubnetConfigurationArgsDict']]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -739,6 +772,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. :param pulumi.Input[str] service_name: The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). + :param pulumi.Input[str] service_region: The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. :param pulumi.Input[Sequence[pulumi.Input[Union['VpcEndpointSubnetConfigurationArgs', 'VpcEndpointSubnetConfigurationArgsDict']]]] subnet_configurations: Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -878,6 +912,7 @@ def _internal_init(__self__, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, + service_region: Optional[pulumi.Input[str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpcEndpointSubnetConfigurationArgs', 'VpcEndpointSubnetConfigurationArgsDict']]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -902,6 +937,7 @@ def _internal_init(__self__, if service_name is None and not opts.urn: raise TypeError("Missing required property 'service_name'") __props__.__dict__["service_name"] = service_name + __props__.__dict__["service_region"] = service_region __props__.__dict__["subnet_configurations"] = subnet_configurations __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags @@ -943,6 +979,7 @@ def get(resource_name: str, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, + service_region: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpcEndpointSubnetConfigurationArgs', 'VpcEndpointSubnetConfigurationArgsDict']]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -974,6 +1011,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. :param pulumi.Input[str] service_name: The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). + :param pulumi.Input[str] service_region: The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. :param pulumi.Input[str] state: The state of the VPC endpoint. :param pulumi.Input[Sequence[pulumi.Input[Union['VpcEndpointSubnetConfigurationArgs', 'VpcEndpointSubnetConfigurationArgsDict']]]] subnet_configurations: Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. @@ -1001,6 +1039,7 @@ def get(resource_name: str, __props__.__dict__["route_table_ids"] = route_table_ids __props__.__dict__["security_group_ids"] = security_group_ids __props__.__dict__["service_name"] = service_name + __props__.__dict__["service_region"] = service_region __props__.__dict__["state"] = state __props__.__dict__["subnet_configurations"] = subnet_configurations __props__.__dict__["subnet_ids"] = subnet_ids @@ -1132,6 +1171,14 @@ def service_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "service_name") + @property + @pulumi.getter(name="serviceRegion") + def service_region(self) -> pulumi.Output[str]: + """ + The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. + """ + return pulumi.get(self, "service_region") + @property @pulumi.getter def state(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/eks/cluster.py b/sdk/python/pulumi_aws/eks/cluster.py index 060beb61f4b..389f8c3b0fa 100644 --- a/sdk/python/pulumi_aws/eks/cluster.py +++ b/sdk/python/pulumi_aws/eks/cluster.py @@ -808,7 +808,7 @@ def __init__(__self__, ### EKS Cluster with EKS Auto Mode - > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. + > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrap_self_managed_addons` is set to `false`. ```python import pulumi @@ -864,6 +864,7 @@ def __init__(__self__, }, role_arn=cluster.arn, version="1.31", + bootstrap_self_managed_addons=False, compute_config={ "enabled": True, "node_pools": ["general-purpose"], @@ -1041,7 +1042,7 @@ def __init__(__self__, ### EKS Cluster with EKS Auto Mode - > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. + > **NOTE:** When using EKS Auto Mode `compute_config.enabled`, `kubernetes_network_config.elastic_load_balancing.enabled`, and `storage_config.block_storage.enabled` must *ALL be set to `true`. Likewise for disabling EKS Auto Mode, all three arguments must be set to `false`. Enabling EKS Auto Mode also requires that `bootstrap_self_managed_addons` is set to `false`. ```python import pulumi @@ -1097,6 +1098,7 @@ def __init__(__self__, }, role_arn=cluster.arn, version="1.31", + bootstrap_self_managed_addons=False, compute_config={ "enabled": True, "node_pools": ["general-purpose"], diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index dcc403ade8e..a226efb0109 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -65,6 +65,8 @@ def __init__(__self__, *, :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. :param pulumi.Input[bool] apply_immediately: Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. :param pulumi.Input[bool] at_rest_encryption_enabled: Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. @@ -73,7 +75,9 @@ def __init__(__self__, *, :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -238,6 +242,8 @@ def apply_immediately(self, value: Optional[pulumi.Input[bool]]): def at_rest_encryption_enabled(self) -> Optional[pulumi.Input[bool]]: """ Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. """ return pulumi.get(self, "at_rest_encryption_enabled") @@ -323,7 +329,9 @@ def data_tiering_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. """ return pulumi.get(self, "engine") @@ -762,6 +770,8 @@ def __init__(__self__, *, :param pulumi.Input[bool] apply_immediately: Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. :param pulumi.Input[str] arn: ARN of the created ElastiCache Replication Group. :param pulumi.Input[bool] at_rest_encryption_enabled: Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. @@ -773,7 +783,9 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -963,6 +975,8 @@ def arn(self, value: Optional[pulumi.Input[str]]): def at_rest_encryption_enabled(self) -> Optional[pulumi.Input[bool]]: """ Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. """ return pulumi.get(self, "at_rest_encryption_enabled") @@ -1084,7 +1098,9 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. """ return pulumi.get(self, "engine") @@ -1764,6 +1780,8 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[bool] apply_immediately: Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. :param pulumi.Input[bool] at_rest_encryption_enabled: Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. @@ -1773,7 +1791,9 @@ def __init__(__self__, :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -2204,6 +2224,8 @@ def get(resource_name: str, :param pulumi.Input[bool] apply_immediately: Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is `false`. :param pulumi.Input[str] arn: ARN of the created ElastiCache Replication Group. :param pulumi.Input[bool] at_rest_encryption_enabled: Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. @@ -2215,7 +2237,9 @@ def get(resource_name: str, :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -2352,6 +2376,8 @@ def arn(self) -> pulumi.Output[str]: def at_rest_encryption_enabled(self) -> pulumi.Output[bool]: """ Whether to enable encryption at rest. + When `engine` is `redis`, default is `false`. + When `engine` is `valkey`, default is `true`. """ return pulumi.get(self, "at_rest_encryption_enabled") @@ -2433,7 +2459,9 @@ def description(self) -> pulumi.Output[str]: @pulumi.getter def engine(self) -> pulumi.Output[Optional[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. + Name of the cache engine to be used for the clusters in this replication group. + Valid values are `redis` or `valkey`. + Default is `redis`. """ return pulumi.get(self, "engine") diff --git a/sdk/python/pulumi_aws/fsx/lustre_file_system.py b/sdk/python/pulumi_aws/fsx/lustre_file_system.py index e9ada431d77..29a2f4f7c84 100644 --- a/sdk/python/pulumi_aws/fsx/lustre_file_system.py +++ b/sdk/python/pulumi_aws/fsx/lustre_file_system.py @@ -30,6 +30,7 @@ def __init__(__self__, *, data_compression_type: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, drive_cache_type: Optional[pulumi.Input[str]] = None, + efa_enabled: Optional[pulumi.Input[bool]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -59,6 +60,7 @@ def __init__(__self__, *, :param pulumi.Input[str] data_compression_type: Sets the data compression configuration for the file system. Valid values are `LZ4` and `NONE`. Default value is `NONE`. Unsetting this value reverts the compression type back to `NONE`. :param pulumi.Input[str] deployment_type: The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`. :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. + :param pulumi.Input[bool] efa_enabled: Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. @@ -97,6 +99,8 @@ def __init__(__self__, *, pulumi.set(__self__, "deployment_type", deployment_type) if drive_cache_type is not None: pulumi.set(__self__, "drive_cache_type", drive_cache_type) + if efa_enabled is not None: + pulumi.set(__self__, "efa_enabled", efa_enabled) if export_path is not None: pulumi.set(__self__, "export_path", export_path) if file_system_type_version is not None: @@ -240,6 +244,18 @@ def drive_cache_type(self) -> Optional[pulumi.Input[str]]: def drive_cache_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "drive_cache_type", value) + @property + @pulumi.getter(name="efaEnabled") + def efa_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + """ + return pulumi.get(self, "efa_enabled") + + @efa_enabled.setter + def efa_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "efa_enabled", value) + @property @pulumi.getter(name="exportPath") def export_path(self) -> Optional[pulumi.Input[str]]: @@ -450,6 +466,7 @@ def __init__(__self__, *, deployment_type: Optional[pulumi.Input[str]] = None, dns_name: Optional[pulumi.Input[str]] = None, drive_cache_type: Optional[pulumi.Input[str]] = None, + efa_enabled: Optional[pulumi.Input[bool]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -484,6 +501,7 @@ def __init__(__self__, *, :param pulumi.Input[str] deployment_type: The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. + :param pulumi.Input[bool] efa_enabled: Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. @@ -533,6 +551,8 @@ def __init__(__self__, *, pulumi.set(__self__, "dns_name", dns_name) if drive_cache_type is not None: pulumi.set(__self__, "drive_cache_type", drive_cache_type) + if efa_enabled is not None: + pulumi.set(__self__, "efa_enabled", efa_enabled) if export_path is not None: pulumi.set(__self__, "export_path", export_path) if file_system_type_version is not None: @@ -701,6 +721,18 @@ def drive_cache_type(self) -> Optional[pulumi.Input[str]]: def drive_cache_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "drive_cache_type", value) + @property + @pulumi.getter(name="efaEnabled") + def efa_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + """ + return pulumi.get(self, "efa_enabled") + + @efa_enabled.setter + def efa_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "efa_enabled", value) + @property @pulumi.getter(name="exportPath") def export_path(self) -> Optional[pulumi.Input[str]]: @@ -986,6 +1018,7 @@ def __init__(__self__, data_compression_type: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, drive_cache_type: Optional[pulumi.Input[str]] = None, + efa_enabled: Optional[pulumi.Input[bool]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -1040,6 +1073,7 @@ def __init__(__self__, :param pulumi.Input[str] data_compression_type: Sets the data compression configuration for the file system. Valid values are `LZ4` and `NONE`. Default value is `NONE`. Unsetting this value reverts the compression type back to `NONE`. :param pulumi.Input[str] deployment_type: The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`. :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. + :param pulumi.Input[bool] efa_enabled: Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. @@ -1119,6 +1153,7 @@ def _internal_init(__self__, data_compression_type: Optional[pulumi.Input[str]] = None, deployment_type: Optional[pulumi.Input[str]] = None, drive_cache_type: Optional[pulumi.Input[str]] = None, + efa_enabled: Optional[pulumi.Input[bool]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -1153,6 +1188,7 @@ def _internal_init(__self__, __props__.__dict__["data_compression_type"] = data_compression_type __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["drive_cache_type"] = drive_cache_type + __props__.__dict__["efa_enabled"] = efa_enabled __props__.__dict__["export_path"] = export_path __props__.__dict__["file_system_type_version"] = file_system_type_version __props__.__dict__["final_backup_tags"] = final_backup_tags @@ -1199,6 +1235,7 @@ def get(resource_name: str, deployment_type: Optional[pulumi.Input[str]] = None, dns_name: Optional[pulumi.Input[str]] = None, drive_cache_type: Optional[pulumi.Input[str]] = None, + efa_enabled: Optional[pulumi.Input[bool]] = None, export_path: Optional[pulumi.Input[str]] = None, file_system_type_version: Optional[pulumi.Input[str]] = None, final_backup_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -1238,6 +1275,7 @@ def get(resource_name: str, :param pulumi.Input[str] deployment_type: The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`. :param pulumi.Input[str] dns_name: DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com` :param pulumi.Input[str] drive_cache_type: The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`. + :param pulumi.Input[bool] efa_enabled: Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. :param pulumi.Input[str] export_path: S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types. :param pulumi.Input[str] file_system_type_version: Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] final_backup_tags: A map of tags to apply to the file system's final backup. @@ -1281,6 +1319,7 @@ def get(resource_name: str, __props__.__dict__["deployment_type"] = deployment_type __props__.__dict__["dns_name"] = dns_name __props__.__dict__["drive_cache_type"] = drive_cache_type + __props__.__dict__["efa_enabled"] = efa_enabled __props__.__dict__["export_path"] = export_path __props__.__dict__["file_system_type_version"] = file_system_type_version __props__.__dict__["final_backup_tags"] = final_backup_tags @@ -1385,6 +1424,14 @@ def drive_cache_type(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "drive_cache_type") + @property + @pulumi.getter(name="efaEnabled") + def efa_enabled(self) -> pulumi.Output[bool]: + """ + Adds support for Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) to Lustre. This must be set at creation. If set this cannot be changed and this prevents changes to `per_unit_storage_throughput`. This is only supported when deployment_type is set to `PERSISTENT_2`, `metadata_configuration` is used, and an EFA-enabled security group is attached. + """ + return pulumi.get(self, "efa_enabled") + @property @pulumi.getter(name="exportPath") def export_path(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/lakeformation/permissions.py b/sdk/python/pulumi_aws/lakeformation/permissions.py index af7ef74f3d6..d5070c8f1e9 100644 --- a/sdk/python/pulumi_aws/lakeformation/permissions.py +++ b/sdk/python/pulumi_aws/lakeformation/permissions.py @@ -530,6 +530,21 @@ def __init__(__self__, | ---- | ---- | | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) | + ## `ALLIAMPrincipals` group + + AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined. + + resource "lakeformation.Permissions" "example" { + permissions = ["SELECT"] + principal = "123456789012:IAMPrincipals" + + table_with_columns { + database_name = aws_glue_catalog_table.example.database_name + name = aws_glue_catalog_table.example.name + column_names = ["event"] + } + } + ## Using Lake Formation Permissions Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed. @@ -703,6 +718,21 @@ def __init__(__self__, | ---- | ---- | | `SELECT` column wildcard (i.e., all columns) | `SELECT` on `"event"` (as expected) | + ## `ALLIAMPrincipals` group + + AllIAMPrincipals is a pseudo-entity group that acts like a Lake Formation principal. The group includes all IAMs in the account that is defined. + + resource "lakeformation.Permissions" "example" { + permissions = ["SELECT"] + principal = "123456789012:IAMPrincipals" + + table_with_columns { + database_name = aws_glue_catalog_table.example.database_name + name = aws_glue_catalog_table.example.name + column_names = ["event"] + } + } + ## Using Lake Formation Permissions Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. These implicit permissions cannot be revoked _per se_. If this resource reads implicit permissions, it will attempt to revoke them, which causes an error when the resource is destroyed. diff --git a/sdk/python/pulumi_aws/lb/_inputs.py b/sdk/python/pulumi_aws/lb/_inputs.py index ea1bf62f77f..6af0f73e1a1 100644 --- a/sdk/python/pulumi_aws/lb/_inputs.py +++ b/sdk/python/pulumi_aws/lb/_inputs.py @@ -1094,6 +1094,10 @@ class ListenerMutualAuthenticationArgsDict(TypedDict): """ Valid values are `off`, `verify` and `passthrough`. """ + advertise_trust_store_ca_names: NotRequired[pulumi.Input[str]] + """ + Valid values are `off` and `on`. + """ ignore_client_certificate_expiry: NotRequired[pulumi.Input[bool]] """ Whether client certificate expiry is ignored. Default is `false`. @@ -1109,14 +1113,18 @@ class ListenerMutualAuthenticationArgsDict(TypedDict): class ListenerMutualAuthenticationArgs: def __init__(__self__, *, mode: pulumi.Input[str], + advertise_trust_store_ca_names: Optional[pulumi.Input[str]] = None, ignore_client_certificate_expiry: Optional[pulumi.Input[bool]] = None, trust_store_arn: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] mode: Valid values are `off`, `verify` and `passthrough`. + :param pulumi.Input[str] advertise_trust_store_ca_names: Valid values are `off` and `on`. :param pulumi.Input[bool] ignore_client_certificate_expiry: Whether client certificate expiry is ignored. Default is `false`. :param pulumi.Input[str] trust_store_arn: ARN of the elbv2 Trust Store. """ pulumi.set(__self__, "mode", mode) + if advertise_trust_store_ca_names is not None: + pulumi.set(__self__, "advertise_trust_store_ca_names", advertise_trust_store_ca_names) if ignore_client_certificate_expiry is not None: pulumi.set(__self__, "ignore_client_certificate_expiry", ignore_client_certificate_expiry) if trust_store_arn is not None: @@ -1134,6 +1142,18 @@ def mode(self) -> pulumi.Input[str]: def mode(self, value: pulumi.Input[str]): pulumi.set(self, "mode", value) + @property + @pulumi.getter(name="advertiseTrustStoreCaNames") + def advertise_trust_store_ca_names(self) -> Optional[pulumi.Input[str]]: + """ + Valid values are `off` and `on`. + """ + return pulumi.get(self, "advertise_trust_store_ca_names") + + @advertise_trust_store_ca_names.setter + def advertise_trust_store_ca_names(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "advertise_trust_store_ca_names", value) + @property @pulumi.getter(name="ignoreClientCertificateExpiry") def ignore_client_certificate_expiry(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_aws/lb/outputs.py b/sdk/python/pulumi_aws/lb/outputs.py index 9f6adebc3f8..ee1470be789 100644 --- a/sdk/python/pulumi_aws/lb/outputs.py +++ b/sdk/python/pulumi_aws/lb/outputs.py @@ -804,7 +804,9 @@ class ListenerMutualAuthentication(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "ignoreClientCertificateExpiry": + if key == "advertiseTrustStoreCaNames": + suggest = "advertise_trust_store_ca_names" + elif key == "ignoreClientCertificateExpiry": suggest = "ignore_client_certificate_expiry" elif key == "trustStoreArn": suggest = "trust_store_arn" @@ -822,14 +824,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, mode: str, + advertise_trust_store_ca_names: Optional[str] = None, ignore_client_certificate_expiry: Optional[bool] = None, trust_store_arn: Optional[str] = None): """ :param str mode: Valid values are `off`, `verify` and `passthrough`. + :param str advertise_trust_store_ca_names: Valid values are `off` and `on`. :param bool ignore_client_certificate_expiry: Whether client certificate expiry is ignored. Default is `false`. :param str trust_store_arn: ARN of the elbv2 Trust Store. """ pulumi.set(__self__, "mode", mode) + if advertise_trust_store_ca_names is not None: + pulumi.set(__self__, "advertise_trust_store_ca_names", advertise_trust_store_ca_names) if ignore_client_certificate_expiry is not None: pulumi.set(__self__, "ignore_client_certificate_expiry", ignore_client_certificate_expiry) if trust_store_arn is not None: @@ -843,6 +849,14 @@ def mode(self) -> str: """ return pulumi.get(self, "mode") + @property + @pulumi.getter(name="advertiseTrustStoreCaNames") + def advertise_trust_store_ca_names(self) -> Optional[str]: + """ + Valid values are `off` and `on`. + """ + return pulumi.get(self, "advertise_trust_store_ca_names") + @property @pulumi.getter(name="ignoreClientCertificateExpiry") def ignore_client_certificate_expiry(self) -> Optional[bool]: diff --git a/sdk/python/pulumi_aws/licensemanager/outputs.py b/sdk/python/pulumi_aws/licensemanager/outputs.py index ee440be1f1b..9dbc259895f 100644 --- a/sdk/python/pulumi_aws/licensemanager/outputs.py +++ b/sdk/python/pulumi_aws/licensemanager/outputs.py @@ -170,18 +170,21 @@ def __init__(__self__, *, allow_check_in: bool, max_count: int, name: str, + overage: bool, unit: str, value: str): """ :param bool allow_check_in: Indicates whether check-ins are allowed. :param int max_count: Maximum entitlement count. Use if the unit is not None. :param str name: The key name. + :param bool overage: Indicates whether overages are allowed. :param str unit: Entitlement unit. :param str value: The value. """ pulumi.set(__self__, "allow_check_in", allow_check_in) pulumi.set(__self__, "max_count", max_count) pulumi.set(__self__, "name", name) + pulumi.set(__self__, "overage", overage) pulumi.set(__self__, "unit", unit) pulumi.set(__self__, "value", value) @@ -209,6 +212,14 @@ def name(self) -> str: """ return pulumi.get(self, "name") + @property + @pulumi.getter + def overage(self) -> bool: + """ + Indicates whether overages are allowed. + """ + return pulumi.get(self, "overage") + @property @pulumi.getter def unit(self) -> str: diff --git a/sdk/python/pulumi_aws/memorydb/__init__.py b/sdk/python/pulumi_aws/memorydb/__init__.py index 4fc6bce09c8..93c662cd8c8 100644 --- a/sdk/python/pulumi_aws/memorydb/__init__.py +++ b/sdk/python/pulumi_aws/memorydb/__init__.py @@ -13,6 +13,7 @@ from .get_snapshot import * from .get_subnet_group import * from .get_user import * +from .multi_region_cluster import * from .parameter_group import * from .snapshot import * from .subnet_group import * diff --git a/sdk/python/pulumi_aws/memorydb/_inputs.py b/sdk/python/pulumi_aws/memorydb/_inputs.py index 5de829d7ee9..ae2844fba77 100644 --- a/sdk/python/pulumi_aws/memorydb/_inputs.py +++ b/sdk/python/pulumi_aws/memorydb/_inputs.py @@ -23,6 +23,8 @@ 'ClusterShardNodeArgsDict', 'ClusterShardNodeEndpointArgs', 'ClusterShardNodeEndpointArgsDict', + 'MultiRegionClusterTimeoutsArgs', + 'MultiRegionClusterTimeoutsArgsDict', 'ParameterGroupParameterArgs', 'ParameterGroupParameterArgsDict', 'SnapshotClusterConfigurationArgs', @@ -314,6 +316,78 @@ def port(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "port", value) +if not MYPY: + class MultiRegionClusterTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + MultiRegionClusterTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MultiRegionClusterTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + if not MYPY: class ParameterGroupParameterArgsDict(TypedDict): name: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws/memorydb/cluster.py b/sdk/python/pulumi_aws/memorydb/cluster.py index b5873340430..157d6f4dcf9 100644 --- a/sdk/python/pulumi_aws/memorydb/cluster.py +++ b/sdk/python/pulumi_aws/memorydb/cluster.py @@ -31,6 +31,7 @@ def __init__(__self__, *, final_snapshot_name: Optional[pulumi.Input[str]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_prefix: Optional[pulumi.Input[str]] = None, num_replicas_per_shard: Optional[pulumi.Input[int]] = None, @@ -60,6 +61,7 @@ def __init__(__self__, *, :param pulumi.Input[str] final_snapshot_name: Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_arn: ARN of the KMS key used to encrypt the cluster at rest. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. + :param pulumi.Input[str] multi_region_cluster_name: The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. :param pulumi.Input[str] name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[int] num_replicas_per_shard: The number of replicas to apply to each shard, up to a maximum of 5. Defaults to `1` (i.e. 2 nodes per shard). @@ -94,6 +96,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_arn", kms_key_arn) if maintenance_window is not None: pulumi.set(__self__, "maintenance_window", maintenance_window) + if multi_region_cluster_name is not None: + pulumi.set(__self__, "multi_region_cluster_name", multi_region_cluster_name) if name is not None: pulumi.set(__self__, "name", name) if name_prefix is not None: @@ -247,6 +251,18 @@ def maintenance_window(self) -> Optional[pulumi.Input[str]]: def maintenance_window(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "maintenance_window", value) + @property + @pulumi.getter(name="multiRegionClusterName") + def multi_region_cluster_name(self) -> Optional[pulumi.Input[str]]: + """ + The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + """ + return pulumi.get(self, "multi_region_cluster_name") + + @multi_region_cluster_name.setter + def multi_region_cluster_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_cluster_name", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -443,6 +459,7 @@ def __init__(__self__, *, final_snapshot_name: Optional[pulumi.Input[str]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_prefix: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -474,6 +491,7 @@ def __init__(__self__, *, :param pulumi.Input[str] final_snapshot_name: Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_arn: ARN of the KMS key used to encrypt the cluster at rest. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. + :param pulumi.Input[str] multi_region_cluster_name: The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. :param pulumi.Input[str] name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] node_type: The compute and memory capacity of the nodes in the cluster. See AWS documentation on [supported node types](https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.supportedtypes.html) as well as [vertical scaling](https://docs.aws.amazon.com/memorydb/latest/devguide/cluster-vertical-scaling.html). @@ -519,6 +537,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_arn", kms_key_arn) if maintenance_window is not None: pulumi.set(__self__, "maintenance_window", maintenance_window) + if multi_region_cluster_name is not None: + pulumi.set(__self__, "multi_region_cluster_name", multi_region_cluster_name) if name is not None: pulumi.set(__self__, "name", name) if name_prefix is not None: @@ -700,6 +720,18 @@ def maintenance_window(self) -> Optional[pulumi.Input[str]]: def maintenance_window(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "maintenance_window", value) + @property + @pulumi.getter(name="multiRegionClusterName") + def multi_region_cluster_name(self) -> Optional[pulumi.Input[str]]: + """ + The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + """ + return pulumi.get(self, "multi_region_cluster_name") + + @multi_region_cluster_name.setter + def multi_region_cluster_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_cluster_name", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -934,6 +966,7 @@ def __init__(__self__, final_snapshot_name: Optional[pulumi.Input[str]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_prefix: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -993,6 +1026,7 @@ def __init__(__self__, :param pulumi.Input[str] final_snapshot_name: Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_arn: ARN of the KMS key used to encrypt the cluster at rest. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. + :param pulumi.Input[str] multi_region_cluster_name: The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. :param pulumi.Input[str] name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] node_type: The compute and memory capacity of the nodes in the cluster. See AWS documentation on [supported node types](https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.supportedtypes.html) as well as [vertical scaling](https://docs.aws.amazon.com/memorydb/latest/devguide/cluster-vertical-scaling.html). @@ -1073,6 +1107,7 @@ def _internal_init(__self__, final_snapshot_name: Optional[pulumi.Input[str]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_prefix: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -1109,6 +1144,7 @@ def _internal_init(__self__, __props__.__dict__["final_snapshot_name"] = final_snapshot_name __props__.__dict__["kms_key_arn"] = kms_key_arn __props__.__dict__["maintenance_window"] = maintenance_window + __props__.__dict__["multi_region_cluster_name"] = multi_region_cluster_name __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix if node_type is None and not opts.urn: @@ -1154,6 +1190,7 @@ def get(resource_name: str, final_snapshot_name: Optional[pulumi.Input[str]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_prefix: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -1190,6 +1227,7 @@ def get(resource_name: str, :param pulumi.Input[str] final_snapshot_name: Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_arn: ARN of the KMS key used to encrypt the cluster at rest. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:23:00-mon:01:30`. + :param pulumi.Input[str] multi_region_cluster_name: The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. :param pulumi.Input[str] name: Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with `name_prefix`. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] node_type: The compute and memory capacity of the nodes in the cluster. See AWS documentation on [supported node types](https://docs.aws.amazon.com/memorydb/latest/devguide/nodes.supportedtypes.html) as well as [vertical scaling](https://docs.aws.amazon.com/memorydb/latest/devguide/cluster-vertical-scaling.html). @@ -1227,6 +1265,7 @@ def get(resource_name: str, __props__.__dict__["final_snapshot_name"] = final_snapshot_name __props__.__dict__["kms_key_arn"] = kms_key_arn __props__.__dict__["maintenance_window"] = maintenance_window + __props__.__dict__["multi_region_cluster_name"] = multi_region_cluster_name __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix __props__.__dict__["node_type"] = node_type @@ -1340,6 +1379,14 @@ def maintenance_window(self) -> pulumi.Output[str]: """ return pulumi.get(self, "maintenance_window") + @property + @pulumi.getter(name="multiRegionClusterName") + def multi_region_cluster_name(self) -> pulumi.Output[Optional[str]]: + """ + The multi region cluster identifier specified on `memorydb.MultiRegionCluster`. + """ + return pulumi.get(self, "multi_region_cluster_name") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/memorydb/multi_region_cluster.py b/sdk/python/pulumi_aws/memorydb/multi_region_cluster.py new file mode 100644 index 00000000000..2a61265451e --- /dev/null +++ b/sdk/python/pulumi_aws/memorydb/multi_region_cluster.py @@ -0,0 +1,783 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['MultiRegionClusterArgs', 'MultiRegionCluster'] + +@pulumi.input_type +class MultiRegionClusterArgs: + def __init__(__self__, *, + multi_region_cluster_name_suffix: pulumi.Input[str], + node_type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + multi_region_parameter_group_name: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + update_strategy: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MultiRegionCluster resource. + :param pulumi.Input[str] multi_region_cluster_name_suffix: A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + :param pulumi.Input[str] node_type: The node type to be used for the multi-region cluster. + + The following arguments are optional: + :param pulumi.Input[str] description: description for the multi-region cluster. + :param pulumi.Input[str] engine: The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + :param pulumi.Input[str] engine_version: The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + :param pulumi.Input[str] multi_region_parameter_group_name: The name of the multi-region parameter group to be associated with the cluster. + :param pulumi.Input[int] num_shards: The number of shards for the multi-region cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. + """ + pulumi.set(__self__, "multi_region_cluster_name_suffix", multi_region_cluster_name_suffix) + pulumi.set(__self__, "node_type", node_type) + if description is not None: + pulumi.set(__self__, "description", description) + if engine is not None: + pulumi.set(__self__, "engine", engine) + if engine_version is not None: + pulumi.set(__self__, "engine_version", engine_version) + if multi_region_parameter_group_name is not None: + pulumi.set(__self__, "multi_region_parameter_group_name", multi_region_parameter_group_name) + if num_shards is not None: + pulumi.set(__self__, "num_shards", num_shards) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if tls_enabled is not None: + pulumi.set(__self__, "tls_enabled", tls_enabled) + if update_strategy is not None: + pulumi.set(__self__, "update_strategy", update_strategy) + + @property + @pulumi.getter(name="multiRegionClusterNameSuffix") + def multi_region_cluster_name_suffix(self) -> pulumi.Input[str]: + """ + A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + """ + return pulumi.get(self, "multi_region_cluster_name_suffix") + + @multi_region_cluster_name_suffix.setter + def multi_region_cluster_name_suffix(self, value: pulumi.Input[str]): + pulumi.set(self, "multi_region_cluster_name_suffix", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Input[str]: + """ + The node type to be used for the multi-region cluster. + + The following arguments are optional: + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: pulumi.Input[str]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + description for the multi-region cluster. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def engine(self) -> Optional[pulumi.Input[str]]: + """ + The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + """ + return pulumi.get(self, "engine") + + @engine.setter + def engine(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine", value) + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + """ + return pulumi.get(self, "engine_version") + + @engine_version.setter + def engine_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_version", value) + + @property + @pulumi.getter(name="multiRegionParameterGroupName") + def multi_region_parameter_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the multi-region parameter group to be associated with the cluster. + """ + return pulumi.get(self, "multi_region_parameter_group_name") + + @multi_region_parameter_group_name.setter + def multi_region_parameter_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_parameter_group_name", value) + + @property + @pulumi.getter(name="numShards") + def num_shards(self) -> Optional[pulumi.Input[int]]: + """ + The number of shards for the multi-region cluster. + """ + return pulumi.get(self, "num_shards") + + @num_shards.setter + def num_shards(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "num_shards", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="tlsEnabled") + def tls_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + A flag to enable in-transit encryption on the cluster. + """ + return pulumi.get(self, "tls_enabled") + + @tls_enabled.setter + def tls_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "tls_enabled", value) + + @property + @pulumi.getter(name="updateStrategy") + def update_strategy(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "update_strategy") + + @update_strategy.setter + def update_strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_strategy", value) + + +@pulumi.input_type +class _MultiRegionClusterState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name_suffix: Optional[pulumi.Input[str]] = None, + multi_region_parameter_group_name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + update_strategy: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering MultiRegionCluster resources. + :param pulumi.Input[str] arn: The ARN of the multi-region cluster. + :param pulumi.Input[str] description: description for the multi-region cluster. + :param pulumi.Input[str] engine: The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + :param pulumi.Input[str] engine_version: The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + :param pulumi.Input[str] multi_region_cluster_name: The name of the multi-region cluster. + :param pulumi.Input[str] multi_region_cluster_name_suffix: A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + :param pulumi.Input[str] multi_region_parameter_group_name: The name of the multi-region parameter group to be associated with the cluster. + :param pulumi.Input[str] node_type: The node type to be used for the multi-region cluster. + + The following arguments are optional: + :param pulumi.Input[int] num_shards: The number of shards for the multi-region cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if description is not None: + pulumi.set(__self__, "description", description) + if engine is not None: + pulumi.set(__self__, "engine", engine) + if engine_version is not None: + pulumi.set(__self__, "engine_version", engine_version) + if multi_region_cluster_name is not None: + pulumi.set(__self__, "multi_region_cluster_name", multi_region_cluster_name) + if multi_region_cluster_name_suffix is not None: + pulumi.set(__self__, "multi_region_cluster_name_suffix", multi_region_cluster_name_suffix) + if multi_region_parameter_group_name is not None: + pulumi.set(__self__, "multi_region_parameter_group_name", multi_region_parameter_group_name) + if node_type is not None: + pulumi.set(__self__, "node_type", node_type) + if num_shards is not None: + pulumi.set(__self__, "num_shards", num_shards) + if status is not None: + pulumi.set(__self__, "status", status) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if tls_enabled is not None: + pulumi.set(__self__, "tls_enabled", tls_enabled) + if update_strategy is not None: + pulumi.set(__self__, "update_strategy", update_strategy) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the multi-region cluster. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + description for the multi-region cluster. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def engine(self) -> Optional[pulumi.Input[str]]: + """ + The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + """ + return pulumi.get(self, "engine") + + @engine.setter + def engine(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine", value) + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + """ + return pulumi.get(self, "engine_version") + + @engine_version.setter + def engine_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_version", value) + + @property + @pulumi.getter(name="multiRegionClusterName") + def multi_region_cluster_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the multi-region cluster. + """ + return pulumi.get(self, "multi_region_cluster_name") + + @multi_region_cluster_name.setter + def multi_region_cluster_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_cluster_name", value) + + @property + @pulumi.getter(name="multiRegionClusterNameSuffix") + def multi_region_cluster_name_suffix(self) -> Optional[pulumi.Input[str]]: + """ + A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + """ + return pulumi.get(self, "multi_region_cluster_name_suffix") + + @multi_region_cluster_name_suffix.setter + def multi_region_cluster_name_suffix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_cluster_name_suffix", value) + + @property + @pulumi.getter(name="multiRegionParameterGroupName") + def multi_region_parameter_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the multi-region parameter group to be associated with the cluster. + """ + return pulumi.get(self, "multi_region_parameter_group_name") + + @multi_region_parameter_group_name.setter + def multi_region_parameter_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "multi_region_parameter_group_name", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> Optional[pulumi.Input[str]]: + """ + The node type to be used for the multi-region cluster. + + The following arguments are optional: + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter(name="numShards") + def num_shards(self) -> Optional[pulumi.Input[int]]: + """ + The number of shards for the multi-region cluster. + """ + return pulumi.get(self, "num_shards") + + @num_shards.setter + def num_shards(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "num_shards", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['MultiRegionClusterTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="tlsEnabled") + def tls_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + A flag to enable in-transit encryption on the cluster. + """ + return pulumi.get(self, "tls_enabled") + + @tls_enabled.setter + def tls_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "tls_enabled", value) + + @property + @pulumi.getter(name="updateStrategy") + def update_strategy(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "update_strategy") + + @update_strategy.setter + def update_strategy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_strategy", value) + + +class MultiRegionCluster(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name_suffix: Optional[pulumi.Input[str]] = None, + multi_region_parameter_group_name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['MultiRegionClusterTimeoutsArgs', 'MultiRegionClusterTimeoutsArgsDict']]] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + update_strategy: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a MemoryDB Multi Region Cluster. + + More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html). + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.memorydb.MultiRegionCluster("example", + multi_region_cluster_name_suffix="example", + node_type="db.r7g.xlarge") + example_cluster = aws.memorydb.Cluster("example", + acl_name=example_aws_memorydb_acl["id"], + auto_minor_version_upgrade=False, + name="example", + node_type="db.t4g.small", + num_shards=2, + security_group_ids=[example_aws_security_group["id"]], + snapshot_retention_limit=7, + subnet_group_name=example_aws_memorydb_subnet_group["id"], + multi_region_cluster_name=example.multi_region_cluster_name) + ``` + + ## Import + + Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: + + ```sh + $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: description for the multi-region cluster. + :param pulumi.Input[str] engine: The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + :param pulumi.Input[str] engine_version: The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + :param pulumi.Input[str] multi_region_cluster_name_suffix: A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + :param pulumi.Input[str] multi_region_parameter_group_name: The name of the multi-region parameter group to be associated with the cluster. + :param pulumi.Input[str] node_type: The node type to be used for the multi-region cluster. + + The following arguments are optional: + :param pulumi.Input[int] num_shards: The number of shards for the multi-region cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MultiRegionClusterArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a MemoryDB Multi Region Cluster. + + More information about MemoryDB can be found in the [Developer Guide](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb-for-redis.html). + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.memorydb.MultiRegionCluster("example", + multi_region_cluster_name_suffix="example", + node_type="db.r7g.xlarge") + example_cluster = aws.memorydb.Cluster("example", + acl_name=example_aws_memorydb_acl["id"], + auto_minor_version_upgrade=False, + name="example", + node_type="db.t4g.small", + num_shards=2, + security_group_ids=[example_aws_security_group["id"]], + snapshot_retention_limit=7, + subnet_group_name=example_aws_memorydb_subnet_group["id"], + multi_region_cluster_name=example.multi_region_cluster_name) + ``` + + ## Import + + Using `pulumi import`, import a cluster using the `multi_region_cluster_name`. For example: + + ```sh + $ pulumi import aws:memorydb/multiRegionCluster:MultiRegionCluster example virxk-example + ``` + + :param str resource_name: The name of the resource. + :param MultiRegionClusterArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MultiRegionClusterArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name_suffix: Optional[pulumi.Input[str]] = None, + multi_region_parameter_group_name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['MultiRegionClusterTimeoutsArgs', 'MultiRegionClusterTimeoutsArgsDict']]] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + update_strategy: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MultiRegionClusterArgs.__new__(MultiRegionClusterArgs) + + __props__.__dict__["description"] = description + __props__.__dict__["engine"] = engine + __props__.__dict__["engine_version"] = engine_version + if multi_region_cluster_name_suffix is None and not opts.urn: + raise TypeError("Missing required property 'multi_region_cluster_name_suffix'") + __props__.__dict__["multi_region_cluster_name_suffix"] = multi_region_cluster_name_suffix + __props__.__dict__["multi_region_parameter_group_name"] = multi_region_parameter_group_name + if node_type is None and not opts.urn: + raise TypeError("Missing required property 'node_type'") + __props__.__dict__["node_type"] = node_type + __props__.__dict__["num_shards"] = num_shards + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["tls_enabled"] = tls_enabled + __props__.__dict__["update_strategy"] = update_strategy + __props__.__dict__["arn"] = None + __props__.__dict__["multi_region_cluster_name"] = None + __props__.__dict__["status"] = None + __props__.__dict__["tags_all"] = None + super(MultiRegionCluster, __self__).__init__( + 'aws:memorydb/multiRegionCluster:MultiRegionCluster', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name: Optional[pulumi.Input[str]] = None, + multi_region_cluster_name_suffix: Optional[pulumi.Input[str]] = None, + multi_region_parameter_group_name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + num_shards: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['MultiRegionClusterTimeoutsArgs', 'MultiRegionClusterTimeoutsArgsDict']]] = None, + tls_enabled: Optional[pulumi.Input[bool]] = None, + update_strategy: Optional[pulumi.Input[str]] = None) -> 'MultiRegionCluster': + """ + Get an existing MultiRegionCluster resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] arn: The ARN of the multi-region cluster. + :param pulumi.Input[str] description: description for the multi-region cluster. + :param pulumi.Input[str] engine: The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + :param pulumi.Input[str] engine_version: The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + :param pulumi.Input[str] multi_region_cluster_name: The name of the multi-region cluster. + :param pulumi.Input[str] multi_region_cluster_name_suffix: A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + :param pulumi.Input[str] multi_region_parameter_group_name: The name of the multi-region parameter group to be associated with the cluster. + :param pulumi.Input[str] node_type: The node type to be used for the multi-region cluster. + + The following arguments are optional: + :param pulumi.Input[int] num_shards: The number of shards for the multi-region cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[bool] tls_enabled: A flag to enable in-transit encryption on the cluster. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MultiRegionClusterState.__new__(_MultiRegionClusterState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["description"] = description + __props__.__dict__["engine"] = engine + __props__.__dict__["engine_version"] = engine_version + __props__.__dict__["multi_region_cluster_name"] = multi_region_cluster_name + __props__.__dict__["multi_region_cluster_name_suffix"] = multi_region_cluster_name_suffix + __props__.__dict__["multi_region_parameter_group_name"] = multi_region_parameter_group_name + __props__.__dict__["node_type"] = node_type + __props__.__dict__["num_shards"] = num_shards + __props__.__dict__["status"] = status + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["tls_enabled"] = tls_enabled + __props__.__dict__["update_strategy"] = update_strategy + return MultiRegionCluster(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the multi-region cluster. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + description for the multi-region cluster. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def engine(self) -> pulumi.Output[str]: + """ + The name of the engine to be used for the multi-region cluster. Valid values are `redis` and `valkey`. + """ + return pulumi.get(self, "engine") + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> pulumi.Output[str]: + """ + The version of the engine to be used for the multi-region cluster. Downgrades are not supported. + """ + return pulumi.get(self, "engine_version") + + @property + @pulumi.getter(name="multiRegionClusterName") + def multi_region_cluster_name(self) -> pulumi.Output[str]: + """ + The name of the multi-region cluster. + """ + return pulumi.get(self, "multi_region_cluster_name") + + @property + @pulumi.getter(name="multiRegionClusterNameSuffix") + def multi_region_cluster_name_suffix(self) -> pulumi.Output[str]: + """ + A suffix to be added to the multi-region cluster name. An AWS generated prefix is automatically applied to the multi-region cluster name when it is created. + """ + return pulumi.get(self, "multi_region_cluster_name_suffix") + + @property + @pulumi.getter(name="multiRegionParameterGroupName") + def multi_region_parameter_group_name(self) -> pulumi.Output[str]: + """ + The name of the multi-region parameter group to be associated with the cluster. + """ + return pulumi.get(self, "multi_region_parameter_group_name") + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Output[str]: + """ + The node type to be used for the multi-region cluster. + + The following arguments are optional: + """ + return pulumi.get(self, "node_type") + + @property + @pulumi.getter(name="numShards") + def num_shards(self) -> pulumi.Output[int]: + """ + The number of shards for the multi-region cluster. + """ + return pulumi.get(self, "num_shards") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.MultiRegionClusterTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="tlsEnabled") + def tls_enabled(self) -> pulumi.Output[bool]: + """ + A flag to enable in-transit encryption on the cluster. + """ + return pulumi.get(self, "tls_enabled") + + @property + @pulumi.getter(name="updateStrategy") + def update_strategy(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "update_strategy") + diff --git a/sdk/python/pulumi_aws/memorydb/outputs.py b/sdk/python/pulumi_aws/memorydb/outputs.py index eef97716aa0..1742a91fe0f 100644 --- a/sdk/python/pulumi_aws/memorydb/outputs.py +++ b/sdk/python/pulumi_aws/memorydb/outputs.py @@ -20,6 +20,7 @@ 'ClusterShard', 'ClusterShardNode', 'ClusterShardNodeEndpoint', + 'MultiRegionClusterTimeouts', 'ParameterGroupParameter', 'SnapshotClusterConfiguration', 'UserAuthenticationMode', @@ -236,6 +237,49 @@ def port(self) -> Optional[int]: return pulumi.get(self, "port") +@pulumi.output_type +class MultiRegionClusterTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @pulumi.output_type class ParameterGroupParameter(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/networkmanager/__init__.py b/sdk/python/pulumi_aws/networkmanager/__init__.py index 2b5ca5257fe..6a95e141b1f 100644 --- a/sdk/python/pulumi_aws/networkmanager/__init__.py +++ b/sdk/python/pulumi_aws/networkmanager/__init__.py @@ -13,6 +13,7 @@ from .core_network_policy_attachment import * from .customer_gateway_association import * from .device import * +from .dx_gateway_attachment import * from .get_connection import * from .get_connections import * from .get_core_network_policy_document import * diff --git a/sdk/python/pulumi_aws/networkmanager/_inputs.py b/sdk/python/pulumi_aws/networkmanager/_inputs.py index 1039cd19516..7a5d3110411 100644 --- a/sdk/python/pulumi_aws/networkmanager/_inputs.py +++ b/sdk/python/pulumi_aws/networkmanager/_inputs.py @@ -31,6 +31,8 @@ 'DeviceAwsLocationArgsDict', 'DeviceLocationArgs', 'DeviceLocationArgsDict', + 'DxGatewayAttachmentTimeoutsArgs', + 'DxGatewayAttachmentTimeoutsArgsDict', 'LinkBandwidthArgs', 'LinkBandwidthArgsDict', 'SiteLocationArgs', @@ -574,6 +576,78 @@ def longitude(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "longitude", value) +if not MYPY: + class DxGatewayAttachmentTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + DxGatewayAttachmentTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DxGatewayAttachmentTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + if not MYPY: class LinkBandwidthArgsDict(TypedDict): download_speed: NotRequired[pulumi.Input[int]] diff --git a/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py b/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py index f59a49d1676..7199946f978 100644 --- a/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py +++ b/sdk/python/pulumi_aws/networkmanager/attachment_accepter.py @@ -63,6 +63,7 @@ def __init__(__self__, *, core_network_arn: Optional[pulumi.Input[str]] = None, core_network_id: Optional[pulumi.Input[str]] = None, edge_location: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_account_id: Optional[pulumi.Input[str]] = None, resource_arn: Optional[pulumi.Input[str]] = None, segment_name: Optional[pulumi.Input[str]] = None, @@ -74,7 +75,8 @@ def __init__(__self__, *, :param pulumi.Input[str] attachment_type: The type of attachment. Valid values can be found in the [AWS Documentation](https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_ListAttachments.html#API_ListAttachments_RequestSyntax) :param pulumi.Input[str] core_network_arn: The ARN of a core network. :param pulumi.Input[str] core_network_id: The id of a core network. - :param pulumi.Input[str] edge_location: The Region where the edge is located. + :param pulumi.Input[str] edge_location: The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` :param pulumi.Input[str] owner_account_id: The ID of the attachment account owner. :param pulumi.Input[str] resource_arn: The attachment resource ARN. :param pulumi.Input[str] segment_name: The name of the segment attachment. @@ -92,6 +94,8 @@ def __init__(__self__, *, pulumi.set(__self__, "core_network_id", core_network_id) if edge_location is not None: pulumi.set(__self__, "edge_location", edge_location) + if edge_locations is not None: + pulumi.set(__self__, "edge_locations", edge_locations) if owner_account_id is not None: pulumi.set(__self__, "owner_account_id", owner_account_id) if resource_arn is not None: @@ -165,7 +169,7 @@ def core_network_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="edgeLocation") def edge_location(self) -> Optional[pulumi.Input[str]]: """ - The Region where the edge is located. + The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. """ return pulumi.get(self, "edge_location") @@ -173,6 +177,18 @@ def edge_location(self) -> Optional[pulumi.Input[str]]: def edge_location(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "edge_location", value) + @property + @pulumi.getter(name="edgeLocations") + def edge_locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + """ + return pulumi.get(self, "edge_locations") + + @edge_locations.setter + def edge_locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "edge_locations", value) + @property @pulumi.getter(name="ownerAccountId") def owner_account_id(self) -> Optional[pulumi.Input[str]]: @@ -331,6 +347,7 @@ def _internal_init(__self__, __props__.__dict__["core_network_arn"] = None __props__.__dict__["core_network_id"] = None __props__.__dict__["edge_location"] = None + __props__.__dict__["edge_locations"] = None __props__.__dict__["owner_account_id"] = None __props__.__dict__["resource_arn"] = None __props__.__dict__["segment_name"] = None @@ -351,6 +368,7 @@ def get(resource_name: str, core_network_arn: Optional[pulumi.Input[str]] = None, core_network_id: Optional[pulumi.Input[str]] = None, edge_location: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, owner_account_id: Optional[pulumi.Input[str]] = None, resource_arn: Optional[pulumi.Input[str]] = None, segment_name: Optional[pulumi.Input[str]] = None, @@ -367,7 +385,8 @@ def get(resource_name: str, :param pulumi.Input[str] attachment_type: The type of attachment. Valid values can be found in the [AWS Documentation](https://docs.aws.amazon.com/networkmanager/latest/APIReference/API_ListAttachments.html#API_ListAttachments_RequestSyntax) :param pulumi.Input[str] core_network_arn: The ARN of a core network. :param pulumi.Input[str] core_network_id: The id of a core network. - :param pulumi.Input[str] edge_location: The Region where the edge is located. + :param pulumi.Input[str] edge_location: The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` :param pulumi.Input[str] owner_account_id: The ID of the attachment account owner. :param pulumi.Input[str] resource_arn: The attachment resource ARN. :param pulumi.Input[str] segment_name: The name of the segment attachment. @@ -383,6 +402,7 @@ def get(resource_name: str, __props__.__dict__["core_network_arn"] = core_network_arn __props__.__dict__["core_network_id"] = core_network_id __props__.__dict__["edge_location"] = edge_location + __props__.__dict__["edge_locations"] = edge_locations __props__.__dict__["owner_account_id"] = owner_account_id __props__.__dict__["resource_arn"] = resource_arn __props__.__dict__["segment_name"] = segment_name @@ -433,10 +453,18 @@ def core_network_id(self) -> pulumi.Output[str]: @pulumi.getter(name="edgeLocation") def edge_location(self) -> pulumi.Output[str]: """ - The Region where the edge is located. + The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns `edge_locations`. """ return pulumi.get(self, "edge_location") + @property + @pulumi.getter(name="edgeLocations") + def edge_locations(self) -> pulumi.Output[Sequence[str]]: + """ + The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types return `edge_location` + """ + return pulumi.get(self, "edge_locations") + @property @pulumi.getter(name="ownerAccountId") def owner_account_id(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/networkmanager/dx_gateway_attachment.py b/sdk/python/pulumi_aws/networkmanager/dx_gateway_attachment.py new file mode 100644 index 00000000000..154e5f9b3cd --- /dev/null +++ b/sdk/python/pulumi_aws/networkmanager/dx_gateway_attachment.py @@ -0,0 +1,609 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['DxGatewayAttachmentArgs', 'DxGatewayAttachment'] + +@pulumi.input_type +class DxGatewayAttachmentArgs: + def __init__(__self__, *, + core_network_id: pulumi.Input[str], + direct_connect_gateway_arn: pulumi.Input[str], + edge_locations: pulumi.Input[Sequence[pulumi.Input[str]]], + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']] = None): + """ + The set of arguments for constructing a DxGatewayAttachment resource. + :param pulumi.Input[str] core_network_id: ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + :param pulumi.Input[str] direct_connect_gateway_arn: ARN of the Direct Connect gateway attachment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "core_network_id", core_network_id) + pulumi.set(__self__, "direct_connect_gateway_arn", direct_connect_gateway_arn) + pulumi.set(__self__, "edge_locations", edge_locations) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="coreNetworkId") + def core_network_id(self) -> pulumi.Input[str]: + """ + ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + """ + return pulumi.get(self, "core_network_id") + + @core_network_id.setter + def core_network_id(self, value: pulumi.Input[str]): + pulumi.set(self, "core_network_id", value) + + @property + @pulumi.getter(name="directConnectGatewayArn") + def direct_connect_gateway_arn(self) -> pulumi.Input[str]: + """ + ARN of the Direct Connect gateway attachment. + """ + return pulumi.get(self, "direct_connect_gateway_arn") + + @direct_connect_gateway_arn.setter + def direct_connect_gateway_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "direct_connect_gateway_arn", value) + + @property + @pulumi.getter(name="edgeLocations") + def edge_locations(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + """ + return pulumi.get(self, "edge_locations") + + @edge_locations.setter + def edge_locations(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "edge_locations", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _DxGatewayAttachmentState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + direct_connect_gateway_arn: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering DxGatewayAttachment resources. + :param pulumi.Input[int] attachment_policy_rule_number: Policy rule number associated with the attachment. + :param pulumi.Input[str] attachment_type: Type of attachment. + :param pulumi.Input[str] core_network_arn: ARN of the core network for the attachment. + :param pulumi.Input[str] core_network_id: ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + :param pulumi.Input[str] direct_connect_gateway_arn: ARN of the Direct Connect gateway attachment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + :param pulumi.Input[str] owner_account_id: ID of the attachment account owner. + :param pulumi.Input[str] segment_name: Name of the segment attachment. + :param pulumi.Input[str] state: State of the attachment. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if attachment_policy_rule_number is not None: + pulumi.set(__self__, "attachment_policy_rule_number", attachment_policy_rule_number) + if attachment_type is not None: + pulumi.set(__self__, "attachment_type", attachment_type) + if core_network_arn is not None: + pulumi.set(__self__, "core_network_arn", core_network_arn) + if core_network_id is not None: + pulumi.set(__self__, "core_network_id", core_network_id) + if direct_connect_gateway_arn is not None: + pulumi.set(__self__, "direct_connect_gateway_arn", direct_connect_gateway_arn) + if edge_locations is not None: + pulumi.set(__self__, "edge_locations", edge_locations) + if owner_account_id is not None: + pulumi.set(__self__, "owner_account_id", owner_account_id) + if segment_name is not None: + pulumi.set(__self__, "segment_name", segment_name) + if state is not None: + pulumi.set(__self__, "state", state) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="attachmentPolicyRuleNumber") + def attachment_policy_rule_number(self) -> Optional[pulumi.Input[int]]: + """ + Policy rule number associated with the attachment. + """ + return pulumi.get(self, "attachment_policy_rule_number") + + @attachment_policy_rule_number.setter + def attachment_policy_rule_number(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "attachment_policy_rule_number", value) + + @property + @pulumi.getter(name="attachmentType") + def attachment_type(self) -> Optional[pulumi.Input[str]]: + """ + Type of attachment. + """ + return pulumi.get(self, "attachment_type") + + @attachment_type.setter + def attachment_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "attachment_type", value) + + @property + @pulumi.getter(name="coreNetworkArn") + def core_network_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the core network for the attachment. + """ + return pulumi.get(self, "core_network_arn") + + @core_network_arn.setter + def core_network_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "core_network_arn", value) + + @property + @pulumi.getter(name="coreNetworkId") + def core_network_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + """ + return pulumi.get(self, "core_network_id") + + @core_network_id.setter + def core_network_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "core_network_id", value) + + @property + @pulumi.getter(name="directConnectGatewayArn") + def direct_connect_gateway_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Direct Connect gateway attachment. + """ + return pulumi.get(self, "direct_connect_gateway_arn") + + @direct_connect_gateway_arn.setter + def direct_connect_gateway_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "direct_connect_gateway_arn", value) + + @property + @pulumi.getter(name="edgeLocations") + def edge_locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + """ + return pulumi.get(self, "edge_locations") + + @edge_locations.setter + def edge_locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "edge_locations", value) + + @property + @pulumi.getter(name="ownerAccountId") + def owner_account_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the attachment account owner. + """ + return pulumi.get(self, "owner_account_id") + + @owner_account_id.setter + def owner_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "owner_account_id", value) + + @property + @pulumi.getter(name="segmentName") + def segment_name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the segment attachment. + """ + return pulumi.get(self, "segment_name") + + @segment_name.setter + def segment_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "segment_name", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + State of the attachment. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DxGatewayAttachmentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class DxGatewayAttachment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + direct_connect_gateway_arn: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['DxGatewayAttachmentTimeoutsArgs', 'DxGatewayAttachmentTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.networkmanager.DxGatewayAttachment("test", + core_network_id=test_aws_networkmanager_core_network_policy_attachment["coreNetworkId"], + direct_connect_gateway_arn=f"arn:aws:directconnect::{current['accountId']}:dx-gateway/{test_aws_dx_gateway['id']}", + edge_locations=[current_aws_region["name"]]) + ``` + + ## Import + + Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: + + ```sh + $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] core_network_id: ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + :param pulumi.Input[str] direct_connect_gateway_arn: ARN of the Direct Connect gateway attachment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DxGatewayAttachmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Network Manager Direct Connect (DX) Gateway Attachment. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.networkmanager.DxGatewayAttachment("test", + core_network_id=test_aws_networkmanager_core_network_policy_attachment["coreNetworkId"], + direct_connect_gateway_arn=f"arn:aws:directconnect::{current['accountId']}:dx-gateway/{test_aws_dx_gateway['id']}", + edge_locations=[current_aws_region["name"]]) + ``` + + ## Import + + Using `pulumi import`, import Network Manager DX Gateway Attachment using the `id`. For example: + + ```sh + $ pulumi import aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment example attachment-1a2b3c4d5e6f7g + ``` + + :param str resource_name: The name of the resource. + :param DxGatewayAttachmentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DxGatewayAttachmentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + direct_connect_gateway_arn: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['DxGatewayAttachmentTimeoutsArgs', 'DxGatewayAttachmentTimeoutsArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DxGatewayAttachmentArgs.__new__(DxGatewayAttachmentArgs) + + if core_network_id is None and not opts.urn: + raise TypeError("Missing required property 'core_network_id'") + __props__.__dict__["core_network_id"] = core_network_id + if direct_connect_gateway_arn is None and not opts.urn: + raise TypeError("Missing required property 'direct_connect_gateway_arn'") + __props__.__dict__["direct_connect_gateway_arn"] = direct_connect_gateway_arn + if edge_locations is None and not opts.urn: + raise TypeError("Missing required property 'edge_locations'") + __props__.__dict__["edge_locations"] = edge_locations + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["arn"] = None + __props__.__dict__["attachment_policy_rule_number"] = None + __props__.__dict__["attachment_type"] = None + __props__.__dict__["core_network_arn"] = None + __props__.__dict__["owner_account_id"] = None + __props__.__dict__["segment_name"] = None + __props__.__dict__["state"] = None + __props__.__dict__["tags_all"] = None + super(DxGatewayAttachment, __self__).__init__( + 'aws:networkmanager/dxGatewayAttachment:DxGatewayAttachment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + attachment_policy_rule_number: Optional[pulumi.Input[int]] = None, + attachment_type: Optional[pulumi.Input[str]] = None, + core_network_arn: Optional[pulumi.Input[str]] = None, + core_network_id: Optional[pulumi.Input[str]] = None, + direct_connect_gateway_arn: Optional[pulumi.Input[str]] = None, + edge_locations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + owner_account_id: Optional[pulumi.Input[str]] = None, + segment_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['DxGatewayAttachmentTimeoutsArgs', 'DxGatewayAttachmentTimeoutsArgsDict']]] = None) -> 'DxGatewayAttachment': + """ + Get an existing DxGatewayAttachment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] attachment_policy_rule_number: Policy rule number associated with the attachment. + :param pulumi.Input[str] attachment_type: Type of attachment. + :param pulumi.Input[str] core_network_arn: ARN of the core network for the attachment. + :param pulumi.Input[str] core_network_id: ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + :param pulumi.Input[str] direct_connect_gateway_arn: ARN of the Direct Connect gateway attachment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] edge_locations: One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + :param pulumi.Input[str] owner_account_id: ID of the attachment account owner. + :param pulumi.Input[str] segment_name: Name of the segment attachment. + :param pulumi.Input[str] state: State of the attachment. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DxGatewayAttachmentState.__new__(_DxGatewayAttachmentState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["attachment_policy_rule_number"] = attachment_policy_rule_number + __props__.__dict__["attachment_type"] = attachment_type + __props__.__dict__["core_network_arn"] = core_network_arn + __props__.__dict__["core_network_id"] = core_network_id + __props__.__dict__["direct_connect_gateway_arn"] = direct_connect_gateway_arn + __props__.__dict__["edge_locations"] = edge_locations + __props__.__dict__["owner_account_id"] = owner_account_id + __props__.__dict__["segment_name"] = segment_name + __props__.__dict__["state"] = state + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + return DxGatewayAttachment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="attachmentPolicyRuleNumber") + def attachment_policy_rule_number(self) -> pulumi.Output[int]: + """ + Policy rule number associated with the attachment. + """ + return pulumi.get(self, "attachment_policy_rule_number") + + @property + @pulumi.getter(name="attachmentType") + def attachment_type(self) -> pulumi.Output[str]: + """ + Type of attachment. + """ + return pulumi.get(self, "attachment_type") + + @property + @pulumi.getter(name="coreNetworkArn") + def core_network_arn(self) -> pulumi.Output[str]: + """ + ARN of the core network for the attachment. + """ + return pulumi.get(self, "core_network_arn") + + @property + @pulumi.getter(name="coreNetworkId") + def core_network_id(self) -> pulumi.Output[str]: + """ + ID of the Cloud WAN core network to which the Direct Connect gateway attachment should be attached. + """ + return pulumi.get(self, "core_network_id") + + @property + @pulumi.getter(name="directConnectGatewayArn") + def direct_connect_gateway_arn(self) -> pulumi.Output[str]: + """ + ARN of the Direct Connect gateway attachment. + """ + return pulumi.get(self, "direct_connect_gateway_arn") + + @property + @pulumi.getter(name="edgeLocations") + def edge_locations(self) -> pulumi.Output[Sequence[str]]: + """ + One or more core network edge locations to associate with the Direct Connect gateway attachment. + + The following arguments are optional: + """ + return pulumi.get(self, "edge_locations") + + @property + @pulumi.getter(name="ownerAccountId") + def owner_account_id(self) -> pulumi.Output[str]: + """ + ID of the attachment account owner. + """ + return pulumi.get(self, "owner_account_id") + + @property + @pulumi.getter(name="segmentName") + def segment_name(self) -> pulumi.Output[str]: + """ + Name of the segment attachment. + """ + return pulumi.get(self, "segment_name") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + State of the attachment. + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value tags for the attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.DxGatewayAttachmentTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/networkmanager/outputs.py b/sdk/python/pulumi_aws/networkmanager/outputs.py index 4c469b6f162..38a85751d38 100644 --- a/sdk/python/pulumi_aws/networkmanager/outputs.py +++ b/sdk/python/pulumi_aws/networkmanager/outputs.py @@ -24,6 +24,7 @@ 'CoreNetworkSegment', 'DeviceAwsLocation', 'DeviceLocation', + 'DxGatewayAttachmentTimeouts', 'LinkBandwidth', 'SiteLocation', 'VpcAttachmentOptions', @@ -468,6 +469,49 @@ def longitude(self) -> Optional[str]: return pulumi.get(self, "longitude") +@pulumi.output_type +class DxGatewayAttachmentTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @pulumi.output_type class LinkBandwidth(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/rds/__init__.py b/sdk/python/pulumi_aws/rds/__init__.py index 983d26d8863..aa7eaf22d0a 100644 --- a/sdk/python/pulumi_aws/rds/__init__.py +++ b/sdk/python/pulumi_aws/rds/__init__.py @@ -14,6 +14,7 @@ from .cluster_parameter_group import * from .cluster_role_association import * from .cluster_snapshot import * +from .cluster_snapshot_copy import * from .custom_db_engine_version import * from .event_subscription import * from .export_task import * diff --git a/sdk/python/pulumi_aws/rds/_inputs.py b/sdk/python/pulumi_aws/rds/_inputs.py index 9998df7ca21..fd82aaa4e91 100644 --- a/sdk/python/pulumi_aws/rds/_inputs.py +++ b/sdk/python/pulumi_aws/rds/_inputs.py @@ -28,6 +28,8 @@ 'ClusterScalingConfigurationArgsDict', 'ClusterServerlessv2ScalingConfigurationArgs', 'ClusterServerlessv2ScalingConfigurationArgsDict', + 'ClusterSnapshotCopyTimeoutsArgs', + 'ClusterSnapshotCopyTimeoutsArgsDict', 'ExportTaskTimeoutsArgs', 'ExportTaskTimeoutsArgsDict', 'GlobalClusterGlobalClusterMemberArgs', @@ -647,6 +649,38 @@ def seconds_until_auto_pause(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "seconds_until_auto_pause", value) +if not MYPY: + class ClusterSnapshotCopyTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + ClusterSnapshotCopyTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterSnapshotCopyTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + if not MYPY: class ExportTaskTimeoutsArgsDict(TypedDict): create: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_aws/rds/cluster.py b/sdk/python/pulumi_aws/rds/cluster.py index 5fcc42b2a5d..4bf01da3ca2 100644 --- a/sdk/python/pulumi_aws/rds/cluster.py +++ b/sdk/python/pulumi_aws/rds/cluster.py @@ -128,9 +128,9 @@ def __init__(__self__, *, :param pulumi.Input[str] master_user_secret_kms_key_id: Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. :param pulumi.Input[str] master_username: Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot. :param pulumi.Input[str] network_type: Network type of the cluster. Valid values: `IPV4`, `DUAL`. - :param pulumi.Input[bool] performance_insights_enabled: Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster - :param pulumi.Input[str] performance_insights_kms_key_id: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). - :param pulumi.Input[int] performance_insights_retention_period: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + :param pulumi.Input[bool] performance_insights_enabled: Enables Performance Insights for the RDS Cluster + :param pulumi.Input[str] performance_insights_kms_key_id: Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + :param pulumi.Input[int] performance_insights_retention_period: Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. :param pulumi.Input[int] port: Port on which the DB accepts connections. :param pulumi.Input[str] preferred_backup_window: Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per region, e.g. `04:00-09:00`. :param pulumi.Input[str] preferred_maintenance_window: Weekly time range during which system maintenance can occur, in (UTC) e.g., `wed:04:00-wed:04:30` @@ -752,7 +752,7 @@ def network_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="performanceInsightsEnabled") def performance_insights_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + Enables Performance Insights for the RDS Cluster """ return pulumi.get(self, "performance_insights_enabled") @@ -764,7 +764,7 @@ def performance_insights_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="performanceInsightsKmsKeyId") def performance_insights_kms_key_id(self) -> Optional[pulumi.Input[str]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). """ return pulumi.get(self, "performance_insights_kms_key_id") @@ -776,7 +776,7 @@ def performance_insights_kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="performanceInsightsRetentionPeriod") def performance_insights_retention_period(self) -> Optional[pulumi.Input[int]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. """ return pulumi.get(self, "performance_insights_retention_period") @@ -1087,9 +1087,9 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ClusterMasterUserSecretArgs']]] master_user_secrets: Block that specifies the master user secret. Only available when `manage_master_user_password` is set to true. Documented below. :param pulumi.Input[str] master_username: Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot. :param pulumi.Input[str] network_type: Network type of the cluster. Valid values: `IPV4`, `DUAL`. - :param pulumi.Input[bool] performance_insights_enabled: Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster - :param pulumi.Input[str] performance_insights_kms_key_id: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). - :param pulumi.Input[int] performance_insights_retention_period: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + :param pulumi.Input[bool] performance_insights_enabled: Enables Performance Insights for the RDS Cluster + :param pulumi.Input[str] performance_insights_kms_key_id: Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + :param pulumi.Input[int] performance_insights_retention_period: Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. :param pulumi.Input[int] port: Port on which the DB accepts connections. :param pulumi.Input[str] preferred_backup_window: Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per region, e.g. `04:00-09:00`. :param pulumi.Input[str] preferred_maintenance_window: Weekly time range during which system maintenance can occur, in (UTC) e.g., `wed:04:00-wed:04:30` @@ -1820,7 +1820,7 @@ def network_type(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="performanceInsightsEnabled") def performance_insights_enabled(self) -> Optional[pulumi.Input[bool]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + Enables Performance Insights for the RDS Cluster """ return pulumi.get(self, "performance_insights_enabled") @@ -1832,7 +1832,7 @@ def performance_insights_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="performanceInsightsKmsKeyId") def performance_insights_kms_key_id(self) -> Optional[pulumi.Input[str]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). """ return pulumi.get(self, "performance_insights_kms_key_id") @@ -1844,7 +1844,7 @@ def performance_insights_kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="performanceInsightsRetentionPeriod") def performance_insights_retention_period(self) -> Optional[pulumi.Input[int]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. """ return pulumi.get(self, "performance_insights_retention_period") @@ -2372,9 +2372,9 @@ def __init__(__self__, :param pulumi.Input[str] master_user_secret_kms_key_id: Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. :param pulumi.Input[str] master_username: Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot. :param pulumi.Input[str] network_type: Network type of the cluster. Valid values: `IPV4`, `DUAL`. - :param pulumi.Input[bool] performance_insights_enabled: Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster - :param pulumi.Input[str] performance_insights_kms_key_id: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). - :param pulumi.Input[int] performance_insights_retention_period: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + :param pulumi.Input[bool] performance_insights_enabled: Enables Performance Insights for the RDS Cluster + :param pulumi.Input[str] performance_insights_kms_key_id: Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + :param pulumi.Input[int] performance_insights_retention_period: Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. :param pulumi.Input[int] port: Port on which the DB accepts connections. :param pulumi.Input[str] preferred_backup_window: Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per region, e.g. `04:00-09:00`. :param pulumi.Input[str] preferred_maintenance_window: Weekly time range during which system maintenance can occur, in (UTC) e.g., `wed:04:00-wed:04:30` @@ -2890,9 +2890,9 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[Union['ClusterMasterUserSecretArgs', 'ClusterMasterUserSecretArgsDict']]]] master_user_secrets: Block that specifies the master user secret. Only available when `manage_master_user_password` is set to true. Documented below. :param pulumi.Input[str] master_username: Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot. :param pulumi.Input[str] network_type: Network type of the cluster. Valid values: `IPV4`, `DUAL`. - :param pulumi.Input[bool] performance_insights_enabled: Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster - :param pulumi.Input[str] performance_insights_kms_key_id: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). - :param pulumi.Input[int] performance_insights_retention_period: Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + :param pulumi.Input[bool] performance_insights_enabled: Enables Performance Insights for the RDS Cluster + :param pulumi.Input[str] performance_insights_kms_key_id: Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + :param pulumi.Input[int] performance_insights_retention_period: Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. :param pulumi.Input[int] port: Port on which the DB accepts connections. :param pulumi.Input[str] preferred_backup_window: Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per region, e.g. `04:00-09:00`. :param pulumi.Input[str] preferred_maintenance_window: Weekly time range during which system maintenance can occur, in (UTC) e.g., `wed:04:00-wed:04:30` @@ -3370,7 +3370,7 @@ def network_type(self) -> pulumi.Output[str]: @pulumi.getter(name="performanceInsightsEnabled") def performance_insights_enabled(self) -> pulumi.Output[Optional[bool]]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Enables Performance Insights for the RDS Cluster + Enables Performance Insights for the RDS Cluster """ return pulumi.get(self, "performance_insights_enabled") @@ -3378,7 +3378,7 @@ def performance_insights_enabled(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="performanceInsightsKmsKeyId") def performance_insights_kms_key_id(self) -> pulumi.Output[str]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). + Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (`aws/rds`). """ return pulumi.get(self, "performance_insights_kms_key_id") @@ -3386,7 +3386,7 @@ def performance_insights_kms_key_id(self) -> pulumi.Output[str]: @pulumi.getter(name="performanceInsightsRetentionPeriod") def performance_insights_retention_period(self) -> pulumi.Output[int]: """ - Valid only for Non-Aurora Multi-AZ DB Clusters. Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. + Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are `7`, `month * 31` (where month is a number of months from 1-23), and `731`. See [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.cost.html) for more information on retention periods. """ return pulumi.get(self, "performance_insights_retention_period") diff --git a/sdk/python/pulumi_aws/rds/cluster_snapshot_copy.py b/sdk/python/pulumi_aws/rds/cluster_snapshot_copy.py new file mode 100644 index 00000000000..12ce3c3a261 --- /dev/null +++ b/sdk/python/pulumi_aws/rds/cluster_snapshot_copy.py @@ -0,0 +1,866 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ClusterSnapshotCopyArgs', 'ClusterSnapshotCopy'] + +@pulumi.input_type +class ClusterSnapshotCopyArgs: + def __init__(__self__, *, + source_db_cluster_snapshot_identifier: pulumi.Input[str], + target_db_cluster_snapshot_identifier: pulumi.Input[str], + copy_tags: Optional[pulumi.Input[bool]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']] = None): + """ + The set of arguments for constructing a ClusterSnapshotCopy resource. + :param pulumi.Input[str] source_db_cluster_snapshot_identifier: Identifier of the source snapshot. + :param pulumi.Input[str] target_db_cluster_snapshot_identifier: Identifier for the snapshot. + + The following arguments are optional: + :param pulumi.Input[bool] copy_tags: Whether to copy existing tags. Defaults to `false`. + :param pulumi.Input[str] destination_region: The Destination region to place snapshot copy. + :param pulumi.Input[str] kms_key_id: KMS key ID. + :param pulumi.Input[str] presigned_url: URL that contains a Signature Version 4 signed request. + :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "source_db_cluster_snapshot_identifier", source_db_cluster_snapshot_identifier) + pulumi.set(__self__, "target_db_cluster_snapshot_identifier", target_db_cluster_snapshot_identifier) + if copy_tags is not None: + pulumi.set(__self__, "copy_tags", copy_tags) + if destination_region is not None: + pulumi.set(__self__, "destination_region", destination_region) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if presigned_url is not None: + pulumi.set(__self__, "presigned_url", presigned_url) + if shared_accounts is not None: + pulumi.set(__self__, "shared_accounts", shared_accounts) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="sourceDbClusterSnapshotIdentifier") + def source_db_cluster_snapshot_identifier(self) -> pulumi.Input[str]: + """ + Identifier of the source snapshot. + """ + return pulumi.get(self, "source_db_cluster_snapshot_identifier") + + @source_db_cluster_snapshot_identifier.setter + def source_db_cluster_snapshot_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "source_db_cluster_snapshot_identifier", value) + + @property + @pulumi.getter(name="targetDbClusterSnapshotIdentifier") + def target_db_cluster_snapshot_identifier(self) -> pulumi.Input[str]: + """ + Identifier for the snapshot. + + The following arguments are optional: + """ + return pulumi.get(self, "target_db_cluster_snapshot_identifier") + + @target_db_cluster_snapshot_identifier.setter + def target_db_cluster_snapshot_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "target_db_cluster_snapshot_identifier", value) + + @property + @pulumi.getter(name="copyTags") + def copy_tags(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to copy existing tags. Defaults to `false`. + """ + return pulumi.get(self, "copy_tags") + + @copy_tags.setter + def copy_tags(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "copy_tags", value) + + @property + @pulumi.getter(name="destinationRegion") + def destination_region(self) -> Optional[pulumi.Input[str]]: + """ + The Destination region to place snapshot copy. + """ + return pulumi.get(self, "destination_region") + + @destination_region.setter + def destination_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "destination_region", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + KMS key ID. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter(name="presignedUrl") + def presigned_url(self) -> Optional[pulumi.Input[str]]: + """ + URL that contains a Signature Version 4 signed request. + """ + return pulumi.get(self, "presigned_url") + + @presigned_url.setter + def presigned_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "presigned_url", value) + + @property + @pulumi.getter(name="sharedAccounts") + def shared_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + """ + return pulumi.get(self, "shared_accounts") + + @shared_accounts.setter + def shared_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "shared_accounts", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _ClusterSnapshotCopyState: + def __init__(__self__, *, + allocated_storage: Optional[pulumi.Input[int]] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']] = None, + vpc_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ClusterSnapshotCopy resources. + :param pulumi.Input[int] allocated_storage: Specifies the allocated storage size in gigabytes (GB). + :param pulumi.Input[bool] copy_tags: Whether to copy existing tags. Defaults to `false`. + :param pulumi.Input[str] db_cluster_snapshot_arn: The Amazon Resource Name (ARN) for the DB cluster snapshot. + :param pulumi.Input[str] destination_region: The Destination region to place snapshot copy. + :param pulumi.Input[str] engine: Specifies the name of the database engine. + :param pulumi.Input[str] engine_version: Specifies the version of the database engine. + :param pulumi.Input[str] kms_key_id: KMS key ID. + :param pulumi.Input[str] license_model: License model information for the restored DB instance. + :param pulumi.Input[str] presigned_url: URL that contains a Signature Version 4 signed request. + :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + :param pulumi.Input[str] source_db_cluster_snapshot_identifier: Identifier of the source snapshot. + :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster snapshot is encrypted. + :param pulumi.Input[str] storage_type: Specifies the storage type associated with DB cluster snapshot. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] target_db_cluster_snapshot_identifier: Identifier for the snapshot. + + The following arguments are optional: + :param pulumi.Input[str] vpc_id: Provides the VPC ID associated with the DB cluster snapshot. + """ + if allocated_storage is not None: + pulumi.set(__self__, "allocated_storage", allocated_storage) + if copy_tags is not None: + pulumi.set(__self__, "copy_tags", copy_tags) + if db_cluster_snapshot_arn is not None: + pulumi.set(__self__, "db_cluster_snapshot_arn", db_cluster_snapshot_arn) + if destination_region is not None: + pulumi.set(__self__, "destination_region", destination_region) + if engine is not None: + pulumi.set(__self__, "engine", engine) + if engine_version is not None: + pulumi.set(__self__, "engine_version", engine_version) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if license_model is not None: + pulumi.set(__self__, "license_model", license_model) + if presigned_url is not None: + pulumi.set(__self__, "presigned_url", presigned_url) + if shared_accounts is not None: + pulumi.set(__self__, "shared_accounts", shared_accounts) + if snapshot_type is not None: + pulumi.set(__self__, "snapshot_type", snapshot_type) + if source_db_cluster_snapshot_identifier is not None: + pulumi.set(__self__, "source_db_cluster_snapshot_identifier", source_db_cluster_snapshot_identifier) + if storage_encrypted is not None: + pulumi.set(__self__, "storage_encrypted", storage_encrypted) + if storage_type is not None: + pulumi.set(__self__, "storage_type", storage_type) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if target_db_cluster_snapshot_identifier is not None: + pulumi.set(__self__, "target_db_cluster_snapshot_identifier", target_db_cluster_snapshot_identifier) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if vpc_id is not None: + pulumi.set(__self__, "vpc_id", vpc_id) + + @property + @pulumi.getter(name="allocatedStorage") + def allocated_storage(self) -> Optional[pulumi.Input[int]]: + """ + Specifies the allocated storage size in gigabytes (GB). + """ + return pulumi.get(self, "allocated_storage") + + @allocated_storage.setter + def allocated_storage(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "allocated_storage", value) + + @property + @pulumi.getter(name="copyTags") + def copy_tags(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to copy existing tags. Defaults to `false`. + """ + return pulumi.get(self, "copy_tags") + + @copy_tags.setter + def copy_tags(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "copy_tags", value) + + @property + @pulumi.getter(name="dbClusterSnapshotArn") + def db_cluster_snapshot_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) for the DB cluster snapshot. + """ + return pulumi.get(self, "db_cluster_snapshot_arn") + + @db_cluster_snapshot_arn.setter + def db_cluster_snapshot_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "db_cluster_snapshot_arn", value) + + @property + @pulumi.getter(name="destinationRegion") + def destination_region(self) -> Optional[pulumi.Input[str]]: + """ + The Destination region to place snapshot copy. + """ + return pulumi.get(self, "destination_region") + + @destination_region.setter + def destination_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "destination_region", value) + + @property + @pulumi.getter + def engine(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the name of the database engine. + """ + return pulumi.get(self, "engine") + + @engine.setter + def engine(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine", value) + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the version of the database engine. + """ + return pulumi.get(self, "engine_version") + + @engine_version.setter + def engine_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_version", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + KMS key ID. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter(name="licenseModel") + def license_model(self) -> Optional[pulumi.Input[str]]: + """ + License model information for the restored DB instance. + """ + return pulumi.get(self, "license_model") + + @license_model.setter + def license_model(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "license_model", value) + + @property + @pulumi.getter(name="presignedUrl") + def presigned_url(self) -> Optional[pulumi.Input[str]]: + """ + URL that contains a Signature Version 4 signed request. + """ + return pulumi.get(self, "presigned_url") + + @presigned_url.setter + def presigned_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "presigned_url", value) + + @property + @pulumi.getter(name="sharedAccounts") + def shared_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + """ + return pulumi.get(self, "shared_accounts") + + @shared_accounts.setter + def shared_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "shared_accounts", value) + + @property + @pulumi.getter(name="snapshotType") + def snapshot_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "snapshot_type") + + @snapshot_type.setter + def snapshot_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "snapshot_type", value) + + @property + @pulumi.getter(name="sourceDbClusterSnapshotIdentifier") + def source_db_cluster_snapshot_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of the source snapshot. + """ + return pulumi.get(self, "source_db_cluster_snapshot_identifier") + + @source_db_cluster_snapshot_identifier.setter + def source_db_cluster_snapshot_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_db_cluster_snapshot_identifier", value) + + @property + @pulumi.getter(name="storageEncrypted") + def storage_encrypted(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether the DB cluster snapshot is encrypted. + """ + return pulumi.get(self, "storage_encrypted") + + @storage_encrypted.setter + def storage_encrypted(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "storage_encrypted", value) + + @property + @pulumi.getter(name="storageType") + def storage_type(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the storage type associated with DB cluster snapshot. + """ + return pulumi.get(self, "storage_type") + + @storage_type.setter + def storage_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_type", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter(name="targetDbClusterSnapshotIdentifier") + def target_db_cluster_snapshot_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the snapshot. + + The following arguments are optional: + """ + return pulumi.get(self, "target_db_cluster_snapshot_identifier") + + @target_db_cluster_snapshot_identifier.setter + def target_db_cluster_snapshot_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "target_db_cluster_snapshot_identifier", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ClusterSnapshotCopyTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> Optional[pulumi.Input[str]]: + """ + Provides the VPC ID associated with the DB cluster snapshot. + """ + return pulumi.get(self, "vpc_id") + + @vpc_id.setter + def vpc_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_id", value) + + +class ClusterSnapshotCopy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ClusterSnapshotCopyTimeoutsArgs', 'ClusterSnapshotCopyTimeoutsArgsDict']]] = None, + __props__=None): + """ + Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `rds.SnapshotCopy` resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.rds.Cluster("example", + cluster_identifier="aurora-cluster-demo", + database_name="test", + engine=aws.rds.EngineType.AURORA_MYSQL, + master_username="tfacctest", + master_password="avoid-plaintext-passwords", + skip_final_snapshot=True) + example_cluster_snapshot = aws.rds.ClusterSnapshot("example", + db_cluster_identifier=example.cluster_identifier, + db_cluster_snapshot_identifier="example") + example_cluster_snapshot_copy = aws.rds.ClusterSnapshotCopy("example", + source_db_cluster_snapshot_identifier=example_cluster_snapshot.db_cluster_snapshot_arn, + target_db_cluster_snapshot_identifier="example-copy") + ``` + + ## Import + + Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: + + ```sh + $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] copy_tags: Whether to copy existing tags. Defaults to `false`. + :param pulumi.Input[str] destination_region: The Destination region to place snapshot copy. + :param pulumi.Input[str] kms_key_id: KMS key ID. + :param pulumi.Input[str] presigned_url: URL that contains a Signature Version 4 signed request. + :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + :param pulumi.Input[str] source_db_cluster_snapshot_identifier: Identifier of the source snapshot. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[str] target_db_cluster_snapshot_identifier: Identifier for the snapshot. + + The following arguments are optional: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ClusterSnapshotCopyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages an RDS database cluster snapshot copy. For managing RDS database instance snapshot copies, see the `rds.SnapshotCopy` resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.rds.Cluster("example", + cluster_identifier="aurora-cluster-demo", + database_name="test", + engine=aws.rds.EngineType.AURORA_MYSQL, + master_username="tfacctest", + master_password="avoid-plaintext-passwords", + skip_final_snapshot=True) + example_cluster_snapshot = aws.rds.ClusterSnapshot("example", + db_cluster_identifier=example.cluster_identifier, + db_cluster_snapshot_identifier="example") + example_cluster_snapshot_copy = aws.rds.ClusterSnapshotCopy("example", + source_db_cluster_snapshot_identifier=example_cluster_snapshot.db_cluster_snapshot_arn, + target_db_cluster_snapshot_identifier="example-copy") + ``` + + ## Import + + Using `pulumi import`, import `aws_rds_cluster_snapshot_copy` using the `id`. For example: + + ```sh + $ pulumi import aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy example my-snapshot + ``` + + :param str resource_name: The name of the resource. + :param ClusterSnapshotCopyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ClusterSnapshotCopyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ClusterSnapshotCopyTimeoutsArgs', 'ClusterSnapshotCopyTimeoutsArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ClusterSnapshotCopyArgs.__new__(ClusterSnapshotCopyArgs) + + __props__.__dict__["copy_tags"] = copy_tags + __props__.__dict__["destination_region"] = destination_region + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["presigned_url"] = presigned_url + __props__.__dict__["shared_accounts"] = shared_accounts + if source_db_cluster_snapshot_identifier is None and not opts.urn: + raise TypeError("Missing required property 'source_db_cluster_snapshot_identifier'") + __props__.__dict__["source_db_cluster_snapshot_identifier"] = source_db_cluster_snapshot_identifier + __props__.__dict__["tags"] = tags + if target_db_cluster_snapshot_identifier is None and not opts.urn: + raise TypeError("Missing required property 'target_db_cluster_snapshot_identifier'") + __props__.__dict__["target_db_cluster_snapshot_identifier"] = target_db_cluster_snapshot_identifier + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["allocated_storage"] = None + __props__.__dict__["db_cluster_snapshot_arn"] = None + __props__.__dict__["engine"] = None + __props__.__dict__["engine_version"] = None + __props__.__dict__["license_model"] = None + __props__.__dict__["snapshot_type"] = None + __props__.__dict__["storage_encrypted"] = None + __props__.__dict__["storage_type"] = None + __props__.__dict__["tags_all"] = None + __props__.__dict__["vpc_id"] = None + super(ClusterSnapshotCopy, __self__).__init__( + 'aws:rds/clusterSnapshotCopy:ClusterSnapshotCopy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + allocated_storage: Optional[pulumi.Input[int]] = None, + copy_tags: Optional[pulumi.Input[bool]] = None, + db_cluster_snapshot_arn: Optional[pulumi.Input[str]] = None, + destination_region: Optional[pulumi.Input[str]] = None, + engine: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + license_model: Optional[pulumi.Input[str]] = None, + presigned_url: Optional[pulumi.Input[str]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + snapshot_type: Optional[pulumi.Input[str]] = None, + source_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + storage_encrypted: Optional[pulumi.Input[bool]] = None, + storage_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + target_db_cluster_snapshot_identifier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ClusterSnapshotCopyTimeoutsArgs', 'ClusterSnapshotCopyTimeoutsArgsDict']]] = None, + vpc_id: Optional[pulumi.Input[str]] = None) -> 'ClusterSnapshotCopy': + """ + Get an existing ClusterSnapshotCopy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] allocated_storage: Specifies the allocated storage size in gigabytes (GB). + :param pulumi.Input[bool] copy_tags: Whether to copy existing tags. Defaults to `false`. + :param pulumi.Input[str] db_cluster_snapshot_arn: The Amazon Resource Name (ARN) for the DB cluster snapshot. + :param pulumi.Input[str] destination_region: The Destination region to place snapshot copy. + :param pulumi.Input[str] engine: Specifies the name of the database engine. + :param pulumi.Input[str] engine_version: Specifies the version of the database engine. + :param pulumi.Input[str] kms_key_id: KMS key ID. + :param pulumi.Input[str] license_model: License model information for the restored DB instance. + :param pulumi.Input[str] presigned_url: URL that contains a Signature Version 4 signed request. + :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + :param pulumi.Input[str] source_db_cluster_snapshot_identifier: Identifier of the source snapshot. + :param pulumi.Input[bool] storage_encrypted: Specifies whether the DB cluster snapshot is encrypted. + :param pulumi.Input[str] storage_type: Specifies the storage type associated with DB cluster snapshot. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] target_db_cluster_snapshot_identifier: Identifier for the snapshot. + + The following arguments are optional: + :param pulumi.Input[str] vpc_id: Provides the VPC ID associated with the DB cluster snapshot. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ClusterSnapshotCopyState.__new__(_ClusterSnapshotCopyState) + + __props__.__dict__["allocated_storage"] = allocated_storage + __props__.__dict__["copy_tags"] = copy_tags + __props__.__dict__["db_cluster_snapshot_arn"] = db_cluster_snapshot_arn + __props__.__dict__["destination_region"] = destination_region + __props__.__dict__["engine"] = engine + __props__.__dict__["engine_version"] = engine_version + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["license_model"] = license_model + __props__.__dict__["presigned_url"] = presigned_url + __props__.__dict__["shared_accounts"] = shared_accounts + __props__.__dict__["snapshot_type"] = snapshot_type + __props__.__dict__["source_db_cluster_snapshot_identifier"] = source_db_cluster_snapshot_identifier + __props__.__dict__["storage_encrypted"] = storage_encrypted + __props__.__dict__["storage_type"] = storage_type + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["target_db_cluster_snapshot_identifier"] = target_db_cluster_snapshot_identifier + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["vpc_id"] = vpc_id + return ClusterSnapshotCopy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="allocatedStorage") + def allocated_storage(self) -> pulumi.Output[int]: + """ + Specifies the allocated storage size in gigabytes (GB). + """ + return pulumi.get(self, "allocated_storage") + + @property + @pulumi.getter(name="copyTags") + def copy_tags(self) -> pulumi.Output[Optional[bool]]: + """ + Whether to copy existing tags. Defaults to `false`. + """ + return pulumi.get(self, "copy_tags") + + @property + @pulumi.getter(name="dbClusterSnapshotArn") + def db_cluster_snapshot_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) for the DB cluster snapshot. + """ + return pulumi.get(self, "db_cluster_snapshot_arn") + + @property + @pulumi.getter(name="destinationRegion") + def destination_region(self) -> pulumi.Output[Optional[str]]: + """ + The Destination region to place snapshot copy. + """ + return pulumi.get(self, "destination_region") + + @property + @pulumi.getter + def engine(self) -> pulumi.Output[str]: + """ + Specifies the name of the database engine. + """ + return pulumi.get(self, "engine") + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> pulumi.Output[str]: + """ + Specifies the version of the database engine. + """ + return pulumi.get(self, "engine_version") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> pulumi.Output[Optional[str]]: + """ + KMS key ID. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter(name="licenseModel") + def license_model(self) -> pulumi.Output[str]: + """ + License model information for the restored DB instance. + """ + return pulumi.get(self, "license_model") + + @property + @pulumi.getter(name="presignedUrl") + def presigned_url(self) -> pulumi.Output[Optional[str]]: + """ + URL that contains a Signature Version 4 signed request. + """ + return pulumi.get(self, "presigned_url") + + @property + @pulumi.getter(name="sharedAccounts") + def shared_accounts(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public. + """ + return pulumi.get(self, "shared_accounts") + + @property + @pulumi.getter(name="snapshotType") + def snapshot_type(self) -> pulumi.Output[str]: + return pulumi.get(self, "snapshot_type") + + @property + @pulumi.getter(name="sourceDbClusterSnapshotIdentifier") + def source_db_cluster_snapshot_identifier(self) -> pulumi.Output[str]: + """ + Identifier of the source snapshot. + """ + return pulumi.get(self, "source_db_cluster_snapshot_identifier") + + @property + @pulumi.getter(name="storageEncrypted") + def storage_encrypted(self) -> pulumi.Output[bool]: + """ + Specifies whether the DB cluster snapshot is encrypted. + """ + return pulumi.get(self, "storage_encrypted") + + @property + @pulumi.getter(name="storageType") + def storage_type(self) -> pulumi.Output[str]: + """ + Specifies the storage type associated with DB cluster snapshot. + """ + return pulumi.get(self, "storage_type") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter(name="targetDbClusterSnapshotIdentifier") + def target_db_cluster_snapshot_identifier(self) -> pulumi.Output[str]: + """ + Identifier for the snapshot. + + The following arguments are optional: + """ + return pulumi.get(self, "target_db_cluster_snapshot_identifier") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.ClusterSnapshotCopyTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> pulumi.Output[str]: + """ + Provides the VPC ID associated with the DB cluster snapshot. + """ + return pulumi.get(self, "vpc_id") + diff --git a/sdk/python/pulumi_aws/rds/outputs.py b/sdk/python/pulumi_aws/rds/outputs.py index 669129a8e18..f1f95d3b9a7 100644 --- a/sdk/python/pulumi_aws/rds/outputs.py +++ b/sdk/python/pulumi_aws/rds/outputs.py @@ -23,6 +23,7 @@ 'ClusterS3Import', 'ClusterScalingConfiguration', 'ClusterServerlessv2ScalingConfiguration', + 'ClusterSnapshotCopyTimeouts', 'ExportTaskTimeouts', 'GlobalClusterGlobalClusterMember', 'InstanceBlueGreenUpdate', @@ -526,6 +527,25 @@ def seconds_until_auto_pause(self) -> Optional[int]: return pulumi.get(self, "seconds_until_auto_pause") +@pulumi.output_type +class ClusterSnapshotCopyTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @pulumi.output_type class ExportTaskTimeouts(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/resourcegroups/resource.py b/sdk/python/pulumi_aws/resourcegroups/resource.py index f3ddcda9e39..2994b248071 100644 --- a/sdk/python/pulumi_aws/resourcegroups/resource.py +++ b/sdk/python/pulumi_aws/resourcegroups/resource.py @@ -23,10 +23,8 @@ def __init__(__self__, *, resource_arn: pulumi.Input[str]): """ The set of arguments for constructing a Resource resource. - :param pulumi.Input[str] group_arn: The name or the ARN of the resource group to add resources to. - - The following arguments are optional: - :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. + :param pulumi.Input[str] group_arn: Name or ARN of the resource group to add resources to. + :param pulumi.Input[str] resource_arn: ARN of the resource to be added to the group. """ pulumi.set(__self__, "group_arn", group_arn) pulumi.set(__self__, "resource_arn", resource_arn) @@ -35,9 +33,7 @@ def __init__(__self__, *, @pulumi.getter(name="groupArn") def group_arn(self) -> pulumi.Input[str]: """ - The name or the ARN of the resource group to add resources to. - - The following arguments are optional: + Name or ARN of the resource group to add resources to. """ return pulumi.get(self, "group_arn") @@ -49,7 +45,7 @@ def group_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="resourceArn") def resource_arn(self) -> pulumi.Input[str]: """ - The ARN of the resource to be added to the group. + ARN of the resource to be added to the group. """ return pulumi.get(self, "resource_arn") @@ -66,10 +62,8 @@ def __init__(__self__, *, resource_type: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Resource resources. - :param pulumi.Input[str] group_arn: The name or the ARN of the resource group to add resources to. - - The following arguments are optional: - :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. + :param pulumi.Input[str] group_arn: Name or ARN of the resource group to add resources to. + :param pulumi.Input[str] resource_arn: ARN of the resource to be added to the group. :param pulumi.Input[str] resource_type: The resource type of a resource, such as `AWS::EC2::Instance`. """ if group_arn is not None: @@ -83,9 +77,7 @@ def __init__(__self__, *, @pulumi.getter(name="groupArn") def group_arn(self) -> Optional[pulumi.Input[str]]: """ - The name or the ARN of the resource group to add resources to. - - The following arguments are optional: + Name or ARN of the resource group to add resources to. """ return pulumi.get(self, "group_arn") @@ -97,7 +89,7 @@ def group_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="resourceArn") def resource_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of the resource to be added to the group. + ARN of the resource to be added to the group. """ return pulumi.get(self, "resource_arn") @@ -148,12 +140,18 @@ def __init__(__self__, resource_arn=example.arn) ``` + ## Import + + Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: + + ```sh + $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] group_arn: The name or the ARN of the resource group to add resources to. - - The following arguments are optional: - :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. + :param pulumi.Input[str] group_arn: Name or ARN of the resource group to add resources to. + :param pulumi.Input[str] resource_arn: ARN of the resource to be added to the group. """ ... @overload @@ -183,6 +181,14 @@ def __init__(__self__, resource_arn=example.arn) ``` + ## Import + + Using `pulumi import`, import an AWS Resource Groups Resource using `group_arn` and `resource_arn`, separated by a comma (`,`). For example: + + ```sh + $ pulumi import aws:resourcegroups/resource:Resource example arn:aws:resource-groups:us-west-2:012345678901:group/example,arn:aws:lambda:us-west-2:012345678901:function:example + ``` + :param str resource_name: The name of the resource. :param ResourceArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -236,10 +242,8 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] group_arn: The name or the ARN of the resource group to add resources to. - - The following arguments are optional: - :param pulumi.Input[str] resource_arn: The ARN of the resource to be added to the group. + :param pulumi.Input[str] group_arn: Name or ARN of the resource group to add resources to. + :param pulumi.Input[str] resource_arn: ARN of the resource to be added to the group. :param pulumi.Input[str] resource_type: The resource type of a resource, such as `AWS::EC2::Instance`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -255,9 +259,7 @@ def get(resource_name: str, @pulumi.getter(name="groupArn") def group_arn(self) -> pulumi.Output[str]: """ - The name or the ARN of the resource group to add resources to. - - The following arguments are optional: + Name or ARN of the resource group to add resources to. """ return pulumi.get(self, "group_arn") @@ -265,7 +267,7 @@ def group_arn(self) -> pulumi.Output[str]: @pulumi.getter(name="resourceArn") def resource_arn(self) -> pulumi.Output[str]: """ - The ARN of the resource to be added to the group. + ARN of the resource to be added to the group. """ return pulumi.get(self, "resource_arn") diff --git a/sdk/python/pulumi_aws/servicecatalog/__init__.py b/sdk/python/pulumi_aws/servicecatalog/__init__.py index 391db4c6a53..aaa3cff27e3 100644 --- a/sdk/python/pulumi_aws/servicecatalog/__init__.py +++ b/sdk/python/pulumi_aws/servicecatalog/__init__.py @@ -12,6 +12,7 @@ from .constraint import * from .get_appregistry_application import * from .get_appregistry_attribute_group import * +from .get_appregistry_attribute_group_associations import * from .get_constraint import * from .get_launch_paths import * from .get_portfolio import * diff --git a/sdk/python/pulumi_aws/servicecatalog/get_appregistry_attribute_group_associations.py b/sdk/python/pulumi_aws/servicecatalog/get_appregistry_attribute_group_associations.py new file mode 100644 index 00000000000..d366c24f5d4 --- /dev/null +++ b/sdk/python/pulumi_aws/servicecatalog/get_appregistry_attribute_group_associations.py @@ -0,0 +1,134 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetAppregistryAttributeGroupAssociationsResult', + 'AwaitableGetAppregistryAttributeGroupAssociationsResult', + 'get_appregistry_attribute_group_associations', + 'get_appregistry_attribute_group_associations_output', +] + +@pulumi.output_type +class GetAppregistryAttributeGroupAssociationsResult: + """ + A collection of values returned by getAppregistryAttributeGroupAssociations. + """ + def __init__(__self__, attribute_group_ids=None, id=None, name=None): + if attribute_group_ids and not isinstance(attribute_group_ids, list): + raise TypeError("Expected argument 'attribute_group_ids' to be a list") + pulumi.set(__self__, "attribute_group_ids", attribute_group_ids) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="attributeGroupIds") + def attribute_group_ids(self) -> Sequence[str]: + """ + Set of attribute group IDs this application is associated with. + """ + return pulumi.get(self, "attribute_group_ids") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + +class AwaitableGetAppregistryAttributeGroupAssociationsResult(GetAppregistryAttributeGroupAssociationsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAppregistryAttributeGroupAssociationsResult( + attribute_group_ids=self.attribute_group_ids, + id=self.id, + name=self.name) + + +def get_appregistry_attribute_group_associations(id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAppregistryAttributeGroupAssociationsResult: + """ + Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.get_appregistry_attribute_group_associations(id="12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3") + ``` + + + :param str id: ID of the application to which attribute groups are associated. + :param str name: Name of the application to which attribute groups are associated. + + The following arguments are optional: + """ + __args__ = dict() + __args__['id'] = id + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations', __args__, opts=opts, typ=GetAppregistryAttributeGroupAssociationsResult).value + + return AwaitableGetAppregistryAttributeGroupAssociationsResult( + attribute_group_ids=pulumi.get(__ret__, 'attribute_group_ids'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name')) +def get_appregistry_attribute_group_associations_output(id: Optional[pulumi.Input[Optional[str]]] = None, + name: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAppregistryAttributeGroupAssociationsResult]: + """ + Data source for managing AWS Service Catalog AppRegistry Attribute Group Associations. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.get_appregistry_attribute_group_associations(id="12456778723424sdffsdfsdq34,12234t3564dsfsdf34asff4ww3") + ``` + + + :param str id: ID of the application to which attribute groups are associated. + :param str name: Name of the application to which attribute groups are associated. + + The following arguments are optional: + """ + __args__ = dict() + __args__['id'] = id + __args__['name'] = name + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws:servicecatalog/getAppregistryAttributeGroupAssociations:getAppregistryAttributeGroupAssociations', __args__, opts=opts, typ=GetAppregistryAttributeGroupAssociationsResult) + return __ret__.apply(lambda __response__: GetAppregistryAttributeGroupAssociationsResult( + attribute_group_ids=pulumi.get(__response__, 'attribute_group_ids'), + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'))) diff --git a/sdk/python/pulumi_aws/verifiedaccess/_inputs.py b/sdk/python/pulumi_aws/verifiedaccess/_inputs.py index f816fc9c119..63c7acd4dee 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/_inputs.py +++ b/sdk/python/pulumi_aws/verifiedaccess/_inputs.py @@ -191,6 +191,9 @@ def kms_key_arn(self, value: Optional[pulumi.Input[str]]): if not MYPY: class GroupSseConfigurationArgsDict(TypedDict): customer_managed_key_enabled: NotRequired[pulumi.Input[bool]] + """ + Boolean flag to indicate that the CMK should be used. + """ kms_key_arn: NotRequired[pulumi.Input[str]] """ ARN of the KMS key to use. @@ -204,6 +207,7 @@ def __init__(__self__, *, customer_managed_key_enabled: Optional[pulumi.Input[bool]] = None, kms_key_arn: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[bool] customer_managed_key_enabled: Boolean flag to indicate that the CMK should be used. :param pulumi.Input[str] kms_key_arn: ARN of the KMS key to use. """ if customer_managed_key_enabled is not None: @@ -214,6 +218,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="customerManagedKeyEnabled") def customer_managed_key_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Boolean flag to indicate that the CMK should be used. + """ return pulumi.get(self, "customer_managed_key_enabled") @customer_managed_key_enabled.setter diff --git a/sdk/python/pulumi_aws/verifiedaccess/outputs.py b/sdk/python/pulumi_aws/verifiedaccess/outputs.py index 345ea8eb96a..5864a41d3e2 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/outputs.py +++ b/sdk/python/pulumi_aws/verifiedaccess/outputs.py @@ -196,6 +196,7 @@ def __init__(__self__, *, customer_managed_key_enabled: Optional[bool] = None, kms_key_arn: Optional[str] = None): """ + :param bool customer_managed_key_enabled: Boolean flag to indicate that the CMK should be used. :param str kms_key_arn: ARN of the KMS key to use. """ if customer_managed_key_enabled is not None: @@ -206,6 +207,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="customerManagedKeyEnabled") def customer_managed_key_enabled(self) -> Optional[bool]: + """ + Boolean flag to indicate that the CMK should be used. + """ return pulumi.get(self, "customer_managed_key_enabled") @property diff --git a/upstream b/upstream index c38d7c284d0..ba4eee9c510 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit c38d7c284d0684653d53452eb1f9dd3e65b905fd +Subproject commit ba4eee9c51077476f4b8986156572f758e486013