diff --git a/examples/go.mod b/examples/go.mod index 0b62375cafd..55a12c0c91e 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -4,8 +4,8 @@ go 1.23.1 require ( github.com/aws/aws-sdk-go v1.55.5 - github.com/aws/aws-sdk-go-v2/config v1.27.38 - github.com/aws/aws-sdk-go-v2/service/iam v1.36.2 + github.com/aws/aws-sdk-go-v2/config v1.27.39 + github.com/aws/aws-sdk-go-v2/service/iam v1.36.3 github.com/pulumi/providertest v0.0.14 github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000 github.com/pulumi/pulumi-terraform-bridge/pf v0.44.1 @@ -48,7 +48,7 @@ require ( github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton // indirect + github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton // indirect github.com/YakDriver/go-version v0.1.0 // indirect github.com/YakDriver/regexache v0.24.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect @@ -59,259 +59,259 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go-v2 v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.36 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.37 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/account v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/acm v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/amp v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.46.1 // indirect - github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/backup v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.45.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1 // indirect - github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chime v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2 // indirect - github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2 // indirect - github.com/aws/aws-sdk-go-v2/service/connect v1.110.2 // indirect - github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2 // indirect - github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dax v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/detective v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/drs v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2 // indirect - github.com/aws/aws-sdk-go-v2/service/efs v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.49.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emr v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1 // indirect - github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fis v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fms v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.99.1 // indirect - github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/account v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acm v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amp v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0 // indirect + github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.46.2 // indirect + github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/backup v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.45.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0 // indirect + github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2 // indirect + github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/service/chime v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3 // indirect + github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/connect v1.111.0 // indirect + github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3 // indirect + github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dax v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/detective v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/drs v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/efs v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emr v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2 // indirect + github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4 // indirect + github.com/aws/aws-sdk-go-v2/service/fis v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fms v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.99.2 // indirect + github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4 // indirect + github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.19 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iot v1.57.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2 // indirect - github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/location v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mq v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/oam v1.14.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/osis v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2 // indirect - github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1 // indirect - github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/polly v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ram v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.85.1 // indirect - github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2 // indirect - github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1 // indirect - github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rum v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1 // indirect - github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ses v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/shield v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/signer v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sns v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/swf v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2 // indirect - github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2 // indirect - github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/waf v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iot v1.57.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1 // indirect + github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/location v1.41.4 // indirect + github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4 // indirect + github.com/aws/aws-sdk-go-v2/service/mq v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3 // indirect + github.com/aws/aws-sdk-go-v2/service/oam v1.14.3 // indirect + github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4 // indirect + github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1 // indirect + github.com/aws/aws-sdk-go-v2/service/osis v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3 // indirect + github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/polly v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4 // indirect + github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ram v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.86.0 // indirect + github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3 // indirect + github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0 // indirect + github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rum v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0 // indirect + github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0 // indirect + github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ses v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/shield v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/signer v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sns v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/swf v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3 // indirect + github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4 // indirect + github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/waf v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2 // indirect - github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/xray v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4 // indirect + github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/xray v1.28.3 // indirect github.com/aws/smithy-go v1.21.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beevik/etree v1.4.1 // indirect diff --git a/examples/go.sum b/examples/go.sum index 4f095d76c6b..393fc8ae679 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1187,8 +1187,8 @@ github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= -github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton h1:ZGewsAoeSirbUS5cO8L0FMQA+iSop9xR1nmFYifDBPo= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/YakDriver/go-version v0.1.0 h1:/x+Xg2+l89Mjtxl0VRf2+ue8cnHkw6jfYv49j6f7gZw= github.com/YakDriver/go-version v0.1.0/go.mod h1:LXwFAp1E3KBhS7FHO/FE8r3XCmvKizs/VXXXFWfoSYY= github.com/YakDriver/regexache v0.24.0 h1:zUKaixelkswzdqsqPc2sveiV//Mi/msJn0teG8zBDiA= @@ -1238,14 +1238,14 @@ github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72Qm github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 h1:xDAuZTn4IMm8o1LnBZvmrL8JA1io4o3YWNXgohbf20g= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5/go.mod h1:wYSv6iDS621sEFLfKvpPE2ugjTuGlAG7iROg0hLOkfc= -github.com/aws/aws-sdk-go-v2/config v1.27.38 h1:mMVyJJuSUdbD4zKXoxDgWrgM60QwlFEg+JhihCq6wCw= -github.com/aws/aws-sdk-go-v2/config v1.27.38/go.mod h1:6xOiNEn58bj/64MPKx89r6G/el9JZn8pvVbquSqTKK4= -github.com/aws/aws-sdk-go-v2/credentials v1.17.36 h1:zwI5WrT+oWWfzSKoTNmSyeBKQhsFRJRv+PGW/UZW+Yk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.36/go.mod h1:3AG/sY1rc9NJrNWcN/3KPU4SIDPGTrd/qegKB0TnFdE= +github.com/aws/aws-sdk-go-v2/config v1.27.39 h1:FCylu78eTGzW1ynHcongXK9YHtoXD5AiiUqq3YfJYjU= +github.com/aws/aws-sdk-go-v2/config v1.27.39/go.mod h1:wczj2hbyskP4LjMKBEZwPRO1shXY+GsQleab+ZXT2ik= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37 h1:G2aOH01yW8X373JK419THj5QVqu9vKEwxSEsGxihoW0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37/go.mod h1:0ecCjlb7htYCptRD45lXJ6aJDQac6D2NlKGpZqyTG6A= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24 h1:WEiv2o2tjSx9tv5jP7rCR1P8FE8c6DxkFpvHGy6SYZg= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24/go.mod h1:mhxj3DJiOXogLRZ/wlGmI9VHiCW2kzHjHTJLxexOtEk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26 h1:BTfwWNFVGLxW2bih/V2xhgCsYDQwG1cAWhWoW9Jx7wE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26/go.mod h1:LA1/FxoEFFmv7XpkB8KKqLAUz8AePdK9H0Ec7PUKazs= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= @@ -1254,244 +1254,244 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvK github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 h1:OWYvKL53l1rbsUmW7bQyJVsYU/Ii3bbAAQIIFNbM0Tk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18/go.mod h1:CUx0G1v3wG6l01tUB+j7Y8kclA8NSqK4ef0YG79a4cg= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2 h1:YQmTD87Nr1Pbs744qILXJ8Z7kBdmtPpVOuj/gkfgm2g= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2/go.mod h1:lJHy3hPT0NATCHF+ZbrShk+WFmp0SRF10+zoIPTFRlU= -github.com/aws/aws-sdk-go-v2/service/account v1.20.2 h1:4k6o41QjLjgRWJ4noapiYOt/MkTKYpxxm3tV3auMV54= -github.com/aws/aws-sdk-go-v2/service/account v1.20.2/go.mod h1:7pve48PWWDbBFRZwqJyWGcvbkHpcUBRHtWSkoRMVOnI= -github.com/aws/aws-sdk-go-v2/service/acm v1.29.2 h1:+zP+Pp6cIajY8CPT+ABCOLctvmYkNuNUSZ3vrDIvKzk= -github.com/aws/aws-sdk-go-v2/service/acm v1.29.2/go.mod h1:pyj5IBRLA+w27gR7KJY/4lSWoP4XOsyOVsXKAMvWE3s= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2 h1:akZeRODD6PrS5zCrNeAru9IKEr/P4ocf4VMehHYnxaU= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2/go.mod h1:i+aP0us0oDFVPP86a/xf3tR0uqWv/FYdlMGn2DQ4MTk= -github.com/aws/aws-sdk-go-v2/service/amp v1.28.2 h1:4bWDnWg7C2j08Psm7spPES8amQfaLfaFNZVSTVEX/uQ= -github.com/aws/aws-sdk-go-v2/service/amp v1.28.2/go.mod h1:Kl9aIKyfKh4EbccGaxSa9S+IbWYsqnCBKeY7XVy8Smo= -github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2 h1:K5yvCYPvRDXPnx6kvgbl/mMGcfKbEvgdJxZKaf+ott0= -github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2/go.mod h1:Zoj++3OeG0yMMdxvtSdoWY5U/kUzXC5xWjWz+q9Yk5s= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2 h1:qX2lC5M6ZrjFK6CJl6qrRWtLWPVDVfMh3k4TFW+eWEY= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2/go.mod h1:qTYWFp/mdwk7tM8Z0lcFnUUvywmc0GYRmj/4Ko28yQo= -github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2 h1:GOB+u7ARBjmATXqMsdHaiLPGW/OIGJZb+sbT5S+cJv0= -github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2/go.mod h1:y75KawFLMiWESE86a4IwN+iBlxSYT5rpqySlcxQw18c= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2 h1:AAZ0ElKb+RRTm/S7lftJHFAd4d87utD0RKveSb+udQg= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2/go.mod h1:zqEdmXsD9qS7hjOMednGrVDu28O8d0VzmYR6eouWYlg= -github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2 h1:lozdDDLmd2cpXik0QFyo6zyTAtPid7xVG2ouyU8Xyt8= -github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2/go.mod h1:pdRgMYHJfDDeTAw4TI4+EfxelbtA0U1On/PSUPhGz20= -github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2 h1:8rj0j8OieQBUrFE2G6qCpebwEcE4LYaukKkKi1jsyH0= -github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2/go.mod h1:7GrCW+K/o84aiTvG0/Ay/UCAiwjkonvuGvnFBFpJITo= -github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2 h1:GuaLgkDKBJafUAd25WB8XdsFrfc3EtOwmwQxA2sqOJ8= -github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2/go.mod h1:AqxcYxSdMO1ZSB3d10Eozc1RfKfYjrn0K1nIsjaYJ+Q= -github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2 h1:axbeTrC2LP7QpwzBqUSirrzDEWEJbjHmWMfF/OL6xwc= -github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2/go.mod h1:tPjL3WDvnky54nGINDJmP6byRAbQiIpdLbT6gnZq4nQ= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3 h1:0N2qI8kmroTN0haXJR5kcQa4Dfpbh4NTicTaI3MoAr0= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3/go.mod h1:lIGEkWgdZrjtZyPQ1XMjYfFCWafpP7F30Rdz+wevQIg= -github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2 h1:/vffn0q6cucT9+Rc/3hqjy1Z8I4tCNddcquhVdm/Puw= -github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2/go.mod h1:Q5/Cw6jsfPipidwxebx1bAwPCOzORVyGU0POTe//8XM= -github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2 h1:KDIqoM0RfW6AZAol93MNiOVd5vITNO2lfLhU0ENDPTs= -github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2/go.mod h1:EFX0QOb5sy2bc7qLrCtaWBCAphAsF2H7q6vzTklMXds= -github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2 h1:Lh2SCnNCFYaL3zPZ15lo+SaQNG6d901gqoU7yGjXupE= -github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2/go.mod h1:6VHD8l7WdVP6s6haYvfXpO632tCCvKI9etO9sbwSBOs= -github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2 h1:NdSOBVMDu5iCigj5gPCqUK7R3nPJukk0fXPLj7icp9w= -github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2/go.mod h1:swGQlfkXcvKPFgrRJINANYvHb2u+NH88mPyhvNqU2Pw= -github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2 h1:otkSvG1Z+TARNn58Y5qjdZMbH2+GOnwV8+K2R4gSLzM= -github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2/go.mod h1:MWfGPdl5m3phNVRgLU3fIgPnzTgrFwONX/T8/DK6eoE= -github.com/aws/aws-sdk-go-v2/service/athena v1.46.1 h1:pYdI80MNBtGZnI2dfBk6r0CIQsHWpw9Td8uYmgItsRU= -github.com/aws/aws-sdk-go-v2/service/athena v1.46.1/go.mod h1:BPy6WfKKUTQhO6hVCyImd1I0ejlngPaCu1zU0vZ1vPQ= -github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2 h1:Olieok8TUBkc6wCb0Qp8nrmI+iDBHOrA0IZNAAf92Q4= -github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2/go.mod h1:auTo9OWA6W4naXZIKjBZPeUdYe/5idHL7r/+6zgbbFo= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2 h1:2S+PZEKpyQUbNaR2p+CTO+NfS1+x4Su7xSdaZcbGLEw= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2/go.mod h1:Gmv7s//GGvs3nj9aqltFYnLStW8vDIwch0USkE67G4E= -github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2 h1:rmtYggAGmr9RVOv+acf+FKbpNkdKnrhucJw01gQkjHc= -github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2/go.mod h1:IXXoIU2PoQd+uUpu1qzC+tcyWpaJBLlX3bQTvaxO6Fo= -github.com/aws/aws-sdk-go-v2/service/backup v1.38.2 h1:0frocw5aVGUnqsVg3BqtdwncxUlTNulFSOtQVHlrtfk= -github.com/aws/aws-sdk-go-v2/service/backup v1.38.2/go.mod h1:MWWsaecE5EujYI9tD9+yeDmKcPTkfrBhS9TPX5EYIEI= -github.com/aws/aws-sdk-go-v2/service/batch v1.45.2 h1:VZ+ompKb9w3uZspgZ+2yD2OCEeUJJvcaC+VVmrN967g= -github.com/aws/aws-sdk-go-v2/service/batch v1.45.2/go.mod h1:z9GrSORElTuTG+rLKbQMAKi/QJeZIlaSx2c1PWO54ok= -github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2 h1:kLgOBz/6VNu3at3pkd3BjmWMsXbcQsGRIWwee7wuiIA= -github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2/go.mod h1:DsvYjYqN9EHrL68hc7RYYImI68BeyMdku8+8rm+AeUk= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1 h1:tBs50qPo0MQHzrggd2za8RchMFZCSgnQ+pJ18O3Nzhg= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1/go.mod h1:zr1Em8iRwo+9WWUsfYSR9ugG0TFR2hMDaZYqMLH7f2U= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1 h1:JaVwiVoqBMT7939WM8RmaKl20AM9T1/QJpPg94TIu54= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1/go.mod h1:TWgiTaFOEPO4WmONX+kASPCHobxtLGPjQyT80mPOvSE= -github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1 h1:2ccATKKXh7llmUNifz2hcLh3Dcv8rRnCJh/72HCVsSU= -github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1/go.mod h1:VPYBTW5go5v/QIeXzhkv51xoj5pRpIIlWe8NCdHFfbA= -github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2 h1:qOY3VrapFxZtmIwvFNUCh/qStdhfCYlkD0VA+FBPBTc= -github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0= -github.com/aws/aws-sdk-go-v2/service/chime v1.33.2 h1:n+gJuylm+jrTpGgjDvTzgsBw0eBuRRidjjkGg//W7Ls= -github.com/aws/aws-sdk-go-v2/service/chime v1.33.2/go.mod h1:xyUd00h8t5+bu5qN+XDjeA2U5O2sWSH69lphLQWNCec= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2 h1:/1EDqoxB9eGFjir37+1w0H5Y0tCSUZwY9dtPEYK+/Yc= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2/go.mod h1:CGXRUn9razUClMrT0ztmaPeAtQJjBuewiZ0htkSlj1k= -github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2 h1:nICIPZKYDiFAPY8A8dm7TWNBV4a5QUQe+Qymox5Zlg0= -github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2/go.mod h1:Y1Sv53bccpWBNWIw6+29DEztSouqq/u/S6S/lPqI9/A= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2 h1:kNG2Wbo9SSkIaSIO0kVyogca27/aHBuGP/pNvIwinmc= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2/go.mod h1:iX55GDn2lL2pthAp3k3lNpsRfFdfNpvYlHHqu8GQKT0= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2 h1:2Lhh/yg+CgH6Pu7OvesM6uP62spjvZyUyWsn60xFjww= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2/go.mod h1:R6qoyNSjchvHZZrUVpMwqjqOuDNCdk9qoI9IagO02xg= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 h1:dCuKmwWeHdV4Y1Z4WKp8Ss006WN48EHVcPyMgtWlanU= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 h1:0xzfXPA31Hkoi9KnQnkZNll3/KvkeYF8eYAvbjy0FOI= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2 h1:U8FVH342YcgI+nLuy+XctvI+M+jkmd8yBFnkM/8CM/M= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2/go.mod h1:cShu4+4PIZJ5nvMI+NEcItwVjMxQV0SGMYMMOLN5FME= -github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2 h1:+1l8em+RaE2ZULoxo/NELNwgEAiMkEYBW34VtpevP8U= -github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2/go.mod h1:MDEsRSicvgQweiN8hbGErk583wyHZkOlbc4BfKhSi3U= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2 h1:ZbBguPNHVub12aYeNY2VrU0qCuFaYoV74Ef/H2UK0pw= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2/go.mod h1:Xt7hXQe1EeZQ5J0efi7SS12CN5otGyTS5IFnWCIK6cg= -github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2 h1:zpemefmICrgOOomi/J+DmuYMdaVMl6QU/UdrVzYMtmE= -github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2/go.mod h1:0ZqrezjT/L6ruxNur0O+LcXVIiPPGpfhfGy3FNokiuU= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2 h1:sLoUkwhrhogwbnQ2/nsc1MT3dia7krZHHwCMbFyYGbo= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2/go.mod h1:ODEcuhq+MDaWP9fpgCPcYMKE12pyK5g5W2U0z0nHEiI= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2 h1:jB98st53IkKoKXQAwhP4WjVaP+dCBOy75HfCo6Vlx6k= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2/go.mod h1:TqMW1vaXXczuV0O1Wk+8+IZZQg7VusHNmTeJzNz6PK4= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2 h1:q5+hHt4JBA+8K6uAvfLWpUs7ErVR0GNW0Xf5KTOl84c= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2/go.mod h1:3p7NzlLlJesNGovq7Vqx8+0UibawzodrBRQAbaza6pI= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2 h1:7XOQO97FkhrPuCcmDqX4IaaEC93Fr9bXfJeZ6b+weQ4= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2/go.mod h1:7QKOwF4gC/ELkHuKTnVr/zGuQpJgdcIfFO3ph9TZbS8= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2 h1:2nLfDL4Gku6Q8u/OUyK7UQPfAxephIUZaLVa853KSFw= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2/go.mod h1:gSVnRPxjJD21L+rU0ovZxs6rn0bigG5Rvthy3EDNlMc= -github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2 h1:vjql4sX+ZLBdAbEFLoA4op+RpG6M0KTVg+tgXmkZh7c= -github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2/go.mod h1:OCGGMVnFTtz8ndbULEt/0schZMYbkrEv4kd3DY0OG24= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2 h1:KejvYNQBN5Bg4tqUdVDaeD2liYIBJ14G2+w9h6SQz8U= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2/go.mod h1:u7i817xe1zuglUic23rNGtTrOUUsBXu7Eta7qT2LuVY= -github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2 h1:DvI8uoJ1Lo4/+R3vRe+bRha4Z5EKW/fFpWKB8aw++nE= -github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2/go.mod h1:tFuhSKT1n7eljVQM3cRoWIy1dEBAD6FsWMZz+qhWFBM= -github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2 h1:/2b5F9SrPWB9aAUFtkHiBIEP7FHNFajoYUnneFfzJsk= -github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2/go.mod h1:JbkzZ7jxnq5In2Vli4KSBwa3SQBYsEljXnU9sLYV7i8= -github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2 h1:rNz+kVcBFZPBfHh5SPKRgRxTAyAoDfgiTV936b9swNE= -github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2/go.mod h1:Mhqj7N/UgBmGSH3WovRSc3SjAPyrtuGcA/+neISmIW0= -github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2 h1:FyUgJPqqrSFAcnjx5pB2f+B4GYLa6Mt9Nw+5D9mNS6o= -github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2/go.mod h1:i4H+MjU3upyb6ZsA+Pn0gCxF3UZHK+UkfZbC+li1q+o= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2 h1:z3thnJn7UCM0bieVB5ZINUV0IM/tVgw5oBhLNdUzUJI= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2/go.mod h1:y7TM6E4TCD8+x50VnNbAH3gwGvTu8zR4zTKdwdm4XqQ= -github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2 h1:ZC0d9CxkodWlnBiobLDsfkgovwFfDyWcCLAHFDwOeqM= -github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2/go.mod h1:b+BhQ4WcXe/J7OgpdEJKJpt144Hr6YnVV8qHloDxlb4= -github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2 h1:GxB8QforCn/11fvi/rYOQFCDAuHsenXmLM3dpWXwTxM= -github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2/go.mod h1:a1To+qurpzkA3MCZzjas4bW9Z/L5AAHjIArAxHFtxqY= -github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2 h1:hJFj9I/jRWHD/cnte1ahy9/adxtPaHqeYQQuQbemfvs= -github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2/go.mod h1:xulrffP9hSEvUGxW6YzICDHncE+YOIaqAJQpZ4oa1lo= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2 h1:8xrHwm/q2zoZaHjzeOWtzw/E9VTL9UMVCNfFc81E+XY= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2/go.mod h1:h5enb9YgyDSRi4uGwhSJ89n3iTr32JH71pSkS9T2llI= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2 h1:dspHd8Y7ffue8F5h6mUICnQfmzo4onTgB6tzzWtw10o= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2/go.mod h1:Jw4CASgF23Mj7I5kYvmySYhA0coJ/XFPowiZzDO/ntI= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2 h1:vQVDN6g9IHPhz1PnHtKXU9u3f9FPPEbhwZwM8RY3h40= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2/go.mod h1:H6L0gPktke/eXLdmWAmSEtqCvnScGR4n1bCEECxUcPg= -github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2 h1:8Ih+i9qVSZhy24+rt7HfNCbf+/mxCPw1/A4A8rHYES0= -github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2/go.mod h1:Qy3rMJB0ubAZERN7lLz8LFvZsDu3lky1FxgRi9YL1Wo= -github.com/aws/aws-sdk-go-v2/service/connect v1.110.2 h1:9tk/SM2kwCKEKOlmbJ5bNIVMkaz+mMGVGTgXeQghak4= -github.com/aws/aws-sdk-go-v2/service/connect v1.110.2/go.mod h1:CABcU+S/c+FYiialvtOkvmLJGZ74uvmBT4d+Vu3hxZw= -github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2 h1:V4EupRu/r0xIBu5dFA+9UAOjujrLFvN2f5/K9ja4Zwo= -github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2/go.mod h1:cOWYemFX/adFqPqtub/azuIRvwdY0R0LJGTkr1QIZ24= -github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2 h1:HYbZn+59oaC5a2gtEyYVVu5uE7NF+Q0xKl5Hf923tyc= -github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2/go.mod h1:+ZBJWyjkDJLcEzwXvItgNY5J6XSEG82TfsJuQl8+y2k= -github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2 h1:r6/2EyG4s1wNJuwEGhoOxIDuRicYLnqVy2zLs9dYaHE= -github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2/go.mod h1:gg0SRV/oMpd3Epnr40hfHHKblepwtJGzS+72d6dbjyc= -github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2 h1:O5mVjesPu7pTGZ3YGnM9ci2q3RDqVHqSEFV1lXV5WUI= -github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2/go.mod h1:a6/GpE3Tnm014bqLO0PJBvtccOwFxkASInd5v1cgzjo= -github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2 h1:O2tJDak9XN63z2RVQ/def1piFxfFjLMWDnjIz10Nux0= -github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2/go.mod h1:98sA/x6XAINQV0JybTCFYsipvRH4gd3nt+6SX553bLc= -github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2 h1:c8SRhxg5DKHKz7UIxrnrdOG2yzGQBSvNTmhYQ+eaZbk= -github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2/go.mod h1:PGsGLSh2E+/V+vXuyZK4EGn3j4k3A2ay49OIMLlk2ic= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2 h1:qMiJOf28L1TYZAZn+4o7F27KfVloNXUa9vMlfxo4UYo= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2/go.mod h1:7//pcdOHw+SewAiqsofkc7si3bJfsl1EhtSGjCxxI0o= -github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2 h1:u4Ny9A0HLKHFeBt9rYiVZ0nHxcplzDnR6CNkMYIrUHA= -github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2/go.mod h1:tYuM9WbCxwDPSrlOOxOxpG0RvcJDTvKTNjSlRyaKO40= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2 h1:hXiU2BckS+CKc3QUAnZ98lSEnOW7juLM3USB7/p9KGA= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2/go.mod h1:NOXKjiu5OAr05igIT/wuz1MIQ3cI37tifjg/FGjuaeM= -github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2 h1:Gwm2+0y1yRX8fZ7damn57Q1VIsEbx//nsOyjsO2lqd0= -github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2/go.mod h1:sEUC0WRnhTZ6S41N8IpQ8STEa80EVGEgumpJiR+delY= -github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2 h1:ayOsQkEi3Hh/VdX3cB+W1kKWnSDLxkwAjSsgLMac0uI= -github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2/go.mod h1:LNhV00Ei0xWhWGWfJFclgz53gSvzuPryJP87tr3LQ1o= -github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2 h1:pnhsTeEQJmwEk5yDhfczBs8YNaqYLwnNQNrPoMvrJAY= -github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2/go.mod h1:SlNgA1JM4jSr3/yRQU9ryDmT9FU7JeeK6ILFzsGV6bM= -github.com/aws/aws-sdk-go-v2/service/dax v1.22.2 h1:h9DT0c01BDK+ATs60ch20ZRc61w1qlxuzCMzfiItvvg= -github.com/aws/aws-sdk-go-v2/service/dax v1.22.2/go.mod h1:oY7CKPoSGkh13xaargIiUD8/Ezbk9FN9wedIWhiB72E= -github.com/aws/aws-sdk-go-v2/service/detective v1.30.2 h1:6V7GrOIzGDzEHoJLyCssh8cANwIDzkKlgaoJxP9EiPM= -github.com/aws/aws-sdk-go-v2/service/detective v1.30.2/go.mod h1:5RGRM71hnAB5+c2RVcWB1FGFcbIXMo00FkJERKWUu2U= -github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2 h1:VxMXsmXGpbV2PQFYq6AvnjrD0G4GdKXkRkZZtWkklvE= -github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2/go.mod h1:ymTXw3f+6xV04ccW8uq/XB0iHmCDzmZDj6VcbfLT+ic= -github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2 h1:W70w0qn9o4b4hu0Uj3SNnltoQhmNe0diAOdtF1q0PmQ= -github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2/go.mod h1:g/iaynRT4qx6SEtQJebsHCiHHhKbQQ5bkkkCTrTFaxI= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2 h1:YqKD6Fdm6ABH5Qkdu7rtRK9Py2qvNpfCJSw1Avuf3nw= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2/go.mod h1:CKVqICst9G2B/0ODGmhPNyscYTLRHmaBOrf+UAA1DSs= -github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2 h1:tNsl73HF+/IlQyEzqlFUy2Ij9SC1cy88Jrh0HxAeSjw= -github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2/go.mod h1:bNW2LsxPe8qmf9jrD/0pxAQgFxQb+2+9L2qSbHxzpy4= -github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2 h1:CP480z7cKWFBOAtbZVYVzt/T9CU5uDZhY0w8KHLr6FQ= -github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2/go.mod h1:KcUkBzkOmsrvTKoL3ocIRkZ6vDWt+3PIQcIcX9ISaD4= -github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2 h1:nOB7tXBIGv4Vmxk2NmZflZtm1MbwI5TyMoJ4zVWsUqw= -github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2/go.mod h1:0zhD3ZeCDO6B+uXcjrmEvN/LfHPWaGfaEzvDLRoX8kI= -github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2 h1:C7Y2FT7M9gC7jV9CMuuEFxRiEhsvuGaNLvhRykxUAx0= -github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2/go.mod h1:e2B1Twznjqz+KBGxfd6CA1RHURfq3ZgqWTfYQ1+iWUA= -github.com/aws/aws-sdk-go-v2/service/drs v1.29.2 h1:4gZRJWOFt3mLDn8ufotsqjNJsRoDKRsX5HpiI44M5pg= -github.com/aws/aws-sdk-go-v2/service/drs v1.29.2/go.mod h1:zirOznRrHBraFOQVYrN160wv6/VQ2mfY/3KYsbuMsrA= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2 h1:EGvR8KwbxUXEUCS4HAgSRcxeFT1/0bqvS5tRR0WZSbM= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2/go.mod h1:k5XW8MoMxsNZ20RJmsokakvENUwQyjv69R9GqrI4xdQ= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1 h1:TwFjSwRn1kR1i1qeq5cQBRwRaZ80JQS8BHsJTb6QBk8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1/go.mod h1:W6sNzs5T4VpZn1Vy+FMKw8s24vt5k6zPJXcNOK0asBo= -github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2 h1:bVNvja4oEB7v+VL1yP46hWthCPp+KYpZBLS2AifM5PY= -github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2/go.mod h1:oRaGEExKI6Pqcow+Tt7wpJf73/Srcj/CUJv5Eb9QFhg= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2 h1:nm24ndpFJU6+FBzb+kU2Kp9KEPnvFkIZJbL2sgGa7rA= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2/go.mod h1:wtQIcTA5qkJq7k+Dx/jdDp+UZ/CU8uatz5K5LgB7QB4= -github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2 h1:mC8vCpzGYi87z5Ot+LcIU7rpabkX88os9ZvtelIhHu0= -github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2/go.mod h1:/IMvyX4u5s4Ed0kzD+vWdPK92zm/q4CN1afJeDCsdhE= -github.com/aws/aws-sdk-go-v2/service/efs v1.32.2 h1:jgSutXkS0xwU62CAVaougzdEY363D3UVRfPOsAOWaW8= -github.com/aws/aws-sdk-go-v2/service/efs v1.32.2/go.mod h1:OjGU4D2nV44fe4FnNVY+6rgJVEGhzmVMG3YRhkfNA7U= -github.com/aws/aws-sdk-go-v2/service/eks v1.49.2 h1:N/4hhlXrBeFbbx1kIidPtJQt1/08HTzYIy4JSGlNn04= -github.com/aws/aws-sdk-go-v2/service/eks v1.49.2/go.mod h1:QUjwO93Ri00egMAeWw75dviZBM5pECLx0KNeNaBtTIM= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2 h1:NjhUOnSCE17kKi5o8trsL5oKPebdHcUvTld1joRnDTg= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2/go.mod h1:EaaOoWGtdLYKuknbTnluNoN+qUUl6uZ6I7+Uwww9nBg= -github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2 h1:L7FqD7vLkCC8kBgUQAW1+iNmQUYzhu3rkD5vz1eaBDk= -github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2/go.mod h1:5NAic1sOc8jQJPkxyt3yp57hpQVp41Wh9fDnmKexj7s= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2 h1:xgMgiJdDb+pxxHut+coSQSrNIlrQ3/ehO+E42zH5JB0= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2/go.mod h1:A6rhNF3Qz6pn97WX3DcIK7g6ODOCYR7t698ptify9eM= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2 h1:0pVeGkp7MqM3k3Il75hA6xI2USdkjaUv58SXJwvFIGY= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2/go.mod h1:V/sx2Ja18AlrvTGQsilx8CAH0CPm+hpKdT9RbSpceik= -github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2 h1:U11UxWxiYcBjqDt+vARGrVVDbTROK+M+tRWl1HJVgZQ= -github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2/go.mod h1:SBlM+nGd+apEfj1alZOfCD1R0eRu1l07aPLE07NmcIQ= -github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2 h1:Z0KkEOOXTtNLtBdgDh/kjadJvLqb1O1ujmc3IlkE5ZM= -github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2/go.mod h1:Ty/I9/hKvlG+mrhNjtzibl3z18CKrWQ3t2NqGiMNJ/Q= -github.com/aws/aws-sdk-go-v2/service/emr v1.44.2 h1:U+qZclI1u+xnE3a8gFx/5St28IydK1NSo0UacnAg/yo= -github.com/aws/aws-sdk-go-v2/service/emr v1.44.2/go.mod h1:W/bmWMpxDqCLQtDv9qGm5xXDNeTj35JaFqLigrdjz4U= -github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2 h1:xTTqt1tv/JZ1EsC/cPNgyocXOUyVs7WP1zaU2a81fqc= -github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2/go.mod h1:a4fGAtF6z0E8s2rbDGH8mSHyvmnqVVldBElSoWTPQ8w= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1 h1:Z6rv0xWUMLnBhiAc7qCj4Lo2UYPyXNuAp0NJ4QjSvXI= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1/go.mod h1:RCopj/EHUg941AYL6ZbDsQmDqGZWOuXn3ramg55pDs4= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2 h1:WJdFogfI9sVFKf/ZIQXZ/0nJtpZeWSW3s/L3SOfL0no= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2/go.mod h1:bcL34EfmexE+PLh2o4oC1VFpP82Ev8p4dL0PqdZ13dE= -github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2 h1:0b33serEdMYMwKT2MpKNgei0gY6FCc8RVyaQA8+GRfE= -github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2/go.mod h1:ENASEjoB/RZ+jFXQfdMk5aHFfMuh1G3bU3BQA4H59ZU= -github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2 h1:xaxJ+gTTaNEfrkNjUzbbDYbwI0D3Tre/+BBnFnpUnyw= -github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2/go.mod h1:dFFKSS/upWYJZNUXvMiPN8x8VRk22t1fvbDchvjRaM0= -github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2 h1:ogxJMxkX2KFVdIGq9WebqlLBxPhloQ9I9BpukHX/R5g= -github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2/go.mod h1:tE+sNCaKv8bbkO+ZC6+pW78XLU/gIR3Cpf1u/bvNijE= -github.com/aws/aws-sdk-go-v2/service/fis v1.29.2 h1:RWiBX+sjEoaiZMTGR5b7HZgoa5zJPY5JK1oyK6swAzE= -github.com/aws/aws-sdk-go-v2/service/fis v1.29.2/go.mod h1:CBgOCLeXvDU74UgYjPYsoE9IlRZGik0i5WjavW0q0QQ= -github.com/aws/aws-sdk-go-v2/service/fms v1.36.2 h1:gpJXmDGkBQ9jLmt4QVntHvoyhxrzVMoxL1pd8EkJsDw= -github.com/aws/aws-sdk-go-v2/service/fms v1.36.2/go.mod h1:cdkaCZeeY4KmtTTmyhNJFMOZMgGjCmjDKT42zz/2Tjg= -github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2 h1:4k/NQnUapNpXQD2tIc6xtJQfOEChdly7YNgArnsk5ZI= -github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2/go.mod h1:2+3MHztdO6eYx1eyJvCxOMxScniOOoH+odXLWWw0FYw= -github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2 h1:uzZJ/ZjjO2QDj8xaDSOaIYXaYyMb28mgJP18inpsg30= -github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2/go.mod h1:WKyK19AJzSX9Zhb5mxqbwSSqiBRFUS3unET8oTBl1CE= -github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2 h1:s/ttSCmIz0Z8ILQisHTSmPH7/B8pxcvWlrtM5eyL5+4= -github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2/go.mod h1:kUOQuvD/VtRlbMe0NyC/iRI1mt7GJis03UJCkpVwXbg= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2 h1:ymB6hgwMyez1TYaJlhZZIPTPXR3SnvtRE0W97ovIis0= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2/go.mod h1:pE+qNlA2dMyRuR9Aa04QjsmJ58olbXpITfoTU31gFjg= -github.com/aws/aws-sdk-go-v2/service/glue v1.99.1 h1:6N7p5ObMgKGvuYlykmQe0w7RT1grVcno76uHpjMYXkM= -github.com/aws/aws-sdk-go-v2/service/glue v1.99.1/go.mod h1:rCyUHLWGaSR9/oQgj2nGKRmPqFwtq3qxL14LkuQdadA= -github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2 h1:sZK/YN+Z87fOzbHETdZh/Xh2tD9hz8kfOenKUCRdZdg= -github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2/go.mod h1:pEIZhxlz2p3+Cy1XhSsaFyY39/B0Nn6oJKpkAJbQDjM= -github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2 h1:g80pJX2ix025iLlDiq0JpbkVZGc5IWrAp3P+e65q03I= -github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2/go.mod h1:1Yw2CINy4NiSVkUlLISuHsgCmJCZbXW/o+6boJqaH3g= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2 h1:VGsu3h9F4fHrtcJ4cpCVWSjdE4qX4S7pZiFnuoYpltk= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2/go.mod h1:sKC0TSEPMD0JJq8lg49fCdlZIk7z0VZ+hHGDZOUPmpM= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2 h1:F7iPMAIiEX5xqUEhbeflkREaforxmuIkobZi9apGFKc= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2/go.mod h1:yL5DOvh8huFx2ZwB9kj20TnZ5DQJjnoCYUkFitas/2k= -github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2 h1:yL7d23FePZ/Q3gjFa0x0P07YAIBQ/O9nwli/WV+2w4I= -github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU= -github.com/aws/aws-sdk-go-v2/service/iam v1.36.2 h1:2/kSYD8hfRU/q1HbgSzZ4PGiDmzDwtPSYgJq4yxF6bs= -github.com/aws/aws-sdk-go-v2/service/iam v1.36.2/go.mod h1:HSvujsK8xeEHMIB18oMXjSfqaN9cVqpo/MtHJIksQRk= -github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2 h1:U+HNs6NYHwbsqaMPBYpZAQQMBB5RCPIChjm60fKQVyQ= -github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2/go.mod h1:zVLejeKzvUdQD69k8ladCxzC7SnlG1EJwJloK21x/QM= -github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2 h1:OZZ1k1dbGtRfCC5ilXnBcvkgzcWTcGhc5zvmsiHpnZ4= -github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2/go.mod h1:ul5oxAUMHtKT2ZZx0uNjbv7pCOao5eUCO8d0Jpi6gQo= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2 h1:d/1zWwXIDc+4YDKrSIVCGprp9l5u+KOyzpoG+2zEdWI= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2/go.mod h1:g+8cFzj/P0kPK+p5zSd6I+MFIk3wWwkadjuiVMYeVoE= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3 h1:W7jyHvnVaMnNAuRp4miA1fwjHwCx3M+o0ADQiqYpy58= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3/go.mod h1:lJHy3hPT0NATCHF+ZbrShk+WFmp0SRF10+zoIPTFRlU= +github.com/aws/aws-sdk-go-v2/service/account v1.20.3 h1:lkuJnJwlCDxV/5cQLr38VSVTFb7O6QfPPcMoqdQMiBk= +github.com/aws/aws-sdk-go-v2/service/account v1.20.3/go.mod h1:7pve48PWWDbBFRZwqJyWGcvbkHpcUBRHtWSkoRMVOnI= +github.com/aws/aws-sdk-go-v2/service/acm v1.29.3 h1:EpXx6a8u5ZnhBuUr9yj8sEQv67jYkC8/TuRvS8TG248= +github.com/aws/aws-sdk-go-v2/service/acm v1.29.3/go.mod h1:pyj5IBRLA+w27gR7KJY/4lSWoP4XOsyOVsXKAMvWE3s= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3 h1:zyilUf52S7oS/jc0Kwsf38UsRdH9MW98kk7/KWQfL+A= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3/go.mod h1:i+aP0us0oDFVPP86a/xf3tR0uqWv/FYdlMGn2DQ4MTk= +github.com/aws/aws-sdk-go-v2/service/amp v1.28.3 h1:0gB+UYQc3awidpH/HkilNhgF+IaPnIIy3SXLWb1U4Tk= +github.com/aws/aws-sdk-go-v2/service/amp v1.28.3/go.mod h1:Kl9aIKyfKh4EbccGaxSa9S+IbWYsqnCBKeY7XVy8Smo= +github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3 h1:lXozHLY6NerIDOwbdfi6E5kcS7jR/Y+2Cz+h42gPosQ= +github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3/go.mod h1:Zoj++3OeG0yMMdxvtSdoWY5U/kUzXC5xWjWz+q9Yk5s= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3 h1:CQ3fmvM+/APKVgqjEnvAaPFI2VYZwcYJp2DSyG9K0T0= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3/go.mod h1:qTYWFp/mdwk7tM8Z0lcFnUUvywmc0GYRmj/4Ko28yQo= +github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3 h1:WZUt0kax46jxtDyvkJuusHIofvy4YsmaUq7fKIh8qHg= +github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3/go.mod h1:y75KawFLMiWESE86a4IwN+iBlxSYT5rpqySlcxQw18c= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3 h1:K8ookTM8fwGCN9EZMPY2eYdvdSPNlH2nrLNdssgf/WI= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3/go.mod h1:zqEdmXsD9qS7hjOMednGrVDu28O8d0VzmYR6eouWYlg= +github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3 h1:vJSZCJ9T4vack52H0XiEvnJDyHCZ8PFn5DHJAB3/pxs= +github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3/go.mod h1:pdRgMYHJfDDeTAw4TI4+EfxelbtA0U1On/PSUPhGz20= +github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3 h1:Hb5zbY/Fglog1bSFS1/Sdxz6ofvGEfriO1rM9ncRMbY= +github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3/go.mod h1:7GrCW+K/o84aiTvG0/Ay/UCAiwjkonvuGvnFBFpJITo= +github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3 h1:dFSvmre+fpn6l7Qp/fGvFw5f0qPe+8Wz0iz02/Hcg/M= +github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3/go.mod h1:AqxcYxSdMO1ZSB3d10Eozc1RfKfYjrn0K1nIsjaYJ+Q= +github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3 h1:cZxQfaZGUi1f92prYUimzy+eHX4d/RhrkFu641ec8UY= +github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3/go.mod h1:tPjL3WDvnky54nGINDJmP6byRAbQiIpdLbT6gnZq4nQ= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4 h1:cJ28u3JtAfnXGGbHeKmOD87/+2rIYpI0DIlnbyQuTUE= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4/go.mod h1:lIGEkWgdZrjtZyPQ1XMjYfFCWafpP7F30Rdz+wevQIg= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3 h1:Rksa6rqOO+F0qgm49Pwz/QDaKD7R8KpkKEa7kUWRccE= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3/go.mod h1:Q5/Cw6jsfPipidwxebx1bAwPCOzORVyGU0POTe//8XM= +github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3 h1:quo29EEIlgHo/byYxcLJr2yjUKimPIHjAsA76J5qzaM= +github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3/go.mod h1:EFX0QOb5sy2bc7qLrCtaWBCAphAsF2H7q6vzTklMXds= +github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3 h1:hdQfWnxHMrpklcOrO/JY4elSBoZUJyHSyNp1fO+xIJ0= +github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3/go.mod h1:6VHD8l7WdVP6s6haYvfXpO632tCCvKI9etO9sbwSBOs= +github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0 h1:RN3oDNLc+MLc33AudwZOQW6mPzo8PJJPGMfZ0UBon0E= +github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0/go.mod h1:swGQlfkXcvKPFgrRJINANYvHb2u+NH88mPyhvNqU2Pw= +github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3 h1:9Q0TQPkEvQL7gq3lzdEEFOpuLwTP/DmRNmGUI8uH3Xs= +github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3/go.mod h1:MWfGPdl5m3phNVRgLU3fIgPnzTgrFwONX/T8/DK6eoE= +github.com/aws/aws-sdk-go-v2/service/athena v1.46.2 h1:Lno9/wGrQ3BWQG9CU6s+rAEPavX7/4+VMnaYIqF6wzU= +github.com/aws/aws-sdk-go-v2/service/athena v1.46.2/go.mod h1:BPy6WfKKUTQhO6hVCyImd1I0ejlngPaCu1zU0vZ1vPQ= +github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3 h1:zcbtydSmMftqwVPGEzD5WH6ESr+ZRpQCBWmjXEr2RVE= +github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3/go.mod h1:auTo9OWA6W4naXZIKjBZPeUdYe/5idHL7r/+6zgbbFo= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3 h1:uW81sdnq9hfg2hSnVqAFp+mMmu4Y86dU/bE9ET2LCIg= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3/go.mod h1:Gmv7s//GGvs3nj9aqltFYnLStW8vDIwch0USkE67G4E= +github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3 h1:OeUVFdmreRQwxSQKdFUoT8QkRD2T3eqc23CWy8ir5Y8= +github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3/go.mod h1:IXXoIU2PoQd+uUpu1qzC+tcyWpaJBLlX3bQTvaxO6Fo= +github.com/aws/aws-sdk-go-v2/service/backup v1.38.3 h1:y3LjRnYKdd5SsKbnRRZ6F1INZIaLWzhH/5idmMj6tOY= +github.com/aws/aws-sdk-go-v2/service/backup v1.38.3/go.mod h1:MWWsaecE5EujYI9tD9+yeDmKcPTkfrBhS9TPX5EYIEI= +github.com/aws/aws-sdk-go-v2/service/batch v1.45.3 h1:Plkj8D6d4ZsXk0ey5aYpMN+FKbHk6KIc6jkQTwK3R2Q= +github.com/aws/aws-sdk-go-v2/service/batch v1.45.3/go.mod h1:z9GrSORElTuTG+rLKbQMAKi/QJeZIlaSx2c1PWO54ok= +github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3 h1:R+YaeuVridqw1WRfniCmind9QYG93yRxujMsEBM8Owo= +github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3/go.mod h1:DsvYjYqN9EHrL68hc7RYYImI68BeyMdku8+8rm+AeUk= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3 h1:Vvt/nx7WHFw9OI8xXccwpTX9EsNRNqlKo/m8WpSOyo4= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3/go.mod h1:zr1Em8iRwo+9WWUsfYSR9ugG0TFR2hMDaZYqMLH7f2U= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0 h1:7X7oygts3+nwC98k5o9n7VY/yHdgV0nd4E+ztK1kPIw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0/go.mod h1:TWgiTaFOEPO4WmONX+kASPCHobxtLGPjQyT80mPOvSE= +github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2 h1:MNUX/fmzSzeljLt3ROAXZ1i/fVinvUEXglOfG7fqgRs= +github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2/go.mod h1:VPYBTW5go5v/QIeXzhkv51xoj5pRpIIlWe8NCdHFfbA= +github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1 h1:jTIPOfSD/EIF/hG6Zfm480OxTD9QsQLY+avVojlbJIo= +github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0= +github.com/aws/aws-sdk-go-v2/service/chime v1.33.3 h1:gdGlQvXnxY+tV3efSI1TVn7rYmVZ7LkHqsvXMwGlAZ4= +github.com/aws/aws-sdk-go-v2/service/chime v1.33.3/go.mod h1:xyUd00h8t5+bu5qN+XDjeA2U5O2sWSH69lphLQWNCec= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3 h1:mFa2M1T9N5m6Q6TifzLDE+ApljS9nDbIynO455yXUb4= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3/go.mod h1:CGXRUn9razUClMrT0ztmaPeAtQJjBuewiZ0htkSlj1k= +github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3 h1:DtIf6iBWSXKhUNEbp2ci3d7ifblDzfqag4skvFj051k= +github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3/go.mod h1:Y1Sv53bccpWBNWIw6+29DEztSouqq/u/S6S/lPqI9/A= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3 h1:utYffKY8Qvi8UrqR+1R7d6Izr927gBJN6o2TvD4+3Xc= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3/go.mod h1:iX55GDn2lL2pthAp3k3lNpsRfFdfNpvYlHHqu8GQKT0= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3 h1:4aY1KcXXr6U5rymteaeBmEq0EUqvKBKX2Ak3+ktXlZU= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3/go.mod h1:R6qoyNSjchvHZZrUVpMwqjqOuDNCdk9qoI9IagO02xg= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3 h1:IFtYl/PxIbuaVfWthDc7XbrGcAwluxtOzun7l+O2Quk= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3 h1:kVbtKOK6sNCqPsXE/7xN93pD090XETITuBNHrrPQsvk= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3 h1:aQZZ0TyYuZVAWBWoTsL4QxLIak/IgBq+7w7Y7Udv6yE= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3/go.mod h1:cShu4+4PIZJ5nvMI+NEcItwVjMxQV0SGMYMMOLN5FME= +github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3 h1:CIAvV7WjBvUYIw9r99kRN2oupcWqjnSe5ozIyUzBt1k= +github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3/go.mod h1:MDEsRSicvgQweiN8hbGErk583wyHZkOlbc4BfKhSi3U= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3 h1:mhRcyc9+n/uFNq/5eZ90gnNbysUMj4YuTyosUKrdULw= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3/go.mod h1:Xt7hXQe1EeZQ5J0efi7SS12CN5otGyTS5IFnWCIK6cg= +github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3 h1:MXZTv/K9jj0AAITSj/xenPZd1VW2L3L7VrCcfeJedlY= +github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3/go.mod h1:0ZqrezjT/L6ruxNur0O+LcXVIiPPGpfhfGy3FNokiuU= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3 h1:stQcRph9IKChCONQNNdcHuqrkH5IZJoaxoz0s/CrehA= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3/go.mod h1:ODEcuhq+MDaWP9fpgCPcYMKE12pyK5g5W2U0z0nHEiI= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3 h1:U84egbTwR/yYqxyOANV1A9veOz6ZbgEJAN0S2QYDlvo= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3/go.mod h1:TqMW1vaXXczuV0O1Wk+8+IZZQg7VusHNmTeJzNz6PK4= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3 h1:s4rC9SWlq5hh6EDe+90LNkHuNQ6LOWZ2/7F2GaeOjaA= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3/go.mod h1:3p7NzlLlJesNGovq7Vqx8+0UibawzodrBRQAbaza6pI= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0 h1:ir0X7Amjo+dd1mCvBhEMS/rKKzJUCFLbV0SWkMdqHo4= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0/go.mod h1:7QKOwF4gC/ELkHuKTnVr/zGuQpJgdcIfFO3ph9TZbS8= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3 h1:5/lz4sGdygGJ2+gw24JOFtRdAocXbsKpK1aqyD1xJLk= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3/go.mod h1:gSVnRPxjJD21L+rU0ovZxs6rn0bigG5Rvthy3EDNlMc= +github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3 h1:f9VAnF3ZTG3s9P75uQ9nGvJlKPXO+KyEzTf7wJcPxvI= +github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3/go.mod h1:OCGGMVnFTtz8ndbULEt/0schZMYbkrEv4kd3DY0OG24= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3 h1:p6abLw9hZfZn2L2sQo2pBu2nsbUs3c43fLQg2aRmRfo= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3/go.mod h1:u7i817xe1zuglUic23rNGtTrOUUsBXu7Eta7qT2LuVY= +github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3 h1:gD0tVrj1uJXPRrw0XKbOCfh2yCTPZV2vOT3k7jcK7x0= +github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3/go.mod h1:tFuhSKT1n7eljVQM3cRoWIy1dEBAD6FsWMZz+qhWFBM= +github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3 h1:4IIGYBytia/bbrHUdodrgEgDO83/5nfFp591rsotKqo= +github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3/go.mod h1:JbkzZ7jxnq5In2Vli4KSBwa3SQBYsEljXnU9sLYV7i8= +github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3 h1:GJ8p2OR8wdvfHv/+4bnATNSGrDwCuSZb2UO/JFzI7fE= +github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3/go.mod h1:Mhqj7N/UgBmGSH3WovRSc3SjAPyrtuGcA/+neISmIW0= +github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3 h1:mn9YR5k9+eguJ7mkTWgo6zQanw/oFWhQTkH8SofJScY= +github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3/go.mod h1:i4H+MjU3upyb6ZsA+Pn0gCxF3UZHK+UkfZbC+li1q+o= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3 h1:89/ZuJDR37mdsxy4WqVdMOq2MnLY/7gWvSZlfM+cXus= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3/go.mod h1:y7TM6E4TCD8+x50VnNbAH3gwGvTu8zR4zTKdwdm4XqQ= +github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3 h1:Ut1dU7D7fvwqurAgp+qwKL71Yq7io5ZVzpuNx0cYK7Y= +github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3/go.mod h1:b+BhQ4WcXe/J7OgpdEJKJpt144Hr6YnVV8qHloDxlb4= +github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3 h1:MbemCKKsBgFDKKgKVdTKT8i+Z7sh5LRNObqVy6+AiKs= +github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3/go.mod h1:a1To+qurpzkA3MCZzjas4bW9Z/L5AAHjIArAxHFtxqY= +github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3 h1:lHoc63BbtOfngsrW4yPRwWBmk1vX+uRYJ9W/dV08qsQ= +github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3/go.mod h1:xulrffP9hSEvUGxW6YzICDHncE+YOIaqAJQpZ4oa1lo= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3 h1:MGNJDvz+5wf1CeBNvdmm2Fs1VEtppI07OqxQkOAtVVg= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3/go.mod h1:h5enb9YgyDSRi4uGwhSJ89n3iTr32JH71pSkS9T2llI= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3 h1:q+IKPIK+M0WdxPoVWwSgFXR3FEqmwOw4wMPk1NZ2qzg= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3/go.mod h1:Jw4CASgF23Mj7I5kYvmySYhA0coJ/XFPowiZzDO/ntI= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3 h1:k4lPbaiuNfyxr/sToEv0q1o33KIwwnvz18Bl8F/EyQM= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3/go.mod h1:H6L0gPktke/eXLdmWAmSEtqCvnScGR4n1bCEECxUcPg= +github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3 h1:zTd2HAD0LHfgN7WGlXW56gJ0bzQwJLd9BzucyGIrKnQ= +github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3/go.mod h1:Qy3rMJB0ubAZERN7lLz8LFvZsDu3lky1FxgRi9YL1Wo= +github.com/aws/aws-sdk-go-v2/service/connect v1.111.0 h1:T+s3aFKVdSRj5Ad92gI3OaohBed4zQNazhS2HSliaiY= +github.com/aws/aws-sdk-go-v2/service/connect v1.111.0/go.mod h1:CABcU+S/c+FYiialvtOkvmLJGZ74uvmBT4d+Vu3hxZw= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3 h1:HFciX3uRLw96suvujv1xk82FGhjzLW9FpowWcSk9PfM= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3/go.mod h1:cOWYemFX/adFqPqtub/azuIRvwdY0R0LJGTkr1QIZ24= +github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3 h1:2SbppUDwLQ7aM3tqDYd3Nltry5xPozS9doMets/EzYI= +github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3/go.mod h1:+ZBJWyjkDJLcEzwXvItgNY5J6XSEG82TfsJuQl8+y2k= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3 h1:51dRfa10omfyEVC3XogedJqJYt9Dt1Oygjnxeg+pq3U= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3/go.mod h1:gg0SRV/oMpd3Epnr40hfHHKblepwtJGzS+72d6dbjyc= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3 h1:pLy3ofItGWxwzthH0kd/dDuL0lkxE06lKJRgmz4gf+o= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3/go.mod h1:a6/GpE3Tnm014bqLO0PJBvtccOwFxkASInd5v1cgzjo= +github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3 h1:QJQcBquWmyvX5Dl4AYhTKoB4x4rxURYwSIIcnPs0VQU= +github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3/go.mod h1:98sA/x6XAINQV0JybTCFYsipvRH4gd3nt+6SX553bLc= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0 h1:6X7B4sJUkJN6yzyqy5E3azFVbnBNDmnaOl6xtO4CoeE= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0/go.mod h1:PGsGLSh2E+/V+vXuyZK4EGn3j4k3A2ay49OIMLlk2ic= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3 h1:DIMFOTjWiWtfRrSkdGKLBrv50/wiiFsTS9Vx/n5RbL4= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3/go.mod h1:7//pcdOHw+SewAiqsofkc7si3bJfsl1EhtSGjCxxI0o= +github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3 h1:SgM28f6nKxNHAL9xRtUSzeP+7x9qx8qWwLektsbJWsA= +github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3/go.mod h1:tYuM9WbCxwDPSrlOOxOxpG0RvcJDTvKTNjSlRyaKO40= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3 h1:bgJ/ykaWQKMf7ZPUjUOPXA5FVSyktJrzDKyQO9tx9IM= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3/go.mod h1:NOXKjiu5OAr05igIT/wuz1MIQ3cI37tifjg/FGjuaeM= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3 h1:THh/LDEk5GzmENybrwdNlKwEX4z2WpDC+Wc40EcTwXQ= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3/go.mod h1:sEUC0WRnhTZ6S41N8IpQ8STEa80EVGEgumpJiR+delY= +github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3 h1:R0IG0+uM/DFvsRLvIE1xXgW+8dLDu1vpN33qnNVO2GQ= +github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3/go.mod h1:LNhV00Ei0xWhWGWfJFclgz53gSvzuPryJP87tr3LQ1o= +github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3 h1:+lutCULtTzyJ+/U9gaG1De7OQMPSrJp9nH6fzd6Vits= +github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3/go.mod h1:SlNgA1JM4jSr3/yRQU9ryDmT9FU7JeeK6ILFzsGV6bM= +github.com/aws/aws-sdk-go-v2/service/dax v1.22.3 h1:BRY/vFv4ZG0xFfi8jLLooQgKqf5v81zP8doepHJ1hOs= +github.com/aws/aws-sdk-go-v2/service/dax v1.22.3/go.mod h1:oY7CKPoSGkh13xaargIiUD8/Ezbk9FN9wedIWhiB72E= +github.com/aws/aws-sdk-go-v2/service/detective v1.30.3 h1:VkNCM2i/dviH/Yevu+PR3BGws8IlAUaO6zuG7nXZr58= +github.com/aws/aws-sdk-go-v2/service/detective v1.30.3/go.mod h1:5RGRM71hnAB5+c2RVcWB1FGFcbIXMo00FkJERKWUu2U= +github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3 h1:qDjD34kQe2PArb3YcvBFuBz8UYWVX5ZoQOyFiDtERTg= +github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3/go.mod h1:ymTXw3f+6xV04ccW8uq/XB0iHmCDzmZDj6VcbfLT+ic= +github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3 h1:fwp3xIXX8pDff/la2x3tHyFjG6/A6sYxYHuNHbkZm0s= +github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3/go.mod h1:g/iaynRT4qx6SEtQJebsHCiHHhKbQQ5bkkkCTrTFaxI= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3 h1:vX4dOcR07YcasVGPOBJ9wEuftNGIzjFq/3yX8pVfFno= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3/go.mod h1:CKVqICst9G2B/0ODGmhPNyscYTLRHmaBOrf+UAA1DSs= +github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3 h1:nxOWDwPYB0wbmLPTb/t/q4fXxZR3SF4LGGT475LEyRw= +github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3/go.mod h1:bNW2LsxPe8qmf9jrD/0pxAQgFxQb+2+9L2qSbHxzpy4= +github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3 h1:ySRXnDPfPej2Wjs6RQZD3uWe7dM3Uoa/tQHVeedpjzA= +github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3/go.mod h1:KcUkBzkOmsrvTKoL3ocIRkZ6vDWt+3PIQcIcX9ISaD4= +github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3 h1:Od3D9HOPXeqFi/fOd7+vNNXsoq9jhflx4HHBmok9hFo= +github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3/go.mod h1:0zhD3ZeCDO6B+uXcjrmEvN/LfHPWaGfaEzvDLRoX8kI= +github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3 h1:2wE9fa1s4wLfzr8SicESPlxntu4avdDNTHqNhVwCDdk= +github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3/go.mod h1:e2B1Twznjqz+KBGxfd6CA1RHURfq3ZgqWTfYQ1+iWUA= +github.com/aws/aws-sdk-go-v2/service/drs v1.29.3 h1:dhqymjhKBqYjYFO15OFHKDvmRtNhwiFnu4w+X14DJNU= +github.com/aws/aws-sdk-go-v2/service/drs v1.29.3/go.mod h1:zirOznRrHBraFOQVYrN160wv6/VQ2mfY/3KYsbuMsrA= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3 h1:X4iS+RcIKHkAMQz47nDt/nHxZUCKdnfgw940yluJ29Q= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3/go.mod h1:k5XW8MoMxsNZ20RJmsokakvENUwQyjv69R9GqrI4xdQ= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2 h1:rGBv2N0zWvNTKnxOfbBH4mNM8WMdDNkaxdqtz152G40= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2/go.mod h1:W6sNzs5T4VpZn1Vy+FMKw8s24vt5k6zPJXcNOK0asBo= +github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3 h1:8/vARxqd0Pn2Gqhp+8PxxTm3HttUMR1i1vBBj7MNFfc= +github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3/go.mod h1:oRaGEExKI6Pqcow+Tt7wpJf73/Srcj/CUJv5Eb9QFhg= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3 h1:banT9rlPxyfuirbcaMvLk8R/89ffGFesFkxBqA7MkPw= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3/go.mod h1:wtQIcTA5qkJq7k+Dx/jdDp+UZ/CU8uatz5K5LgB7QB4= +github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3 h1:BVItlUrorHr7lLLxWKFUVXxwht6IVVqLTQLGc6YLB6U= +github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3/go.mod h1:/IMvyX4u5s4Ed0kzD+vWdPK92zm/q4CN1afJeDCsdhE= +github.com/aws/aws-sdk-go-v2/service/efs v1.32.3 h1:AAYRq28CnLrjq6bN0cYwyOE/mVuSk/mXYJqRYCKZAvw= +github.com/aws/aws-sdk-go-v2/service/efs v1.32.3/go.mod h1:OjGU4D2nV44fe4FnNVY+6rgJVEGhzmVMG3YRhkfNA7U= +github.com/aws/aws-sdk-go-v2/service/eks v1.49.3 h1:4Aq01bwq1RnyMLAgx/6kB8cqvfLlQet5cWY3MVhlsqU= +github.com/aws/aws-sdk-go-v2/service/eks v1.49.3/go.mod h1:QUjwO93Ri00egMAeWw75dviZBM5pECLx0KNeNaBtTIM= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3 h1:hYP4kYiY2RQ8QDXBkIe9xD6B/fDTlGV3inxusAmpXzQ= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3/go.mod h1:EaaOoWGtdLYKuknbTnluNoN+qUUl6uZ6I7+Uwww9nBg= +github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3 h1:u4YVoPfmORU3j7wVMvXAPrYbiK8RALFVe78sXyZGM80= +github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3/go.mod h1:5NAic1sOc8jQJPkxyt3yp57hpQVp41Wh9fDnmKexj7s= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3 h1:6GwGMmJD+KxJ11vqvKX2jtcyfvurkp33SVp6OxYrIJg= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3/go.mod h1:A6rhNF3Qz6pn97WX3DcIK7g6ODOCYR7t698ptify9eM= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3 h1:Tcyl8egpRWLz/ch9Pmn4kX75WsleGmnq+Kro9IqU3wA= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3/go.mod h1:V/sx2Ja18AlrvTGQsilx8CAH0CPm+hpKdT9RbSpceik= +github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3 h1:r0S/+4Jj46FVz8rv5SMCIl7TR08jGllS8L/J5efJWEg= +github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3/go.mod h1:SBlM+nGd+apEfj1alZOfCD1R0eRu1l07aPLE07NmcIQ= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3 h1:+SEZ0N5I5W8Mw64Kx7KyHWWV7I0zwvraGvRYpJrk1Xs= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3/go.mod h1:Ty/I9/hKvlG+mrhNjtzibl3z18CKrWQ3t2NqGiMNJ/Q= +github.com/aws/aws-sdk-go-v2/service/emr v1.44.3 h1:gGf9bo9fY6U/yoMw3V5mv6yoApcQP1JWvJvWNWCCwNw= +github.com/aws/aws-sdk-go-v2/service/emr v1.44.3/go.mod h1:W/bmWMpxDqCLQtDv9qGm5xXDNeTj35JaFqLigrdjz4U= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3 h1:HKZkdRR5+FqanzlVktM7zeH3y/qnZTmM45ALd7U+EGg= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3/go.mod h1:a4fGAtF6z0E8s2rbDGH8mSHyvmnqVVldBElSoWTPQ8w= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2 h1:owlEyc4JbbpwVEoKUh4MiZYuU1U3Ztk8buGGi3nQSrg= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2/go.mod h1:RCopj/EHUg941AYL6ZbDsQmDqGZWOuXn3ramg55pDs4= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3 h1:voc3mmh8nP2y+XobELnq5ge7Om5FFJQ93AnTUTMwgUQ= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3/go.mod h1:bcL34EfmexE+PLh2o4oC1VFpP82Ev8p4dL0PqdZ13dE= +github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3 h1:s8t9sqBMdlsQzLW0rd1ZRBppllw6PSNPa/h0vyvQRIs= +github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3/go.mod h1:ENASEjoB/RZ+jFXQfdMk5aHFfMuh1G3bU3BQA4H59ZU= +github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3 h1:VH9nM8gmGq5TWhWoPyqyLz6e6C19zHHkbJCYEfK9IuE= +github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3/go.mod h1:dFFKSS/upWYJZNUXvMiPN8x8VRk22t1fvbDchvjRaM0= +github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4 h1:Nb4mCJj7sR+G8gGPSc78S6WS3v66p4zSTUjIBbH1BcQ= +github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4/go.mod h1:tE+sNCaKv8bbkO+ZC6+pW78XLU/gIR3Cpf1u/bvNijE= +github.com/aws/aws-sdk-go-v2/service/fis v1.29.3 h1:wfyVyzyb0LOc9r85pyvp6X53qNXZWy82F9krGLou3PA= +github.com/aws/aws-sdk-go-v2/service/fis v1.29.3/go.mod h1:CBgOCLeXvDU74UgYjPYsoE9IlRZGik0i5WjavW0q0QQ= +github.com/aws/aws-sdk-go-v2/service/fms v1.36.3 h1:m8WN12Eh++8joQeyOews+XO1rCeVPdF906AP4EWew4g= +github.com/aws/aws-sdk-go-v2/service/fms v1.36.3/go.mod h1:cdkaCZeeY4KmtTTmyhNJFMOZMgGjCmjDKT42zz/2Tjg= +github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3 h1:p0XI4QYg0dcPLxFBb9BaJ52aZhkMOXx6nbZOMzSi1Og= +github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3/go.mod h1:2+3MHztdO6eYx1eyJvCxOMxScniOOoH+odXLWWw0FYw= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3 h1:1h8Uqsm5TuP79LRjvOmr75SeTLrPfxPNd6urGDrzrlM= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3/go.mod h1:WKyK19AJzSX9Zhb5mxqbwSSqiBRFUS3unET8oTBl1CE= +github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3 h1:L7iu5UzYiWHdKFlXI90gr+qcPRtiY33jPTKNCEJnzQ4= +github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3/go.mod h1:kUOQuvD/VtRlbMe0NyC/iRI1mt7GJis03UJCkpVwXbg= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3 h1:OUhdSCTHEReeWbOJ5+MWXZjZXXX8Id6KcdVlHcrR9Lw= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3/go.mod h1:pE+qNlA2dMyRuR9Aa04QjsmJ58olbXpITfoTU31gFjg= +github.com/aws/aws-sdk-go-v2/service/glue v1.99.2 h1:pfX1qky3shRS3rgxkdXKtiNWtMUeGgOEFXEqIdTQYHQ= +github.com/aws/aws-sdk-go-v2/service/glue v1.99.2/go.mod h1:rCyUHLWGaSR9/oQgj2nGKRmPqFwtq3qxL14LkuQdadA= +github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3 h1:2/jLJmTA06htUHu4jp/mVOMxTq68TrBTe8Kd/p5p/rU= +github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3/go.mod h1:pEIZhxlz2p3+Cy1XhSsaFyY39/B0Nn6oJKpkAJbQDjM= +github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3 h1:zPdsqYDvtjEuQOO4baVk1zGPEL5p6qYA+o1r5Ny6c1g= +github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3/go.mod h1:1Yw2CINy4NiSVkUlLISuHsgCmJCZbXW/o+6boJqaH3g= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3 h1:3LrS81XzlBG4hYaU7PW6jaeyozdirbpESj5Rkd5Yzok= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3/go.mod h1:sKC0TSEPMD0JJq8lg49fCdlZIk7z0VZ+hHGDZOUPmpM= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3 h1:SVliQHoUcqyDKLSsV8Vv3Muxddhx9Cp3ksk6UUd74VU= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3/go.mod h1:yL5DOvh8huFx2ZwB9kj20TnZ5DQJjnoCYUkFitas/2k= +github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4 h1:iV0uALvQk7BzmmjBt39CNoxXEUp/bH2ugBRuY4GN3AE= +github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU= +github.com/aws/aws-sdk-go-v2/service/iam v1.36.3 h1:dV9iimLEHKYAz2qTi+tGAD9QCnAG2pLD7HUEHB7m4mI= +github.com/aws/aws-sdk-go-v2/service/iam v1.36.3/go.mod h1:HSvujsK8xeEHMIB18oMXjSfqaN9cVqpo/MtHJIksQRk= +github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3 h1:uZY1zrpO4dPsOx4rXCDuqHZWQ6PZAmf3x4SPEu8BTh0= +github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3/go.mod h1:zVLejeKzvUdQD69k8ladCxzC7SnlG1EJwJloK21x/QM= +github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3 h1:m3UccOaEkEyYwpEzA8V6lghSctzN+Qxp30Shp50q4zI= +github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3/go.mod h1:ul5oxAUMHtKT2ZZx0uNjbv7pCOao5eUCO8d0Jpi6gQo= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3 h1:cTqSK//5QDLzoFT8XvMhwCqyhFZGNSKWf+attgy9g58= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3/go.mod h1:g+8cFzj/P0kPK+p5zSd6I+MFIk3wWwkadjuiVMYeVoE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 h1:rTWjG6AvWekO2B1LHeM3ktU7MqyX9rzWQ7hgzneZW7E= @@ -1502,252 +1502,252 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 h1:eb+tFOIl9ZsUe2259/BKPeniKuz4/02zZFH/i4Nf8Rg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18/go.mod h1:GVCC2IJNJTmdlyEsSmofEy7EfJncP7DNnXDzRjJ5Keg= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2 h1:qlsfYX/SODXwbLTHgX8+K5/jDbMXGS3wNK8PHCqln/Q= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2/go.mod h1:fhYvr0B1844Y7QhLRtdmY5GZEbVStCjE+OEhazg61Ds= -github.com/aws/aws-sdk-go-v2/service/iot v1.57.2 h1:8iiMowXwIP4IlpxrAUYnCVCCb74ceUENAaYhMSQh7NY= -github.com/aws/aws-sdk-go-v2/service/iot v1.57.2/go.mod h1:wR4yGYW8QdKpmUJgboGVCW7fRSJI+Vi/20fEFHGNAJQ= -github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2 h1:YrQfNNTQrB0AtURgtHPfpLDspxUrL73mT53uNX+8yhs= -github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2/go.mod h1:R6xw3TxSOa7Mf91pkfRO/Lc6dbm4dNVpq0I4gUlw/Gk= -github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2 h1:A6kKccE7ryBgNBo2LuFT+b7I41ppEeE/PosUT8yA6KQ= -github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2/go.mod h1:dT4/zcoReJEoSpnFkupL6ttAbiFHDI57VgmJedlqTto= -github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2 h1:4NmyIGhs4NjVJ0o1NM5Plzx+qxzjNEEtgb97GqZNZD8= -github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2/go.mod h1:SvoQnCSuFuJNKWla6L0gCBGt2hUybGtpDCnf2gSEgg4= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2 h1:jF9pBVC0g9LGLeMWEAiaONDWTHi/FN+qriSDManGzSM= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2/go.mod h1:WvU5FAvZd/TL3VeVKonRHJ42AFa1oeN5WPbn02YzWzs= -github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2 h1:qvdt0hHHEhyWC2Uglg28ytQfxDfUyRFlodyn8OcnKmc= -github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2/go.mod h1:fBPV+Vh4JdtCtsopwBKCqdma75qcOI8SD+MlJU+teXQ= -github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2 h1:cDhoUatEgYt45UcBviR5XXwzbyUMzMXLPrBezTfqTrY= -github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2/go.mod h1:pI87p/LzCfnek4XorpEPXCsGayU2Ij3MQbgHdQjml6E= -github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2 h1:BLtSnWjYKAG5n9QYtnQkmEQh9MK9vWDdfBEIRnykIBY= -github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2/go.mod h1:uHIz29KElVFQ75jRhky5snAagySv3KcxuJ9eBLvClJQ= -github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2 h1:eN6G1cVOiIADdBBL0UBefXwk+yJoT6UG32VZn/BRmfo= -github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2/go.mod h1:Sset1/AxzSJ8aosURhyLJm804sZ1cBkgdfhGyidqNO4= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1 h1:E3tMyeGMPBdIhQNOVW5Ie+2hlbIB7Gi+NtyAAsSPzeQ= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1/go.mod h1:/D7NWV/jWRxPDDsSySncYt8JT4QHYeqgiR7r2vP2hYw= -github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2 h1:fZiEU6ZhlAkLHC4+t4fC+XMAEL9cyEgohAW8WRBX/Rc= -github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2/go.mod h1:1mXTVF+BxmYnmaQ3Bsvs1AbzT8ghVEPVOhVLlD/h34M= -github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2 h1:N8fRSbzW9W1o1lPJruGJriVup2RAJ5Pd/PaFyBomMms= -github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2/go.mod h1:4td+MQ/pTrH78aGbDs6zUo1MYNzmrmar5f30JqTt7cA= -github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2 h1:mH0snG5LZEfuYekSGDuZUR60eoEH5j89ZPeSJs2EeTc= -github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2/go.mod h1:YtckrYyj5bsqpiEoM9jyJGEouqAvRk1bfxEatQt9H90= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.2 h1:yERi4A+3+9emx/NKSQ5bf0QP7DHCGU0bjv3pxdpDcsg= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.2/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2 h1:idwxi3c6nSjYsD65NGBY1oYx1bezjowlSfx3ixFX64Y= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2/go.mod h1:0A67Mdmp1aQZp74Ef/AoUW11YyNiIxgf8kjjL9JZMxI= -github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2 h1:hJbK0NTh25Z0yOHLKDEdOujHVARc/ukwjntA0t4D08g= -github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4= -github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2 h1:RGnAqxAqh2IfZiqcrY/25VmUP2mPpmRjrKvfSmaJTFo= -github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2/go.mod h1:6I30IIJw5mOeuza9tDHzUEya7ODqKobjjipcLYViouE= -github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2 h1:XgjR5ig4MbjE/l7nQ3s9LS+Pt+c9k760zpx7i3VIYFQ= -github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2/go.mod h1:VnoYFwR2qh8TqfmPPJU/1hiqQNIf2+BVaWGj7J9ofeo= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2 h1:GpX3DjO5oB0no9UCoPzyEipTTR0dst/7MRXCGTBRU5M= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2/go.mod h1:rmal7dltZ/Nj9c5K1QGWNBrwoB3YnsLKpfjudxpbTUM= -github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2 h1:igz9TXmg8FyPxeJ7ESLnZQqNiP7H2Uejaf807YLUHbU= -github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2/go.mod h1:qxdofHNS6n02LO1BPw2gaq3XL+jAtX7bMW00PITkUok= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2 h1:qCiTNsCii5sCJxgEy2LSvQwH8Nnp16GfD4omp2YEpR0= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2/go.mod h1:HM7L3Ylzj/7ZYVNchhnCZaPj8veuI38ICccD2nZI2EQ= -github.com/aws/aws-sdk-go-v2/service/location v1.41.2 h1:PHo1X5haYA94PlncM6xcch7VaEnXQVOUBXdMrRo5VHQ= -github.com/aws/aws-sdk-go-v2/service/location v1.41.2/go.mod h1:yGvyLPsBAqpvDlLUvqwPOVF20gthq6Ru5hs4lzeR5zU= -github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2 h1:irt4gNywc4e6jT/D3HKh734jKfaCnRuBZQKlpaKCrb8= -github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2/go.mod h1:0Pewvf6+Pl1Qr4liKIX/C58YjNuat0VflkuYIfuWYqw= -github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2 h1:BKuRyfP+a8GgkwchTd4F59c7F9GUMw1DnPkNV0Ce1R4= -github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2/go.mod h1:MPskeCQ+fYztgr925XPpzu7b6BQHyQ57CKy1Txkqkuo= -github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2 h1:NITbVOK+qRiCRNnjJOHIFdLqmuHRJf93thpe5n3WnUM= -github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2/go.mod h1:04Rw979+FKHKrfAUZsHHh/qY1RspKfu2bm8wEj6jhmg= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2 h1:elOmUt0D3hyycnbZQp1wsaJcMy7x7aZ74/kQQSuct6o= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2/go.mod h1:Ndl9J0mSsuvoiiwx5kmPmrslHoM57+pjD1aKRI2VUGM= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2 h1:1oH9W0991wDRBdM1AsLC4CqYoq6lr927HgmAoPPPaJ4= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2/go.mod h1:MwaxhaePcMvBJEAlUD5tAbwRjM7PCqWkDnB2P/FBTlc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2 h1:/4GC6EyCCOiHMDf8Bcumz26UjzNvmCl3jLu51e1HF3g= -github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2/go.mod h1:3+dDG87hZGu3Jc5iid87nRJM9qdbXdwf+OZRSzwVOb0= -github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2 h1:WHM7zxAWfuukhHjSb2vZEDuT2LRpZF8upDEgijtaAo8= -github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2/go.mod h1:Z6/SBxZbdRoN6vsmGHoWgwEczVodc1dF4Sa5i6r2JPw= -github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2 h1:E5Jr3bzqSXNgp4mi2ki+/HrDjUptYzBt4ENeDQuZvYs= -github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2/go.mod h1:M5++ozDRLilJfj0L4GOfcOeIvu4JirySG3/ZtjxAHOA= -github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2 h1:t5FMSqG24RJVJ7ZJHZgmoC9MFNA0BeMMpwm6bmlHiH8= -github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2/go.mod h1:EWe65pGTUngrmOJ0OXgVH5FOVRrTGF1InWOsLxVQXxg= -github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2 h1:DaGMS/dMQ4JN73OfAy2Nacx8C7U0AAXuY9tYXVVxmDw= -github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2/go.mod h1:Tdqix9r742tAaoWlC3DfadxTD2zkJXF0FzkT7zvQKwI= -github.com/aws/aws-sdk-go-v2/service/mq v1.26.2 h1:PU5fl+bRmAgdfzj4vAxI7lQ9SJ/nb7T5HPqHb8w6E2s= -github.com/aws/aws-sdk-go-v2/service/mq v1.26.2/go.mod h1:ECtcnA9ICTtcVS/HTQzg11Fvq/2SxpWSOZhQVfHedtE= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2 h1:fRRxPVp7XlM0VuY9M4SjSYU2jDqqB+fSh6M8FdfF3Tc= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2/go.mod h1:M6XBjlabbpB/IoWJ2xBidH+YQFkisqlgDB3622+Ooi8= -github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2 h1:QJbAizguuFLyxFmC+JVyZVnL+rai7qthF2MLDF21wy4= -github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2/go.mod h1:urvzEEqsKRT6h0O7nRevjBO354pQg4Fc7DZHEdsumTU= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2 h1:T1Z46LGBudVW1oWLtBNFLo6GkTCqMA0cgX3jgS2MJjY= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2/go.mod h1:iRriI2T+7squuylfygLZc8DhIGBGyiFUCy8hmtUZkek= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2 h1:bouvOkpfqNuniFd9eLzcQQvWx+L7tIa99qx1idkJgj4= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2/go.mod h1:77c2LfAm2EnD4cFycPjK+xFzCHPvKFSHVE4tgQZdoX0= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2 h1:8kimVSf1Epg8CMjjXWHPsfcKkT6Jypm899YLsVUddQA= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2/go.mod h1:wbimeMrcPRQHWiiWwp0MjVKsRVDq+xS58OzclQrnqb4= -github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2 h1:og/kNJqyuAD5BckbvqNZp7o2HYFepX68YwaMPCyyTIk= -github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2/go.mod h1:HYP6NZ2LfRnAoZMqgn3lSh3hnwt/Ug4hbdLaa01BoRE= -github.com/aws/aws-sdk-go-v2/service/oam v1.14.2 h1:QZzW7IohYMkXIqsmt9cBqTtJhfNZlr5yBFP+ENaudCE= -github.com/aws/aws-sdk-go-v2/service/oam v1.14.2/go.mod h1:TPuwoU7I0Qcj9tpZB+seOSEIvRbZjgrVeHWlGxkHkx8= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2 h1:tQMi7jzkFcuLobVKrW4edPnnreXLNaHRJKgLutxvPdY= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2/go.mod h1:4rB9oWpduMw/+UqL/WdNLJZNF7iAwaJWwJ6GgsQqOjg= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2 h1:6q/FDvTM6ZCSVSCHN2+ZXmLVFQThTwsu3a9maH5QKZ0= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2/go.mod h1:M/OcO7L+Tt27Wu1fRXg6X4+G6A07hO46at2ccDz2X14= -github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2 h1:1zRamHQ7hfPIfmZtdfN4l4kfp+GrfpJAx0n6nJNaU1g= -github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2/go.mod h1:HJF0MWNUeYaVK+SzLzc8E5BqG6fyTt54U4uGJxcu82E= -github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2 h1:LlDQgX7E8WcCXvj3XhsGWN1k8Tk/ue50inRwl6hb+pA= -github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE= -github.com/aws/aws-sdk-go-v2/service/osis v1.13.2 h1:htLiJ788TpbN8XQCDv1Thoe3C1brYBmJtr9+CL1vvak= -github.com/aws/aws-sdk-go-v2/service/osis v1.13.2/go.mod h1:lpZ4HxPlhauL7SxovvOlpxj+cIlbaEexFKm6GP16YTo= -github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2 h1:SJsQ0CBDPwB58MzlmI5Qy2OuXEGPWumP4y913BbpKq4= -github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2/go.mod h1:P4q2zxaDsy3K+Itdlys3mmywLT1FWp84Odg0kVwQVGo= -github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2 h1:koQXYsERw2cB3IGfrUVTVIJFAf30n8GihQloF9le4QI= -github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2/go.mod h1:DbO3yFGCDeGNnLFlDMgPFvvwVG7ekRneHT5m+0HxI4Q= -github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2 h1:fQ6DXgpPXJp7HR5K9R9MxTomrthb/49DdUMpmZhtIUc= -github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2/go.mod h1:ZMKcOV2h86s8j4fLQGV6WscIW95EtpfIAhCWMFaqnTw= -github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2 h1:LyZBbTjD2WVXiPcSsIR/pxqKbpWIkb+YnczvgMyk+/k= -github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o= -github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2 h1:AFCcfy2Mk6hK1UODe2aVIxD1JGt8pbcow+vZgfUlmaY= -github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2/go.mod h1:CTzMrAJyOLQjgth3ouRlrxEU8sMx4eUcr8zxRWHvGkI= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1 h1:hrFftUIT4BUnVMXEsBKR5ivFFNnaSbw17WBJdGv5i9c= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1/go.mod h1:7W1rCC124xLdZ0Zh4ksL75YW5zMI/7QVmzPJcqGqAoA= -github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2 h1:17BXiwhsAAP0DaCSHbkhYfCTWyfyZdeUsFkmf1Da7Ik= -github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2/go.mod h1:F8V3QoKrFa+y1JRgmgmxW9YwWiQ50Tv8cE/99rVBw/E= -github.com/aws/aws-sdk-go-v2/service/polly v1.44.2 h1:owi44VVY/Kuv7J+NxZ/QRGO4G1b/EX9XYwKIFqNoNDo= -github.com/aws/aws-sdk-go-v2/service/polly v1.44.2/go.mod h1:8kELPHwi5SteCe9S4D8zRc8t9+BWDIYO1KFkDV8IYJo= -github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2 h1:AqfhHZJlfuHTj/qC9gJNgGT2ccRPmWkr/DUmRcNNGnI= -github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2/go.mod h1:yXtz8BvgFFMy2TYPOiOcCqZkSGgq30vFKZaZ89pBDmY= -github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2 h1:VTfBjwKu68NX4m8QGsd946ZPkvyFmCm6gruSWJlZAcw= -github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2/go.mod h1:JrAK1tq0tPLVupCisJQFcwme2+wN6/r0Dxl5F0Rj6Gc= -github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2 h1:nYa5wSy7PblotmdVxWkyovJPJNN1Nlo9k5Uyiv5HXgU= -github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2/go.mod h1:S6MPWo9u6LAkZV4nmGTUJ2CBeFko8MPiDJLx7tz9Bg8= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2 h1:0APD+aLm2p3+oaysyvRdIrE9qCw2J5Fcty/GsclQsZk= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2/go.mod h1:bgPhhJYNIsFQlnumFYUJrTZ3UVxFVF6VfkiKRQd+Awk= -github.com/aws/aws-sdk-go-v2/service/ram v1.28.2 h1:PAqnt9tGUgy9ePUyHab6yWaGGMh1/7Q/8NMSdybC2m4= -github.com/aws/aws-sdk-go-v2/service/ram v1.28.2/go.mod h1:fjd9tZyiREkrD8UDuFCYdBSIcC4OiZa4kyYzBldlilA= -github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2 h1:RW/rQ2u7Knll3f8w0zN3muWhQpIAjsF1/oN/NQoQ1dI= -github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2/go.mod h1:GVsxflNPgN7sfCcjI2DTbj/9Wan38gxiZOBTusSFIPo= -github.com/aws/aws-sdk-go-v2/service/rds v1.85.1 h1:1LGeHFzzZL574HsX54GspezG35Y7wKIiM2YiIoXuLF8= -github.com/aws/aws-sdk-go-v2/service/rds v1.85.1/go.mod h1:lhiPj6RvoJHWG2STp+k5az55YqGgFLBzkKYdYHgUh9g= -github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2 h1:xg1h5Z4kk5e6bTmeE5BGJMJZRwicepJiER25lpjTMK0= -github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2/go.mod h1:Zco+4iYqPF1u1FXTB0fHaRNRKPi82yw1AHPqJM5pI7A= -github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2 h1:Hx3V7PtiyBj1bwOwbT4FK4szvoItuzXxi9mrWYz40EY= -github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2/go.mod h1:lqIhSLH6flPJXSRqplVQMxtjtxWqd7/7lVMhMeBi9qE= -github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2 h1:jQVsr4zfxCE2gBd/GInbVYpZQUXQ3gBSgsSXeabS/7k= -github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2/go.mod h1:IQ82tH8mwR7ueeE7kw9trOFoMXB1k6UbTo+hMFs8VLs= -github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2 h1:IvO9PrUfbur7c+o2XjeNTc2AFVmHuVfNrfW5Dqyzbms= -github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2/go.mod h1:nKpeGs1qMq9AXQxMqD0muSCnWIFF6xadVHwiUYrCcdU= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2 h1:8NHI+9VdqiNVkdoVOvgg/UTyQcwAbIWuo1DSTxbEM4k= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2/go.mod h1:8gtABA34koSq/pwYHWw8Gx1G+RpIcGcGrxzwYtaenNk= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1 h1:tQb6XWS4onKpzQEE0GEWX3Lye7EU/agEHip/IE2mhos= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1/go.mod h1:+NAx6WlI0dNrzxGH3PrceeoD5ctO51JweFKYrkcJ3fQ= -github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2 h1:vEFA0JJJpfcTJyYBLnbTeFoT+dUvci648FAuyBrol10= -github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2/go.mod h1:tlCleO7KsiiGT8yAlQ+LR/xdXsDoVPy3D1CstCSAFt4= -github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2 h1:1TUh/fgT5PpRYT13aBpn0Xg8tjCvRoO/9YscAaPFBC8= -github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2/go.mod h1:xsGChYMIFBWAtVwQU807G1C/YCzqqQ9KQmsHcwozJEA= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2 h1:tpbXa4lslCL3hCzz1WQnTC5qKl4l3DEE9HTtfKfjMp4= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2/go.mod h1:Up6C1q/S78upPeJLCWRqIWhOz8+vx5DAsFWKCAqKESo= -github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2 h1:ssvjp8LJrv7x/sPr15E5igCARw00MoIWl54SXZ1FIr0= -github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2/go.mod h1:l2ABSKg3AibEJeR/l60cfeGU54UqF3VTgd51pq+vYhU= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2 h1:2NK2magJ7nYjnS23Ub17uZdvO6yUIWU01TPwqzcMPA0= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2/go.mod h1:uFNgoaUIINLeJmEQmq4WqDvg4iVUPgpGyHGvuJKESxM= -github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2 h1:93ebu9TFZVovy6t1Bpq7mNLUE1t9IOBdAjPbzw8KPe4= -github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2/go.mod h1:evgz1UEzddTr14GoSn43lU7SLqZnzwLbrHjYixmyAHk= -github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2 h1:iUHh9eL7HkhzU8D/TjE0CF3/G4JAEOXJNfDHCYTCTKU= -github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2/go.mod h1:2H66KqHuQ2BOaOzwisALJtoc42gl/1BzgjfrvegnJrA= -github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2 h1:yaBkRuUivdvgeWwjZzw11S7ww+Nzml0t80Mv0HQ+6wQ= -github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2/go.mod h1:wadWGOYl4mECMEgp+C14RthHwZWyMPZUCU6gmryfI0Y= -github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2 h1:K4eX3pv+eyrww7DieiOLkYc2Qv7fVnqHKh4u/pb53jI= -github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2/go.mod h1:1t0dDWBVPyLQWH3uVw2PBZymRKPUQIlwyHWBbElvjcs= -github.com/aws/aws-sdk-go-v2/service/rum v1.20.2 h1:F0Je5v8gktHY4GVk61vN7oE/P6IasFsf8VaoQK3SEss= -github.com/aws/aws-sdk-go-v2/service/rum v1.20.2/go.mod h1:lIWasXEvGg7zyUAP7fe4v/BIXotheS4nIneDPeRayYs= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2 h1:1iXmXy8SJzQVMGvo40TSzBYS9ig6BSyXfRIMzLfmBfE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= -github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2 h1:tanWyz4jhBm+vPoimi6XpcZKFIBVDfVpTnrUHjeJljo= -github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2/go.mod h1:OnvclTFylYBzFuko7L/GofARC4xh85D359PjECSqKZM= -github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2 h1:OFL1HOnkQGnP8BidIRI+4W/Oe59BypqzoKOprs6+8gM= -github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2/go.mod h1:CRuJDz7FTzEH9rdt/7p6Eu/6sRNV9KgdgdNmYgeXLFo= -github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1 h1:AH1OcmkqJP7J5cE9XJ/Ik988JKoSuCisiH7omM3LH7w= -github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2 h1:Cu6CJ3Sm0IhVZ87OkKgLkUwcwIWaNT8CSzDr7kCFi/g= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2/go.mod h1:FZ4JyKgu7dldYPXGLkq6lPrFN3ySvRA+M22Awt0Gce0= -github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2 h1:J55Tuvzv6Bevd0yMvNXLMSmljIibEuEL4YKf0N2C2Pg= -github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2/go.mod h1:DN0f0GSsVwIsSoAPab8ekA41nQsLD75b261xAcRFWHs= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2 h1:C79sbcbdKuBpBpTDy1MNrJx5/Wii7gcwt0Jkd5QCGNA= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2/go.mod h1:WyLS5qwXHtjKAONYZq/4ewdd+hcVsa3LBu77Ow5uj3k= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2 h1:MZd2AX3jzl2FBKmAtacTpSLMAu6Qp3Znp7ng+BHaoII= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2/go.mod h1:QFtYEC35t39ftJ6emZgapzdtBjGZsuR4bAd73SiG23I= -github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2 h1:2WGko6Wh0L6dklVXtMbj0JRMuRyNZ1HcJKkMI2LJ/FE= -github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2/go.mod h1:TJN6q6sLi8vSsM+/H1UxCyJvhsTSwmXxw1kQjH1hS2Q= -github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2 h1:fTsD5zWTYT8UbTmIeWN/x8vw2dwTBkMOOxhExarFbBg= -github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2/go.mod h1:SYyCbaGtfOhXhqXEB7w2gLARjWQaasJ141FBcSBFFLQ= -github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2 h1:1oW7X5Q4OaiY1vuLofwoCjSM3BRe3tHD2h5njoh3sx0= -github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2/go.mod h1:VKidRJJnOIM7XVxc/7O7JJzIK2FwPqbGOcJtxdAR+Tg= -github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2 h1:QuNFFyWbu9nCovpLiZyvdkpq9LurGrYqMkPpy0FEWgs= -github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2/go.mod h1:0MbNCcVquMT60vkRWoX5T0p1WMRJnx1O9zeijrqwqkY= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2 h1:29YTjasLjpAjb9RMacMkwWJ2PgDipZqzDS3TOkqUsl4= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2/go.mod h1:hbMVfSdZneCht4UmPOsejDt93QnetQPFuLOOqbuybqs= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2 h1:gH/dxANwb5KkMwqFPGfpMSj4ZJVgbRuSS0GHuSYsMWA= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2/go.mod h1:GV6dseffRFXPRe2qmY5I6Mkypkoqm+AyH23nwSQbyF0= -github.com/aws/aws-sdk-go-v2/service/ses v1.27.2 h1:DSUFBQKpQZlBNQ1VWf3CLlBDopVtL71wmZFSVa0P4OU= -github.com/aws/aws-sdk-go-v2/service/ses v1.27.2/go.mod h1:WJjeWePq/vToxtM4fKbGHiXvInPARrWn8XJ0NOu4KtY= -github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2 h1:u78PfH2Veygb3/WoIWRKMOLU6F5DmUT+ZOaemjFAeng= -github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2/go.mod h1:IjCl85fNBm1AgutKkCmFaN5XwreHxdLLy2/mtrZ6qwg= -github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2 h1:kjGvdLzCLQhHo6ev2a+bYVMO7E60aK1GM8s2FVlLNuA= -github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2/go.mod h1:N8FU9Yn79tcXJA1ovnj6cRrEBOrwSkFKegS/CDOeGcg= -github.com/aws/aws-sdk-go-v2/service/shield v1.28.2 h1:8eLrAiQZAUvXpNbWRzCr5KVhnHXIGySayuGi8KtS0mo= -github.com/aws/aws-sdk-go-v2/service/shield v1.28.2/go.mod h1:nVZxCxhvntB6UcRxVK0X86Ab/LHFxQaHvTxBwfN4RRU= -github.com/aws/aws-sdk-go-v2/service/signer v1.25.2 h1:JmsSA7zkHmmsDg8gkFbT+38AS2wSMHB4pLmHfPrJ72c= -github.com/aws/aws-sdk-go-v2/service/signer v1.25.2/go.mod h1:v+b0Pp+v9kZml7neMqRF8pZWhqUugiQ911IPwnC8qJw= -github.com/aws/aws-sdk-go-v2/service/sns v1.32.2 h1:eAySuJF6Obj1eEy9VvJ6VFfsKsLV71hR2bAv9VwVWUw= -github.com/aws/aws-sdk-go-v2/service/sns v1.32.2/go.mod h1:ZO606Jfatw51c8q29gHVVCnufg2dq3MnmkNLlTZFrkE= -github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2 h1:sjw/u/hE4qRrT+5dQjetlXwy9ypkgVi3/RcB8C5n7bc= -github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2/go.mod h1:WuGxWQhu2LXoPGA2HBIbotpwhM6T4hAz0Ip/HjdxfJg= -github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2 h1:Agv/W8IeOeKOiLAIO3osoS5UvGuiapd04jxhqmuzY6o= -github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2/go.mod h1:qs3TBNpFEnVubl0WL3jruj7NJMF1RCAPEPQ1f+fLTBE= -github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2 h1:0PZd3gpgY2YW1b3ZA6FLi4FuvmAWtotSO7p/3mZ8b6I= -github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2/go.mod h1:2Hcm22KIZ5WB159AnMqi6+Q4Iqjrs6RI6mZmpINK9zY= -github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2 h1:39UiE+zf/+J+p8RGuVPHs69Jg02YMFkYjk3E9LL3EEA= -github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2/go.mod h1:hHB0B0kouPujT1Reg/Bpz1mMWSiNFNAbIPLsbotpvtI= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2 h1:PmxZKr/NXc1x3k1KBlTECtupTsPn/83lDmUkECt1ZEU= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2/go.mod h1:wCkLE4XflwjbFLBkX2cJTK6M/85mCTejtyLCoEYUzb4= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 h1:yzi/y/vKlLyzOfG7pSu5ONNGRxHIgLeDrV4w2AMRCo0= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.2/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= -github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2 h1:b1RCrohJtoCp4rUfsVX1AX0CrvbZ4Nsc7LXdsuXl6tw= -github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2/go.mod h1:vrQyFnviH2SDCJSXBbjOyoWnPOMMfRkznrBLhtlA51A= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 h1:3gb6pYhYLjo8rB1h2Tqs61wpjRd3rQymYcVq/pp0yxI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= -github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2 h1:orDJE/n/Y3Vsq98/P35CaWDN+aUIjd8Oo4IiBnNSvWA= -github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2/go.mod h1:Tq5rpUueWqzCdqIMQ/C00/qUS4q+T+FVCwSE0S2nNZs= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 h1:O6tyji8mXmBGsHvTCB0VIhrDw19lGTUSbKIyjnw79s8= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.2/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= -github.com/aws/aws-sdk-go-v2/service/swf v1.26.2 h1:Dmf2UFRwbX5q1mmAmBJJAJfXuJRCZnKoUbbQxMsr4fs= -github.com/aws/aws-sdk-go-v2/service/swf v1.26.2/go.mod h1:5Xs759kS9wwOs5qnupTch9KEtnA9HfAeKsXje2wli44= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2 h1:BFT4LD8XlhTMxi+jc9MTW3RGeEbk08k5pA8rLPV0oMQ= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2/go.mod h1:7VUyItGoj/dMFqIOEoyMi/8FhGAWVdgAodW3o9C2h5U= -github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2 h1:PMCyheGlvfNVV2rAsKCqfNLFTyGE8VGeLyGFTP8GLAk= -github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2/go.mod h1:JjoFyRrlzsY67+yzraAew4QQznGlpytCMNge3RO0FUQ= -github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2 h1:F+zm0kakYMSScvSZn5HR3b6kS3uShHiRQCishk5WvAg= -github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2/go.mod h1:/W4hzCr58RlGiCFBRO85jzwzyJAVJlQryaglvNsYVTc= -github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2 h1:+DbLBw/DUE9whagnTrVaCqoQ0s6D/c/t5sQw7EKHyEg= -github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2/go.mod h1:2NcbgXMGBLDIWVgVNODP2rMIDUVkYQpI7/xhSPNgTuc= -github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2 h1:stu3GWuPQdBFKnpoijM9wQViyvlQiDvUHcEodxdvv2o= -github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2/go.mod h1:cM6BSj4zvCSbsR+oVvwUMU8MDuyNUR0YcJcOrRmjDJI= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2 h1:1cCk2HYHx27Bl/NLMSEIEcV/jA58Y9KctqGdHbPZ6PA= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2/go.mod h1:VsriKaoeJEY5E1GY9tZL/7Xuh+dLZYzoqIX8ktHY8ME= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2 h1:50USEfvBbUoBoYsHKEBYmAF4uFz1YRqudWsheTznl/4= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2/go.mod h1:fFVqM2mr747L1jfni/b8aMSq0jsTnjWwol7DouBBTG0= -github.com/aws/aws-sdk-go-v2/service/waf v1.24.2 h1:ZsHsyYwLHFU5G2Tgj3wEnwCs2HcHJLg1itQYbUzs/PQ= -github.com/aws/aws-sdk-go-v2/service/waf v1.24.2/go.mod h1:4vOUaHr2PvE3ozSXxyQ7Jh1TOFnpaWs1acZIADSCx2g= -github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2 h1:NBtkGcygxyN2pY9JhanEofZsPO4DFJe0oS0dtN991Js= -github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2/go.mod h1:h1NlLpD3QFxHK5r0Gt+YiDugcNZdvuwFZMePwPaeqXk= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2 h1:l80SvadG9lOZY7Mgl6LamB8jO4AnZmBOYLv31WLGZuo= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2/go.mod h1:VS4CvMgYBTMwXdqQq7U1AszFZFf3qi+9oDkz6Hm8OmI= -github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2 h1:hTMsSwdT3cDYNY5I8zo19gjw/1rmxLuH6EbZGohXFOI= -github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2/go.mod h1:IkH2gyryAJK8njc9MRimGL+MnlEEHCKuCjsRAUlq8s8= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3 h1:pQQzB7VOAaou/7C26qICpxJkpXYnFkcUYX7jEz9DSFE= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3/go.mod h1:fhYvr0B1844Y7QhLRtdmY5GZEbVStCjE+OEhazg61Ds= +github.com/aws/aws-sdk-go-v2/service/iot v1.57.3 h1:7mgiOnM9d6CgI3EuyCPTwevkCvBqRGQ4h51QGR0/Yxk= +github.com/aws/aws-sdk-go-v2/service/iot v1.57.3/go.mod h1:wR4yGYW8QdKpmUJgboGVCW7fRSJI+Vi/20fEFHGNAJQ= +github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3 h1:5Acx6wGQPUmM0dFz7q8ZhIVrLryiUjKCRVjZVSnk0AE= +github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3/go.mod h1:R6xw3TxSOa7Mf91pkfRO/Lc6dbm4dNVpq0I4gUlw/Gk= +github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3 h1:fegmtnCkdMsX1d2bOPltcxOQGOqWVBhMQst5lJC1fJw= +github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3/go.mod h1:dT4/zcoReJEoSpnFkupL6ttAbiFHDI57VgmJedlqTto= +github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3 h1:Gar5zhYfDuXi0w4DHhJTABSSoRFr/HgqA2Mh9s1Pzig= +github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3/go.mod h1:SvoQnCSuFuJNKWla6L0gCBGt2hUybGtpDCnf2gSEgg4= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3 h1:bqP12ByXYW1TzYlBuVlEaU7X42aq+5+xt+rgSU9MuXI= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3/go.mod h1:WvU5FAvZd/TL3VeVKonRHJ42AFa1oeN5WPbn02YzWzs= +github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3 h1:QrMp46glor8p8I0MBM/DqLn3Ljrikd35aUE/vT2ZXRQ= +github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3/go.mod h1:fBPV+Vh4JdtCtsopwBKCqdma75qcOI8SD+MlJU+teXQ= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3 h1:vvE9oxHqhbzSLqbrkjDs2xzSHrQ4xGg/iU5h7WZXOAI= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3/go.mod h1:pI87p/LzCfnek4XorpEPXCsGayU2Ij3MQbgHdQjml6E= +github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3 h1:0TteML+qTxLfErfVOuNqEskMx17cPwqxngTTV2kuJr0= +github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3/go.mod h1:uHIz29KElVFQ75jRhky5snAagySv3KcxuJ9eBLvClJQ= +github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3 h1:GPPcWkr8rsEdTRmMXBw9EEAAlT6zVFCmnW3PRpswCtY= +github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3/go.mod h1:Sset1/AxzSJ8aosURhyLJm804sZ1cBkgdfhGyidqNO4= +github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2 h1:BCUoERI55kdfbqgxRnor5oOI8h3EEy/AlETa/UmHQZ0= +github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2/go.mod h1:/D7NWV/jWRxPDDsSySncYt8JT4QHYeqgiR7r2vP2hYw= +github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3 h1:BiqiG2YQgeCuhBiisaEHB8ZjZOdCN7Yu7esssg5jPTU= +github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3/go.mod h1:1mXTVF+BxmYnmaQ3Bsvs1AbzT8ghVEPVOhVLlD/h34M= +github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3 h1:I1myinJwUU1sfLDzyi9kfWnPTahMAOTExI2q6sO9HGY= +github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3/go.mod h1:4td+MQ/pTrH78aGbDs6zUo1MYNzmrmar5f30JqTt7cA= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3 h1:B9LWfjWddJrryjhb6AM2mlGYlviJhT5XghXpJxnLJRA= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3/go.mod h1:YtckrYyj5bsqpiEoM9jyJGEouqAvRk1bfxEatQt9H90= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 h1:iHi6lC6LfW6SNvB2bixmlOW3WMyWFrHZCWX+P+CCxMk= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3 h1:8BZoQmkmnZVTrrFT+RmEdoRVSbEdAA5ctuo379hmyGo= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3/go.mod h1:0A67Mdmp1aQZp74Ef/AoUW11YyNiIxgf8kjjL9JZMxI= +github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1 h1:Psp52CBlJtOVDyI4UMCAfovD4spGvdqapsBJxWZe470= +github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4= +github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3 h1:+0+umIFEDPVagbLzqoyM++I2RSAQsnW694SvTk6r1Tw= +github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3/go.mod h1:6I30IIJw5mOeuza9tDHzUEya7ODqKobjjipcLYViouE= +github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3 h1:wEqepLWKrLtZk0L5UycfFflzdT7/h6MiJf6ajfxtmss= +github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3/go.mod h1:VnoYFwR2qh8TqfmPPJU/1hiqQNIf2+BVaWGj7J9ofeo= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3 h1:t7FxDY9W9t9xspkuS1fn3rxJnHLk+LTpaAPyISnhjsk= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3/go.mod h1:rmal7dltZ/Nj9c5K1QGWNBrwoB3YnsLKpfjudxpbTUM= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3 h1:t9TJdP1zTVnJ2T+DwOw5phK6YDeM5mB6r8OW4kzYhZM= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3/go.mod h1:qxdofHNS6n02LO1BPw2gaq3XL+jAtX7bMW00PITkUok= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3 h1:4aA0MaOMfvaYlPoPNFqG3hR0sdZdcwJmrWE3GdVKBg4= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3/go.mod h1:HM7L3Ylzj/7ZYVNchhnCZaPj8veuI38ICccD2nZI2EQ= +github.com/aws/aws-sdk-go-v2/service/location v1.41.4 h1:7qemUhbX5YRpAFVWgrJy9Q66FqDPDk/yIFFSysBzUXA= +github.com/aws/aws-sdk-go-v2/service/location v1.41.4/go.mod h1:yGvyLPsBAqpvDlLUvqwPOVF20gthq6Ru5hs4lzeR5zU= +github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3 h1:wp5NssI9haMalY3aBUimbnc+ZL0jx5ho1DDs6guf/wI= +github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3/go.mod h1:0Pewvf6+Pl1Qr4liKIX/C58YjNuat0VflkuYIfuWYqw= +github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3 h1:NyCqoMOF352T+HzHYgGe39M1JQSd9lBA/trWCnbUMhQ= +github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3/go.mod h1:MPskeCQ+fYztgr925XPpzu7b6BQHyQ57CKy1Txkqkuo= +github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3 h1:UFXM8WiPJODiCtAdrXbDSlzlyoA2wG2a98+qSevKKHI= +github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3/go.mod h1:04Rw979+FKHKrfAUZsHHh/qY1RspKfu2bm8wEj6jhmg= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3 h1:o+PbOGeu40YOCTSaNuStH1MFlLyijQjvDlhQZgVc4ng= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3/go.mod h1:Ndl9J0mSsuvoiiwx5kmPmrslHoM57+pjD1aKRI2VUGM= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3 h1:DnAzBvbhIYl50f+4TJWF18PK5JsSYi04Y3buAP5xy7M= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3/go.mod h1:MwaxhaePcMvBJEAlUD5tAbwRjM7PCqWkDnB2P/FBTlc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3 h1:xAUhtgaE5WbRd3gtoLkuXW/ZzRhYjmW3qQBk0eS2KOc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3/go.mod h1:3+dDG87hZGu3Jc5iid87nRJM9qdbXdwf+OZRSzwVOb0= +github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3 h1:th1CIngKOOI3wFpuBBo/LmPlxqJ4BSgcUebX50IDs6U= +github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3/go.mod h1:Z6/SBxZbdRoN6vsmGHoWgwEczVodc1dF4Sa5i6r2JPw= +github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3 h1:pN5WrnY+Si3NT3JAU4j6LMzmsoLMjMMV/nR5T0ZNWcQ= +github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3/go.mod h1:M5++ozDRLilJfj0L4GOfcOeIvu4JirySG3/ZtjxAHOA= +github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3 h1:omWacD13tFoxxTld+roCFvDK4kWE8h/ViTsrT7BsGXs= +github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3/go.mod h1:EWe65pGTUngrmOJ0OXgVH5FOVRrTGF1InWOsLxVQXxg= +github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4 h1:JXqfop7sHL0RHnbux74Wg/TpksmL05cNRQNodIBgZmI= +github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4/go.mod h1:Tdqix9r742tAaoWlC3DfadxTD2zkJXF0FzkT7zvQKwI= +github.com/aws/aws-sdk-go-v2/service/mq v1.26.3 h1:OR+iWR2e0NgwAf0vcGIKASEe2iLn4ayOJf7+XOGrBlk= +github.com/aws/aws-sdk-go-v2/service/mq v1.26.3/go.mod h1:ECtcnA9ICTtcVS/HTQzg11Fvq/2SxpWSOZhQVfHedtE= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3 h1:X+5822szaHW4/HcPFqCG4EiywXJ6nUJnFKiG+Gkeycw= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3/go.mod h1:M6XBjlabbpB/IoWJ2xBidH+YQFkisqlgDB3622+Ooi8= +github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3 h1:TvWCToz2XHajaBBxxmep9+XKV7iTfWyA/wW8Fc+peb4= +github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3/go.mod h1:urvzEEqsKRT6h0O7nRevjBO354pQg4Fc7DZHEdsumTU= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3 h1:ov00wT4scQw1chiwd8J4lv1S0RTxjG4TD4Ufrqv7EQ8= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3/go.mod h1:iRriI2T+7squuylfygLZc8DhIGBGyiFUCy8hmtUZkek= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3 h1:oSjkDYO5jTr0TClWCzhx2ZU9fyfc0tEOaerRGUJDxrI= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3/go.mod h1:77c2LfAm2EnD4cFycPjK+xFzCHPvKFSHVE4tgQZdoX0= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3 h1:VBkmi1+v7K/FcbZL1yXOPrqlubXWacFoF/za9Tk4/rc= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3/go.mod h1:wbimeMrcPRQHWiiWwp0MjVKsRVDq+xS58OzclQrnqb4= +github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3 h1:HULLIlDv7aS6ANkNqUnZ59Lxw5nnLkRdYVDE0z0cENU= +github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3/go.mod h1:HYP6NZ2LfRnAoZMqgn3lSh3hnwt/Ug4hbdLaa01BoRE= +github.com/aws/aws-sdk-go-v2/service/oam v1.14.3 h1:mZsrbycKkGaR3O/DOYn8NVa62zjC735K2qxOEBFecLI= +github.com/aws/aws-sdk-go-v2/service/oam v1.14.3/go.mod h1:TPuwoU7I0Qcj9tpZB+seOSEIvRbZjgrVeHWlGxkHkx8= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3 h1:E1oRSUVouFby+zAh7cDwTDEQ0DYajXoEg1du0jVD3SI= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3/go.mod h1:4rB9oWpduMw/+UqL/WdNLJZNF7iAwaJWwJ6GgsQqOjg= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4 h1:HOPDsu4mn/3O98BEy6DqZ+pHtcBNx3ChLRfJmQPogKU= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4/go.mod h1:M/OcO7L+Tt27Wu1fRXg6X4+G6A07hO46at2ccDz2X14= +github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3 h1:QI8HfDFLmdlzOtRz0YUdwtL0MEdtOErL97qfAdadXS4= +github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3/go.mod h1:HJF0MWNUeYaVK+SzLzc8E5BqG6fyTt54U4uGJxcu82E= +github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1 h1:DOn2tnxukKVl3HVoOnTeG+d3As/CowgF68GdbP0Qpuo= +github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE= +github.com/aws/aws-sdk-go-v2/service/osis v1.13.3 h1:5Wk90ICdGfR1EA943ojJD3d2jMD0aFkZHbDZ+24NIjU= +github.com/aws/aws-sdk-go-v2/service/osis v1.13.3/go.mod h1:lpZ4HxPlhauL7SxovvOlpxj+cIlbaEexFKm6GP16YTo= +github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3 h1:sksXxEcGP7JnJ8pMZ//39DWDM5glChcfxWREB69jMak= +github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3/go.mod h1:P4q2zxaDsy3K+Itdlys3mmywLT1FWp84Odg0kVwQVGo= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3 h1:qp8UftNy77RQMa+0ECn02oFk3zRixYPfpbntz4H6tCs= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3/go.mod h1:DbO3yFGCDeGNnLFlDMgPFvvwVG7ekRneHT5m+0HxI4Q= +github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3 h1:EuzeqO6mq32LBgDK/kKOY8gNVgcvYgyeRxPTvPuUJOs= +github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3/go.mod h1:ZMKcOV2h86s8j4fLQGV6WscIW95EtpfIAhCWMFaqnTw= +github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4 h1:rq4swBXt3SrOMPA7XJVSgQiTxv4oPz5dMvIhtcMtBt0= +github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3 h1:BSRWmxSXUpgKnYniHoRGJJNY9I0mrSaqahG8+h88m5E= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3/go.mod h1:CTzMrAJyOLQjgth3ouRlrxEU8sMx4eUcr8zxRWHvGkI= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2 h1:QOFadcta3UM+uVuTcktET7YhzG6cKMtV3Dr/e6C9BhI= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2/go.mod h1:7W1rCC124xLdZ0Zh4ksL75YW5zMI/7QVmzPJcqGqAoA= +github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3 h1:1gtXFPC0KFeW/RV2nGs4Pfhr53BGrv4dIex73iq/zuM= +github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3/go.mod h1:F8V3QoKrFa+y1JRgmgmxW9YwWiQ50Tv8cE/99rVBw/E= +github.com/aws/aws-sdk-go-v2/service/polly v1.44.3 h1:XVupSNPpjZu562rgTHOfPDE0xg/lPsbiHgSDNkc2lEo= +github.com/aws/aws-sdk-go-v2/service/polly v1.44.3/go.mod h1:8kELPHwi5SteCe9S4D8zRc8t9+BWDIYO1KFkDV8IYJo= +github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4 h1:4Ho8oYBvSJWJpBjyso90uBZFTNxi9FZtPqG/qybg9tA= +github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4/go.mod h1:yXtz8BvgFFMy2TYPOiOcCqZkSGgq30vFKZaZ89pBDmY= +github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3 h1:/FcbY2nOte0wnzTTYqUPvQWLvA4G/FsCXien3rgbXDA= +github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3/go.mod h1:JrAK1tq0tPLVupCisJQFcwme2+wN6/r0Dxl5F0Rj6Gc= +github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3 h1:RzMpW12sPwseA7XQmd0AK4KPfDOIeF2KcSbkUmH7uUM= +github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3/go.mod h1:S6MPWo9u6LAkZV4nmGTUJ2CBeFko8MPiDJLx7tz9Bg8= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0 h1:lOiC6PAktLgmXp486gL1NMaB7ATE33UvdMeCcSAxCAY= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0/go.mod h1:bgPhhJYNIsFQlnumFYUJrTZ3UVxFVF6VfkiKRQd+Awk= +github.com/aws/aws-sdk-go-v2/service/ram v1.28.3 h1:T4t7shKc/+Kr5kLcr+za0PQnivbs46UpB5rixV/MlCs= +github.com/aws/aws-sdk-go-v2/service/ram v1.28.3/go.mod h1:fjd9tZyiREkrD8UDuFCYdBSIcC4OiZa4kyYzBldlilA= +github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3 h1:ipKbrBC/bjJfzcaU4OrCC0k6bwrwOH/XfcQamRvfOdg= +github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3/go.mod h1:GVsxflNPgN7sfCcjI2DTbj/9Wan38gxiZOBTusSFIPo= +github.com/aws/aws-sdk-go-v2/service/rds v1.86.0 h1:XIlc5PiPNJROSs8R4p50IKavXSqjuhIJ0C3JL0KJ2KQ= +github.com/aws/aws-sdk-go-v2/service/rds v1.86.0/go.mod h1:lhiPj6RvoJHWG2STp+k5az55YqGgFLBzkKYdYHgUh9g= +github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3 h1:TRJP6RflPN5A4yRpyXgznsJTJMT46tKigNAKzd7owic= +github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3/go.mod h1:Zco+4iYqPF1u1FXTB0fHaRNRKPi82yw1AHPqJM5pI7A= +github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3 h1:bDlTqTCc8gqiYyFJQNZx0kDmxY98WGOzGrsKu38KE+Q= +github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3/go.mod h1:lqIhSLH6flPJXSRqplVQMxtjtxWqd7/7lVMhMeBi9qE= +github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3 h1:dbyFFfQPPKya3nq9C/H/cykmm6mjCDVG2WQ4lOmBq9E= +github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3/go.mod h1:IQ82tH8mwR7ueeE7kw9trOFoMXB1k6UbTo+hMFs8VLs= +github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3 h1:4aBbUPWa2nKA7Gavps4W5QdPf9JcwsETdKORENpjDR0= +github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3/go.mod h1:nKpeGs1qMq9AXQxMqD0muSCnWIFF6xadVHwiUYrCcdU= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3 h1:8xknnjgl/iH0KSiJvaDQoOpN5378ZZSHjVNZWs7qijE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3/go.mod h1:8gtABA34koSq/pwYHWw8Gx1G+RpIcGcGrxzwYtaenNk= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2 h1:L5eeFGBMuNIq8sO7dl8wgEXOGyB7OYoO3BPi6egBEao= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2/go.mod h1:+NAx6WlI0dNrzxGH3PrceeoD5ctO51JweFKYrkcJ3fQ= +github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0 h1:VR3fYSKeUiN67t7XFovU/PCgte3/qzCp5bUjnhU2vtU= +github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0/go.mod h1:tlCleO7KsiiGT8yAlQ+LR/xdXsDoVPy3D1CstCSAFt4= +github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3 h1:1c+gDPYrt+IT9GQDojqvJSfYPejy7Xx6UGhQN4mLwIM= +github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3/go.mod h1:xsGChYMIFBWAtVwQU807G1C/YCzqqQ9KQmsHcwozJEA= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3 h1:Thb7N94/GbEwfW9RVrDIsviB77HpsCf+dZ2T7+xUwnM= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3/go.mod h1:Up6C1q/S78upPeJLCWRqIWhOz8+vx5DAsFWKCAqKESo= +github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3 h1:vYmafsIZWxc0EkIovYfjyfekHJogJjnIUXso5o7YPIA= +github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3/go.mod h1:l2ABSKg3AibEJeR/l60cfeGU54UqF3VTgd51pq+vYhU= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3 h1:AWxJKli3/wooKuD3ubRDtFfnpZ0ch9R+N7LiQ2zru7c= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3/go.mod h1:uFNgoaUIINLeJmEQmq4WqDvg4iVUPgpGyHGvuJKESxM= +github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3 h1:VuuXUW9n7ZL5JkeSi46hAKd/PKoEbq5QJdpcIuq4tlE= +github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3/go.mod h1:evgz1UEzddTr14GoSn43lU7SLqZnzwLbrHjYixmyAHk= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3 h1:Qp7iEbnbEM3xvQt2oW0hncN/BQbbdkf5QiFq7myiADA= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3/go.mod h1:2H66KqHuQ2BOaOzwisALJtoc42gl/1BzgjfrvegnJrA= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3 h1:si2cRM7jpF2twzOKk/IjUbe2NXIAMe3wKG7gWkFXsOQ= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3/go.mod h1:wadWGOYl4mECMEgp+C14RthHwZWyMPZUCU6gmryfI0Y= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3 h1:kKooBzPdbErEYGYtC4eUyfewKUKEKgWRcRYyGovVoOQ= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3/go.mod h1:1t0dDWBVPyLQWH3uVw2PBZymRKPUQIlwyHWBbElvjcs= +github.com/aws/aws-sdk-go-v2/service/rum v1.20.3 h1:VxTXw2c88eLea/lxR/cWmJfw4jr+IwIIrs2eJPSFjlI= +github.com/aws/aws-sdk-go-v2/service/rum v1.20.3/go.mod h1:lIWasXEvGg7zyUAP7fe4v/BIXotheS4nIneDPeRayYs= +github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0 h1:I0p8knB/IDYSQ3dbanaCr4UhiYQ96bvKRhGYxvLyiD8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= +github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3 h1:+EM+FAM1dlhX0TuKlR7tWSTiazcwQNU/lG6RNBunMyo= +github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3/go.mod h1:OnvclTFylYBzFuko7L/GofARC4xh85D359PjECSqKZM= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3 h1:yAmKP/XEmSWIgy9x+nVW3tZAHic+KiOv+bzi4oEGv+E= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3/go.mod h1:CRuJDz7FTzEH9rdt/7p6Eu/6sRNV9KgdgdNmYgeXLFo= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0 h1:Ip2efAn1od3MoT9Cjkh+bU/Nxe7K3V6RW0VMjTg8tw4= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3 h1:vq6s8p+mauDOBi0ATnpTYzYTh+yqguXPDdUiBT20pVU= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3/go.mod h1:FZ4JyKgu7dldYPXGLkq6lPrFN3ySvRA+M22Awt0Gce0= +github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3 h1:89xXAMtiyy0bmvWQ3HCVfyiGLTR/H9vOYZ7aOl3FlSk= +github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3/go.mod h1:DN0f0GSsVwIsSoAPab8ekA41nQsLD75b261xAcRFWHs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3 h1:W2M3kQSuN1+FXgV2wMv1JMWPxw/37wBN87QHYDuTV0Y= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3/go.mod h1:WyLS5qwXHtjKAONYZq/4ewdd+hcVsa3LBu77Ow5uj3k= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3 h1:YSmEnPSWj74eOtbXG4Z2J+GTQjBrz7w2wP01isHFZwU= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3/go.mod h1:QFtYEC35t39ftJ6emZgapzdtBjGZsuR4bAd73SiG23I= +github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3 h1:+u+4GZspRnr73p5f6Wr0LV7EOOyQySmU4kUaJCE2YSY= +github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3/go.mod h1:TJN6q6sLi8vSsM+/H1UxCyJvhsTSwmXxw1kQjH1hS2Q= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3 h1:SW10aLfunv3jdPKfnf1vLxjh9wzIC5ivAmfHJTNmvug= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3/go.mod h1:SYyCbaGtfOhXhqXEB7w2gLARjWQaasJ141FBcSBFFLQ= +github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3 h1:sC26+EZ9PsCss8Tmq1hdsSpKbMZbcsTidSLlo1D0C5Q= +github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3/go.mod h1:VKidRJJnOIM7XVxc/7O7JJzIK2FwPqbGOcJtxdAR+Tg= +github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3 h1:YiVOPnTPMgsmQ4LnfwwsncF0otVCe64r29wzV9pMqdk= +github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3/go.mod h1:0MbNCcVquMT60vkRWoX5T0p1WMRJnx1O9zeijrqwqkY= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3 h1:55Y/RewMJExiMaz4SUl9ZfjgM4Fi/caaN6wVJ+i3lto= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3/go.mod h1:hbMVfSdZneCht4UmPOsejDt93QnetQPFuLOOqbuybqs= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3 h1:FYIhlz8W1L3pbiMGv4/M56iEVUM9CvTBWsIxvCMDyio= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3/go.mod h1:GV6dseffRFXPRe2qmY5I6Mkypkoqm+AyH23nwSQbyF0= +github.com/aws/aws-sdk-go-v2/service/ses v1.27.3 h1:i7k9FzwUfv9seln228iz+69OyXZ0FMqhwotSeAlRC7A= +github.com/aws/aws-sdk-go-v2/service/ses v1.27.3/go.mod h1:WJjeWePq/vToxtM4fKbGHiXvInPARrWn8XJ0NOu4KtY= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0 h1:KJqVNo0qzxA4EsyAuKa0b5zAOUF1x9AKfgeRfRkTEls= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0/go.mod h1:IjCl85fNBm1AgutKkCmFaN5XwreHxdLLy2/mtrZ6qwg= +github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3 h1:4HoibwG6AcWIG8uKlV7cQ0+gVzQkL8/+nxG2ov9Zdms= +github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3/go.mod h1:N8FU9Yn79tcXJA1ovnj6cRrEBOrwSkFKegS/CDOeGcg= +github.com/aws/aws-sdk-go-v2/service/shield v1.28.3 h1:47WjqdmllA2Zkj0HErk70vkGBdc2EfolywIZfgDw6Fc= +github.com/aws/aws-sdk-go-v2/service/shield v1.28.3/go.mod h1:nVZxCxhvntB6UcRxVK0X86Ab/LHFxQaHvTxBwfN4RRU= +github.com/aws/aws-sdk-go-v2/service/signer v1.25.3 h1:A0ueho3ZhRK3ggXJBgWEpN0eYuTGEOjK3G/7Bz8FTOI= +github.com/aws/aws-sdk-go-v2/service/signer v1.25.3/go.mod h1:v+b0Pp+v9kZml7neMqRF8pZWhqUugiQ911IPwnC8qJw= +github.com/aws/aws-sdk-go-v2/service/sns v1.32.3 h1:LC5JBrEAdJ0SSRLfNcLzOLsfoc3xO/BAsHiUNcQfDI4= +github.com/aws/aws-sdk-go-v2/service/sns v1.32.3/go.mod h1:ZO606Jfatw51c8q29gHVVCnufg2dq3MnmkNLlTZFrkE= +github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3 h1:Lcs658WFW235QuUfpAdxd8RCy8Va2VUA7/U9iIrcjcY= +github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3/go.mod h1:WuGxWQhu2LXoPGA2HBIbotpwhM6T4hAz0Ip/HjdxfJg= +github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3 h1:Ctzev3ppcc46m2FgrLEZhsHMEr1G1lrJcd9Cmoy/QJk= +github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3/go.mod h1:qs3TBNpFEnVubl0WL3jruj7NJMF1RCAPEPQ1f+fLTBE= +github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3 h1:e5BY5R2WloCjB6K6hX4nMKM/AgoyrWS5u6F4sK2KBpE= +github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3/go.mod h1:2Hcm22KIZ5WB159AnMqi6+Q4Iqjrs6RI6mZmpINK9zY= +github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3 h1:QTzSoDU21cd1GS9hXKbtK+z8DVLnRawqYT7O5WvMPvI= +github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3/go.mod h1:hHB0B0kouPujT1Reg/Bpz1mMWSiNFNAbIPLsbotpvtI= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3 h1:8OxXGVMNUU0wtx51nKgfVHvr4H8+kKcULTyrTghBX2w= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3/go.mod h1:wCkLE4XflwjbFLBkX2cJTK6M/85mCTejtyLCoEYUzb4= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 h1:rs4JCczF805+FDv2tRhZ1NU0RB2H6ryAvsWPanAr72Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3 h1:bxaIezTrmNnJhPoJqn7sgcc0emvhpp1iiidkY1E6GmU= +github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3/go.mod h1:vrQyFnviH2SDCJSXBbjOyoWnPOMMfRkznrBLhtlA51A= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 h1:S7EPdMVZod8BGKQQPTBK+FcX9g7bKR7c4+HxWqHP7Vg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3 h1:D+VVmwDEmpaRlZRWBYu+Qc7aGiikfbOSE2LUr0t3JxA= +github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3/go.mod h1:Tq5rpUueWqzCdqIMQ/C00/qUS4q+T+FVCwSE0S2nNZs= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 h1:VzudTFrDCIDakXtemR7l6Qzt2+JYsVqo2MxBPt5k8T8= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/aws-sdk-go-v2/service/swf v1.26.3 h1:nm2djoNSEUp4XTnj0QlwXJ054Fyzh4L2mXPM3js0iqs= +github.com/aws/aws-sdk-go-v2/service/swf v1.26.3/go.mod h1:5Xs759kS9wwOs5qnupTch9KEtnA9HfAeKsXje2wli44= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3 h1:dNywWGwRnfxYWjb9N+9vtYZSpiLQvSAbFObDeAM4Bv8= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3/go.mod h1:7VUyItGoj/dMFqIOEoyMi/8FhGAWVdgAodW3o9C2h5U= +github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0 h1:K15Yb4IVc6mRbyYJC3UYQAQ2d67HyHK1nDLZMw2Azwk= +github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0/go.mod h1:JjoFyRrlzsY67+yzraAew4QQznGlpytCMNge3RO0FUQ= +github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3 h1:nU/8qvmFfJuDwuObV2mkGzhX4U2R8/I3vmm/e0U1VjM= +github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3/go.mod h1:/W4hzCr58RlGiCFBRO85jzwzyJAVJlQryaglvNsYVTc= +github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3 h1:uyNi+9tw+9f8pVfN4YvYB15rvgJUX0UsfRasNzXMb7A= +github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3/go.mod h1:2NcbgXMGBLDIWVgVNODP2rMIDUVkYQpI7/xhSPNgTuc= +github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3 h1:5b2DVOXffF2N0RdLlueOztYWSOl58hzfcea6dHB0YlM= +github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3/go.mod h1:cM6BSj4zvCSbsR+oVvwUMU8MDuyNUR0YcJcOrRmjDJI= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4 h1:lh8HZGsMeHLxOa2tsrVYFg8XfyTBTgfAPbPpxTg4aPk= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4/go.mod h1:VsriKaoeJEY5E1GY9tZL/7Xuh+dLZYzoqIX8ktHY8ME= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3 h1:3SgeLJwBEhlu9jisxUVmnRkfXDcOv0+f8i5lATrQ8Dw= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3/go.mod h1:fFVqM2mr747L1jfni/b8aMSq0jsTnjWwol7DouBBTG0= +github.com/aws/aws-sdk-go-v2/service/waf v1.24.3 h1:X/97M5OUzDerqQrlHvC6J5lR3nya7kanVnIghMIYGFs= +github.com/aws/aws-sdk-go-v2/service/waf v1.24.3/go.mod h1:4vOUaHr2PvE3ozSXxyQ7Jh1TOFnpaWs1acZIADSCx2g= +github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3 h1:8NzSiycWJ30VzJevcQ4+UVDvo8BdM1gNjrALs3IeBMk= +github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3/go.mod h1:h1NlLpD3QFxHK5r0Gt+YiDugcNZdvuwFZMePwPaeqXk= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3 h1:8UTvslyRTYXkOzsha3LMpnSCkZ6gx08gm44Sw986DmQ= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3/go.mod h1:VS4CvMgYBTMwXdqQq7U1AszFZFf3qi+9oDkz6Hm8OmI= +github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3 h1:T2WVijuvP15I8p//nyQSJ0DSJmB6r0tSIDKFCx40RI8= +github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3/go.mod h1:IkH2gyryAJK8njc9MRimGL+MnlEEHCKuCjsRAUlq8s8= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 h1:VN3Qydtdl3UlJRHVxQxSP1d8I5gtvT5zdaCCAfZST7Y= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2/go.mod h1:Z3RLpIq4q49syd921XdsKeD584kPu89iKTEjluh7908= -github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2 h1:Z0ajvI9PaRXvIHaeYV0KGrPCY8o3krfhC2I+vIrZrRc= -github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2/go.mod h1:Zq4TZVjZyNoOuTxTNbalgkA/TNaVBCLwssgOJt52xHM= -github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2 h1:nIJi5x3KEvn/IuRiqCcqFEUGzBukZSgEOIMvNkm5GZg= -github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2/go.mod h1:bQTPvaKCwGs+b6+vlzdIsPIsvTYVMCJf48iQGjmFTTs= -github.com/aws/aws-sdk-go-v2/service/xray v1.28.2 h1:xTOIu1C76VscgS78G9TROoaMqpeQ65LrAchk2wJgRzE= -github.com/aws/aws-sdk-go-v2/service/xray v1.28.2/go.mod h1:9uEy87x3oNzdHyYb/X6YCKJJ1GX+OS90GN3sVqgSep0= +github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4 h1:4nirE18+4BAJSNamigYUvQnOBpS2gQZyYpvaa0xeESI= +github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4/go.mod h1:Zq4TZVjZyNoOuTxTNbalgkA/TNaVBCLwssgOJt52xHM= +github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3 h1:FtHgnpI+R5hN0apmsNN5qBmRGhJ75IsMRb0Eyr85hrI= +github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3/go.mod h1:bQTPvaKCwGs+b6+vlzdIsPIsvTYVMCJf48iQGjmFTTs= +github.com/aws/aws-sdk-go-v2/service/xray v1.28.3 h1:6Hllmb0W8MvCLVzruBJ8+wkisUXu9zcjtsixNqgHOx8= +github.com/aws/aws-sdk-go-v2/service/xray v1.28.3/go.mod h1:9uEy87x3oNzdHyYb/X6YCKJJ1GX+OS90GN3sVqgSep0= github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= diff --git a/patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch b/patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch index ce7cfa0c897..4bfff344f6b 100644 --- a/patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch +++ b/patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch @@ -32,10 +32,10 @@ index ce583fa5c4..9fdeea49d8 100644 } } diff --git a/internal/service/s3control/access_grant.go b/internal/service/s3control/access_grant.go -index ce4d1a042d..f91e56ba64 100644 +index 6bd3274a3f..55ec1a948a 100644 --- a/internal/service/s3control/access_grant.go +++ b/internal/service/s3control/access_grant.go -@@ -103,7 +103,7 @@ func (r *accessGrantResource) Schema(ctx context.Context, request resource.Schem +@@ -102,7 +102,7 @@ func (r *accessGrantResource) Schema(ctx context.Context, request resource.Schem }, }, names.AttrTags: tftags.TagsAttribute(), @@ -58,10 +58,10 @@ index 5f13ed2859..5a0e3e931b 100644 } } diff --git a/internal/service/s3control/access_grants_location.go b/internal/service/s3control/access_grants_location.go -index ca060273a1..1189fbc20c 100644 +index 9443dfb091..2f064132c3 100644 --- a/internal/service/s3control/access_grants_location.go +++ b/internal/service/s3control/access_grants_location.go -@@ -84,7 +84,7 @@ func (r *accessGrantsLocationResource) Schema(ctx context.Context, request resou +@@ -83,7 +83,7 @@ func (r *accessGrantsLocationResource) Schema(ctx context.Context, request resou }, names.AttrID: framework.IDAttribute(), names.AttrTags: tftags.TagsAttribute(), diff --git a/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch index 96290ba2186..b723328c63f 100644 --- a/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch @@ -83,7 +83,7 @@ index cc5317b08a..b8739c1bcb 100644 Blocks: map[string]schema.Block{ names.AttrActions: schema.SetNestedBlock{ diff --git a/internal/service/securitylake/data_lake.go b/internal/service/securitylake/data_lake.go -index 3965c8aff9..e08db8c492 100644 +index 2a36dacdc9..56e99b5bc8 100644 --- a/internal/service/securitylake/data_lake.go +++ b/internal/service/securitylake/data_lake.go @@ -75,7 +75,7 @@ func (r *dataLakeResource) Schema(ctx context.Context, request resource.SchemaRe diff --git a/patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch b/patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch index 9f801046d99..cb0981c7ccf 100644 --- a/patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch +++ b/patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch @@ -52,7 +52,7 @@ index 0000000000..ffd7fa9728 + ), nil +} diff --git a/internal/service/lambda/service_package_gen.go b/internal/service/lambda/service_package_gen.go -index a93ee3f2f9..1a96148501 100644 +index c70ed5f1f4..5b33cca471 100644 --- a/internal/service/lambda/service_package_gen.go +++ b/internal/service/lambda/service_package_gen.go @@ -5,8 +5,6 @@ package lambda @@ -64,7 +64,7 @@ index a93ee3f2f9..1a96148501 100644 "github.com/hashicorp/terraform-provider-aws/internal/conns" "github.com/hashicorp/terraform-provider-aws/internal/types" "github.com/hashicorp/terraform-provider-aws/names" -@@ -138,16 +136,6 @@ func (p *servicePackage) ServicePackageName() string { +@@ -144,16 +142,6 @@ func (p *servicePackage) ServicePackageName() string { return names.Lambda } 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 beb65709d17..010d4e98934 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,7 +18,7 @@ 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 5b7dccb5a7..1bc9df029d 100644 +index fd25ee5bd0..f57bccf80e 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 @@ -31,7 +31,7 @@ index 5b7dccb5a7..1bc9df029d 100644 Blocks: map[string]schema.Block{ names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ diff --git a/internal/service/bedrockagent/agent_alias.go b/internal/service/bedrockagent/agent_alias.go -index 9c9bb20111..b0f767d142 100644 +index 2572b9419c..185d0ca643 100644 --- a/internal/service/bedrockagent/agent_alias.go +++ b/internal/service/bedrockagent/agent_alias.go @@ -97,7 +97,7 @@ func (r *agentAliasResource) Schema(ctx context.Context, request resource.Schema @@ -44,10 +44,10 @@ index 9c9bb20111..b0f767d142 100644 Blocks: map[string]schema.Block{ names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ diff --git a/internal/service/bedrockagent/knowledge_base.go b/internal/service/bedrockagent/knowledge_base.go -index d3d128d356..b34efeb8db 100644 +index b243a08bca..3fa7be7051 100644 --- a/internal/service/bedrockagent/knowledge_base.go +++ b/internal/service/bedrockagent/knowledge_base.go -@@ -88,7 +88,7 @@ func (r *knowledgeBaseResource) Schema(ctx context.Context, request resource.Sch +@@ -89,7 +89,7 @@ func (r *knowledgeBaseResource) Schema(ctx context.Context, request resource.Sch }, }, names.AttrTags: tftags.TagsAttribute(), diff --git a/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch index dd6d11794c3..806753ca2fb 100644 --- a/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix tags_all Computed for PF resources diff --git a/internal/service/appfabric/app_authorization.go b/internal/service/appfabric/app_authorization.go -index 6e6ba29267..1f0e418e56 100644 +index 4a13fe036e..716e2c75a6 100644 --- a/internal/service/appfabric/app_authorization.go +++ b/internal/service/appfabric/app_authorization.go @@ -109,7 +109,7 @@ func (r *appAuthorizationResource) Schema(ctx context.Context, request resource. @@ -18,7 +18,7 @@ index 6e6ba29267..1f0e418e56 100644 CustomType: timetypes.RFC3339Type{}, Computed: true, diff --git a/internal/service/appfabric/app_bundle.go b/internal/service/appfabric/app_bundle.go -index 0c9af1db2d..e25fca4e4e 100644 +index 3bca6523df..aae9b30c5f 100644 --- a/internal/service/appfabric/app_bundle.go +++ b/internal/service/appfabric/app_bundle.go @@ -61,7 +61,7 @@ func (r *appBundleResource) Schema(ctx context.Context, request resource.SchemaR diff --git a/patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch b/patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch index 249da36c374..263d847e28e 100644 --- a/patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch +++ b/patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Patch tags ComputedOnly for appfabric, networkmonitor, diff --git a/internal/service/appfabric/ingestion.go b/internal/service/appfabric/ingestion.go -index 5cffa7aa34..11d6d580e5 100644 +index a8c231c98b..5ab0190384 100644 --- a/internal/service/appfabric/ingestion.go +++ b/internal/service/appfabric/ingestion.go @@ -81,7 +81,7 @@ func (r *ingestionResource) Schema(ctx context.Context, request resource.SchemaR @@ -19,7 +19,7 @@ index 5cffa7aa34..11d6d580e5 100644 Required: true, Validators: []validator.String{ diff --git a/internal/service/appfabric/ingestion_destination.go b/internal/service/appfabric/ingestion_destination.go -index d2bed80052..4633226a66 100644 +index 0bd92bba6b..6bdbed0689 100644 --- a/internal/service/appfabric/ingestion_destination.go +++ b/internal/service/appfabric/ingestion_destination.go @@ -85,7 +85,7 @@ func (r *ingestionDestinationResource) Schema(ctx context.Context, request resou @@ -58,7 +58,7 @@ index 83bf8577da..fba50e09bc 100644 } } diff --git a/internal/service/networkmonitor/probe.go b/internal/service/networkmonitor/probe.go -index e07e500122..1cabc845d8 100644 +index 8fefba9ca3..598cca0f80 100644 --- a/internal/service/networkmonitor/probe.go +++ b/internal/service/networkmonitor/probe.go @@ -109,7 +109,7 @@ func (r *probeResource) Schema(ctx context.Context, request resource.SchemaReque diff --git a/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch b/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch index 0dd78c16c9a..a04fd5ab658 100644 --- a/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch +++ b/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Patch Tags for bedrock and pinpoint diff --git a/internal/service/bedrock/guardrail.go b/internal/service/bedrock/guardrail.go -index bf206322b9..d200b80002 100644 +index 04e3c61c21..e8630c6850 100644 --- a/internal/service/bedrock/guardrail.go +++ b/internal/service/bedrock/guardrail.go @@ -119,7 +119,7 @@ func (r *resourceGuardrail) Schema(ctx context.Context, req resource.SchemaReque diff --git a/patches/0068-Fix-tags_all-Computed-for-aws_backup_logically_air_g.patch b/patches/0068-Fix-tags_all-Computed-for-aws_backup_logically_air_g.patch new file mode 100644 index 00000000000..347a9bf109d --- /dev/null +++ b/patches/0068-Fix-tags_all-Computed-for-aws_backup_logically_air_g.patch @@ -0,0 +1,20 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Florian Stadler +Date: Fri, 4 Oct 2024 09:08:32 +0200 +Subject: [PATCH] Fix tags_all Computed for + aws_backup_logically_air_gapped_vault + + +diff --git a/internal/service/backup/logically_air_gapped_vault.go b/internal/service/backup/logically_air_gapped_vault.go +index 56ceaef5c9..3734264073 100644 +--- a/internal/service/backup/logically_air_gapped_vault.go ++++ b/internal/service/backup/logically_air_gapped_vault.go +@@ -87,7 +87,7 @@ func (r *logicallyAirGappedVaultResource) Schema(ctx context.Context, request re + }, + }, + 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/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index 542f57fe0d8..341354d1b9d 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -3712,6 +3712,10 @@ "current": "aws:backup/globalSettings:GlobalSettings", "majorVersion": 6 }, + "aws_backup_logically_air_gapped_vault": { + "current": "aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", + "majorVersion": 6 + }, "aws_backup_plan": { "current": "aws:backup/plan:Plan", "majorVersion": 6, @@ -4129,6 +4133,10 @@ } } }, + "aws_bedrock_guardrail_version": { + "current": "aws:bedrock/guardrailVersion:GuardrailVersion", + "majorVersion": 6 + }, "aws_bedrock_model_invocation_logging_configuration": { "current": "aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration", "majorVersion": 6 @@ -4277,6 +4285,40 @@ } } }, + "custom_transformation_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "intermediate_storage": { + "maxItemsOne": true, + "elem": { + "fields": { + "s3_location": { + "maxItemsOne": true + } + } + } + }, + "transformation": { + "maxItemsOne": true, + "elem": { + "fields": { + "transformation_function": { + "maxItemsOne": true, + "elem": { + "fields": { + "transformation_lambda_configuration": { + "maxItemsOne": true + } + } + } + } + } + } + } + } + } + }, "parsing_configuration": { "maxItemsOne": true, "elem": { @@ -10570,6 +10612,14 @@ } } }, + "aws_ec2_transit_gateway_default_route_table_association": { + "current": "aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", + "majorVersion": 6 + }, + "aws_ec2_transit_gateway_default_route_table_propagation": { + "current": "aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", + "majorVersion": 6 + }, "aws_ec2_transit_gateway_multicast_domain": { "current": "aws:ec2transitgateway/multicastDomain:MulticastDomain", "majorVersion": 6 @@ -13827,6 +13877,15 @@ } } }, + "aws_iam_group_policies_exclusive": { + "current": "aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", + "majorVersion": 6, + "fields": { + "policy_names": { + "maxItemsOne": false + } + } + }, "aws_iam_group_policy": { "current": "aws:iam/groupPolicy:GroupPolicy", "majorVersion": 6 @@ -13940,6 +13999,15 @@ "current": "aws:iam/userLoginProfile:UserLoginProfile", "majorVersion": 6 }, + "aws_iam_user_policies_exclusive": { + "current": "aws:iam/userPoliciesExclusive:UserPoliciesExclusive", + "majorVersion": 6, + "fields": { + "policy_names": { + "maxItemsOne": false + } + } + }, "aws_iam_user_policy": { "current": "aws:iam/userPolicy:UserPolicy", "majorVersion": 6 @@ -158687,6 +158755,10 @@ } } }, + "aws_securityhub_standards_control_association": { + "current": "aws:securityhub/standardsControlAssociation:StandardsControlAssociation", + "majorVersion": 6 + }, "aws_securityhub_standards_subscription": { "current": "aws:securityhub/standardsSubscription:StandardsSubscription", "majorVersion": 6 @@ -275196,6 +275268,7 @@ "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, @@ -275217,6 +275290,7 @@ "aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase": 1, "aws:bedrock/customModel:CustomModel": 1, "aws:bedrock/guardrail:Guardrail": 1, + "aws:bedrock/guardrailVersion:GuardrailVersion": 1, "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": 1, "aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration": 1, "aws:budgets/budget:Budget": 0, @@ -275586,6 +275660,8 @@ "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, @@ -275762,6 +275838,7 @@ "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/instanceProfile:InstanceProfile": 0, @@ -275782,6 +275859,7 @@ "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/virtualMfaDevice:VirtualMfaDevice": 0, @@ -276276,6 +276354,7 @@ "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, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index 870fee85313..6d10ff28749 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_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}}},"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":0,"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/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"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/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/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: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: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/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/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/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/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"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/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/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"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/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":0,"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/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/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/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/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: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/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: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/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":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/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/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/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: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/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: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/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/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/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/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/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: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_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}}},"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":0,"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/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/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/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: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: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/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/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/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"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/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/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/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":0,"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/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/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/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/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: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/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: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/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":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/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/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: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/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: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/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/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/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/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/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: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 5488c4c03b6..cf7d31530a2 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -18762,6 +18762,15 @@ } } }, + "aws:backup/LogicallyAirGappedVaultTimeouts:LogicallyAirGappedVaultTimeouts": { + "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:backup/PlanAdvancedBackupSetting:PlanAdvancedBackupSetting": { "properties": { "backupOptions": { @@ -21522,6 +21531,19 @@ "type" ] }, + "aws:bedrock/AgentAgentActionGroupTimeouts:AgentAgentActionGroupTimeouts": { + "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" + }, + "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:bedrock/AgentAgentAliasRoutingConfiguration:AgentAgentAliasRoutingConfiguration": { "properties": { "agentVersion": { @@ -21765,6 +21787,10 @@ "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationChunkingConfiguration:AgentDataSourceVectorIngestionConfigurationChunkingConfiguration", "description": "Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunking_configuration` block for details.\n" }, + "customTransformationConfiguration": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration", + "description": "Configuration for custom transformation of data source documents.\n" + }, "parsingConfiguration": { "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationParsingConfiguration:AgentDataSourceVectorIngestionConfigurationParsingConfiguration", "description": "Configuration for custom parsing of data source documents. See `parsing_configuration` block for details.\n" @@ -21866,6 +21892,76 @@ "maxToken" ] }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration": { + "properties": { + "intermediateStorage": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage", + "description": "The intermediate storage for custom transformation.\n" + }, + "transformation": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation" + } + }, + "type": "object" + }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage": { + "properties": { + "s3Location": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location", + "description": "Configuration block for intermedia S3 storage.\n" + } + }, + "type": "object" + }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location": { + "properties": { + "uri": { + "type": "string", + "description": "S3 URI for intermediate storage.\n" + } + }, + "type": "object", + "required": [ + "uri" + ] + }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation": { + "properties": { + "stepToApply": { + "type": "string", + "description": "Currently only `POST_CHUNKING` is supported.\n" + }, + "transformationFunction": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction", + "description": "The configuration of transformation function.\n" + } + }, + "type": "object", + "required": [ + "stepToApply" + ] + }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction": { + "properties": { + "transformationLambdaConfiguration": { + "$ref": "#/types/aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration", + "description": "The lambda configuration for custom transformation.\n" + } + }, + "type": "object" + }, + "aws:bedrock/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration:AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration": { + "properties": { + "lambdaArn": { + "type": "string", + "description": "The ARN of the lambda to use for custom transformation.\n" + } + }, + "type": "object", + "required": [ + "lambdaArn" + ] + }, "aws:bedrock/AgentDataSourceVectorIngestionConfigurationParsingConfiguration:AgentDataSourceVectorIngestionConfigurationParsingConfiguration": { "properties": { "bedrockFoundationModelConfiguration": { @@ -22471,6 +22567,19 @@ } } }, + "aws:bedrock/GuardrailVersionTimeouts:GuardrailVersionTimeouts": { + "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" + } + }, + "type": "object" + }, "aws:bedrock/GuardrailWordPolicyConfig:GuardrailWordPolicyConfig": { "properties": { "managedWordListsConfigs": { @@ -59807,6 +59916,40 @@ "values" ] }, + "aws:ec2transitgateway/DefaultRouteTableAssociationTimeouts:DefaultRouteTableAssociationTimeouts": { + "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:ec2transitgateway/DefaultRouteTablePropagationTimeouts:DefaultRouteTablePropagationTimeouts": { + "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:ec2transitgateway/InstanceConnectEndpointTimeouts:InstanceConnectEndpointTimeouts": { "properties": { "create": { @@ -69608,6 +69751,10 @@ }, "aws:globalaccelerator/EndpointGroupEndpointConfiguration:EndpointGroupEndpointConfiguration": { "properties": { + "attachmentArn": { + "type": "string", + "description": "An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details.\n" + }, "clientIpPreservationEnabled": { "type": "boolean", "description": "Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`.\n**Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider.\n" @@ -135165,7 +135312,7 @@ "properties": { "objectSizeGreaterThan": { "type": "integer", - "description": "Minimum object size to which the rule applies. Value must be at least `0` if specified.\n" + "description": "Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.\n" }, "objectSizeLessThan": { "type": "integer", @@ -173245,7 +173392,7 @@ } }, "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.Python3d7,\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.PYTHON3D7,\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.Python3d7,\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.RuntimePython3d7),\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.7\")\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.7\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", + "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", @@ -176135,7 +176282,7 @@ } }, "aws:apigatewayv2/integration:Integration": { - "description": "Manages an Amazon API Gateway Version 2 integration.\nMore information can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html).\n\n## Example Usage\n\n### Basic\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n integrationType: \"MOCK\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n integration_type=\"MOCK\")\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.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n IntegrationType = \"MOCK\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tIntegrationType: pulumi.String(\"MOCK\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.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 example = new Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .integrationType(\"MOCK\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n integrationType: MOCK\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\";\n\nconst example = new aws.lambda.Function(\"example\", {\n code: new pulumi.asset.FileArchive(\"example.zip\"),\n name: \"Example\",\n role: exampleAwsIamRole.arn,\n handler: \"index.handler\",\n runtime: aws.lambda.Runtime.NodeJS16dX,\n});\nconst exampleIntegration = new aws.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n integrationType: \"AWS_PROXY\",\n connectionType: \"INTERNET\",\n contentHandlingStrategy: \"CONVERT_TO_TEXT\",\n description: \"Lambda example\",\n integrationMethod: \"POST\",\n integrationUri: example.invokeArn,\n passthroughBehavior: \"WHEN_NO_MATCH\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.Function(\"example\",\n code=pulumi.FileArchive(\"example.zip\"),\n name=\"Example\",\n role=example_aws_iam_role[\"arn\"],\n handler=\"index.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS16D_X)\nexample_integration = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n integration_type=\"AWS_PROXY\",\n connection_type=\"INTERNET\",\n content_handling_strategy=\"CONVERT_TO_TEXT\",\n description=\"Lambda example\",\n integration_method=\"POST\",\n integration_uri=example.invoke_arn,\n passthrough_behavior=\"WHEN_NO_MATCH\")\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.Lambda.Function(\"example\", new()\n {\n Code = new FileArchive(\"example.zip\"),\n Name = \"Example\",\n Role = exampleAwsIamRole.Arn,\n Handler = \"index.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS16dX,\n });\n\n var exampleIntegration = new Aws.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n IntegrationType = \"AWS_PROXY\",\n ConnectionType = \"INTERNET\",\n ContentHandlingStrategy = \"CONVERT_TO_TEXT\",\n Description = \"Lambda example\",\n IntegrationMethod = \"POST\",\n IntegrationUri = example.InvokeArn,\n PassthroughBehavior = \"WHEN_NO_MATCH\",\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/apigatewayv2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewFunction(ctx, \"example\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"example.zip\"),\n\t\t\tName: pulumi.String(\"Example\"),\n\t\t\tRole: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tHandler: pulumi.String(\"index.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS16dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tIntegrationType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tConnectionType: pulumi.String(\"INTERNET\"),\n\t\t\tContentHandlingStrategy: pulumi.String(\"CONVERT_TO_TEXT\"),\n\t\t\tDescription: pulumi.String(\"Lambda example\"),\n\t\t\tIntegrationMethod: pulumi.String(\"POST\"),\n\t\t\tIntegrationUri: example.InvokeArn,\n\t\t\tPassthroughBehavior: pulumi.String(\"WHEN_NO_MATCH\"),\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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.IntegrationArgs;\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 var example = new Function(\"example\", FunctionArgs.builder()\n .code(new FileArchive(\"example.zip\"))\n .name(\"Example\")\n .role(exampleAwsIamRole.arn())\n .handler(\"index.handler\")\n .runtime(\"nodejs16.x\")\n .build());\n\n var exampleIntegration = new Integration(\"exampleIntegration\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .integrationType(\"AWS_PROXY\")\n .connectionType(\"INTERNET\")\n .contentHandlingStrategy(\"CONVERT_TO_TEXT\")\n .description(\"Lambda example\")\n .integrationMethod(\"POST\")\n .integrationUri(example.invokeArn())\n .passthroughBehavior(\"WHEN_NO_MATCH\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: example.zip\n name: Example\n role: ${exampleAwsIamRole.arn}\n handler: index.handler\n runtime: nodejs16.x\n exampleIntegration:\n type: aws:apigatewayv2:Integration\n name: example\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n integrationType: AWS_PROXY\n connectionType: INTERNET\n contentHandlingStrategy: CONVERT_TO_TEXT\n description: Lambda example\n integrationMethod: POST\n integrationUri: ${example.invokeArn}\n passthroughBehavior: WHEN_NO_MATCH\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Service Integration\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n credentialsArn: exampleAwsIamRole.arn,\n description: \"SQS example\",\n integrationType: \"AWS_PROXY\",\n integrationSubtype: \"SQS-SendMessage\",\n requestParameters: {\n QueueUrl: \"$request.header.queueUrl\",\n MessageBody: \"$request.body.message\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n credentials_arn=example_aws_iam_role[\"arn\"],\n description=\"SQS example\",\n integration_type=\"AWS_PROXY\",\n integration_subtype=\"SQS-SendMessage\",\n request_parameters={\n \"QueueUrl\": \"$request.header.queueUrl\",\n \"MessageBody\": \"$request.body.message\",\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.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n CredentialsArn = exampleAwsIamRole.Arn,\n Description = \"SQS example\",\n IntegrationType = \"AWS_PROXY\",\n IntegrationSubtype = \"SQS-SendMessage\",\n RequestParameters = \n {\n { \"QueueUrl\", \"$request.header.queueUrl\" },\n { \"MessageBody\", \"$request.body.message\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tCredentialsArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tDescription: pulumi.String(\"SQS example\"),\n\t\t\tIntegrationType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tIntegrationSubtype: pulumi.String(\"SQS-SendMessage\"),\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"QueueUrl\": pulumi.String(\"$request.header.queueUrl\"),\n\t\t\t\t\"MessageBody\": pulumi.String(\"$request.body.message\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.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 example = new Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .credentialsArn(exampleAwsIamRole.arn())\n .description(\"SQS example\")\n .integrationType(\"AWS_PROXY\")\n .integrationSubtype(\"SQS-SendMessage\")\n .requestParameters(Map.ofEntries(\n Map.entry(\"QueueUrl\", \"$request.header.queueUrl\"),\n Map.entry(\"MessageBody\", \"$request.body.message\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n credentialsArn: ${exampleAwsIamRole.arn}\n description: SQS example\n integrationType: AWS_PROXY\n integrationSubtype: SQS-SendMessage\n requestParameters:\n QueueUrl: $request.header.queueUrl\n MessageBody: $request.body.message\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private Integration\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n credentialsArn: exampleAwsIamRole.arn,\n description: \"Example with a load balancer\",\n integrationType: \"HTTP_PROXY\",\n integrationUri: exampleAwsLbListener.arn,\n integrationMethod: \"ANY\",\n connectionType: \"VPC_LINK\",\n connectionId: exampleAwsApigatewayv2VpcLink.id,\n tlsConfig: {\n serverNameToVerify: \"example.com\",\n },\n requestParameters: {\n \"append:header.authforintegration\": \"$context.authorizer.authorizerResponse\",\n \"overwrite:path\": \"staticValueForIntegration\",\n },\n responseParameters: [\n {\n statusCode: \"403\",\n mappings: {\n \"append:header.auth\": \"$context.authorizer.authorizerResponse\",\n },\n },\n {\n statusCode: \"200\",\n mappings: {\n \"overwrite:statuscode\": \"204\",\n },\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n credentials_arn=example_aws_iam_role[\"arn\"],\n description=\"Example with a load balancer\",\n integration_type=\"HTTP_PROXY\",\n integration_uri=example_aws_lb_listener[\"arn\"],\n integration_method=\"ANY\",\n connection_type=\"VPC_LINK\",\n connection_id=example_aws_apigatewayv2_vpc_link[\"id\"],\n tls_config={\n \"server_name_to_verify\": \"example.com\",\n },\n request_parameters={\n \"append:header.authforintegration\": \"$context.authorizer.authorizerResponse\",\n \"overwrite:path\": \"staticValueForIntegration\",\n },\n response_parameters=[\n {\n \"status_code\": \"403\",\n \"mappings\": {\n \"append_header_auth\": \"$context.authorizer.authorizerResponse\",\n },\n },\n {\n \"status_code\": \"200\",\n \"mappings\": {\n \"overwrite_statuscode\": \"204\",\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 example = new Aws.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n CredentialsArn = exampleAwsIamRole.Arn,\n Description = \"Example with a load balancer\",\n IntegrationType = \"HTTP_PROXY\",\n IntegrationUri = exampleAwsLbListener.Arn,\n IntegrationMethod = \"ANY\",\n ConnectionType = \"VPC_LINK\",\n ConnectionId = exampleAwsApigatewayv2VpcLink.Id,\n TlsConfig = new Aws.ApiGatewayV2.Inputs.IntegrationTlsConfigArgs\n {\n ServerNameToVerify = \"example.com\",\n },\n RequestParameters = \n {\n { \"append:header.authforintegration\", \"$context.authorizer.authorizerResponse\" },\n { \"overwrite:path\", \"staticValueForIntegration\" },\n },\n ResponseParameters = new[]\n {\n new Aws.ApiGatewayV2.Inputs.IntegrationResponseParameterArgs\n {\n StatusCode = \"403\",\n Mappings = \n {\n { \"append:header.auth\", \"$context.authorizer.authorizerResponse\" },\n },\n },\n new Aws.ApiGatewayV2.Inputs.IntegrationResponseParameterArgs\n {\n StatusCode = \"200\",\n Mappings = \n {\n { \"overwrite:statuscode\", \"204\" },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tCredentialsArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tDescription: pulumi.String(\"Example with a load balancer\"),\n\t\t\tIntegrationType: pulumi.String(\"HTTP_PROXY\"),\n\t\t\tIntegrationUri: pulumi.Any(exampleAwsLbListener.Arn),\n\t\t\tIntegrationMethod: pulumi.String(\"ANY\"),\n\t\t\tConnectionType: pulumi.String(\"VPC_LINK\"),\n\t\t\tConnectionId: pulumi.Any(exampleAwsApigatewayv2VpcLink.Id),\n\t\t\tTlsConfig: \u0026apigatewayv2.IntegrationTlsConfigArgs{\n\t\t\t\tServerNameToVerify: pulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"append:header.authforintegration\": pulumi.String(\"$context.authorizer.authorizerResponse\"),\n\t\t\t\t\"overwrite:path\": pulumi.String(\"staticValueForIntegration\"),\n\t\t\t},\n\t\t\tResponseParameters: apigatewayv2.IntegrationResponseParameterArray{\n\t\t\t\t\u0026apigatewayv2.IntegrationResponseParameterArgs{\n\t\t\t\t\tStatusCode: pulumi.String(\"403\"),\n\t\t\t\t\tMappings: pulumi.StringMap{\n\t\t\t\t\t\t\"append:header.auth\": pulumi.String(\"$context.authorizer.authorizerResponse\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026apigatewayv2.IntegrationResponseParameterArgs{\n\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\n\t\t\t\t\tMappings: pulumi.StringMap{\n\t\t\t\t\t\t\"overwrite:statuscode\": pulumi.String(\"204\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.IntegrationArgs;\nimport com.pulumi.aws.apigatewayv2.inputs.IntegrationTlsConfigArgs;\nimport com.pulumi.aws.apigatewayv2.inputs.IntegrationResponseParameterArgs;\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 Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .credentialsArn(exampleAwsIamRole.arn())\n .description(\"Example with a load balancer\")\n .integrationType(\"HTTP_PROXY\")\n .integrationUri(exampleAwsLbListener.arn())\n .integrationMethod(\"ANY\")\n .connectionType(\"VPC_LINK\")\n .connectionId(exampleAwsApigatewayv2VpcLink.id())\n .tlsConfig(IntegrationTlsConfigArgs.builder()\n .serverNameToVerify(\"example.com\")\n .build())\n .requestParameters(Map.ofEntries(\n Map.entry(\"append:header.authforintegration\", \"$context.authorizer.authorizerResponse\"),\n Map.entry(\"overwrite:path\", \"staticValueForIntegration\")\n ))\n .responseParameters( \n IntegrationResponseParameterArgs.builder()\n .statusCode(403)\n .mappings(Map.of(\"append:header.auth\", \"$context.authorizer.authorizerResponse\"))\n .build(),\n IntegrationResponseParameterArgs.builder()\n .statusCode(200)\n .mappings(Map.of(\"overwrite:statuscode\", \"204\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n credentialsArn: ${exampleAwsIamRole.arn}\n description: Example with a load balancer\n integrationType: HTTP_PROXY\n integrationUri: ${exampleAwsLbListener.arn}\n integrationMethod: ANY\n connectionType: VPC_LINK\n connectionId: ${exampleAwsApigatewayv2VpcLink.id}\n tlsConfig:\n serverNameToVerify: example.com\n requestParameters:\n append:header.authforintegration: $context.authorizer.authorizerResponse\n overwrite:path: staticValueForIntegration\n responseParameters:\n - statusCode: 403\n mappings:\n append:header.auth: $context.authorizer.authorizerResponse\n - statusCode: 200\n mappings:\n overwrite:statuscode: '204'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_apigatewayv2_integration` using the API identifier and integration identifier. For example:\n\n```sh\n$ pulumi import aws:apigatewayv2/integration:Integration example aabbccddee/1122334\n```\n-\u003e __Note:__ The API Gateway managed integration created as part of [_quick_create_](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html#apigateway-definition-quick-create) cannot be imported.\n\n", + "description": "Manages an Amazon API Gateway Version 2 integration.\nMore information can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html).\n\n## Example Usage\n\n### Basic\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n integrationType: \"MOCK\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n integration_type=\"MOCK\")\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.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n IntegrationType = \"MOCK\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tIntegrationType: pulumi.String(\"MOCK\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.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 example = new Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .integrationType(\"MOCK\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n integrationType: MOCK\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\";\n\nconst example = new aws.lambda.Function(\"example\", {\n code: new pulumi.asset.FileArchive(\"example.zip\"),\n name: \"Example\",\n role: exampleAwsIamRole.arn,\n handler: \"index.handler\",\n runtime: aws.lambda.Runtime.NodeJS20dX,\n});\nconst exampleIntegration = new aws.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n integrationType: \"AWS_PROXY\",\n connectionType: \"INTERNET\",\n contentHandlingStrategy: \"CONVERT_TO_TEXT\",\n description: \"Lambda example\",\n integrationMethod: \"POST\",\n integrationUri: example.invokeArn,\n passthroughBehavior: \"WHEN_NO_MATCH\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.Function(\"example\",\n code=pulumi.FileArchive(\"example.zip\"),\n name=\"Example\",\n role=example_aws_iam_role[\"arn\"],\n handler=\"index.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS20D_X)\nexample_integration = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n integration_type=\"AWS_PROXY\",\n connection_type=\"INTERNET\",\n content_handling_strategy=\"CONVERT_TO_TEXT\",\n description=\"Lambda example\",\n integration_method=\"POST\",\n integration_uri=example.invoke_arn,\n passthrough_behavior=\"WHEN_NO_MATCH\")\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.Lambda.Function(\"example\", new()\n {\n Code = new FileArchive(\"example.zip\"),\n Name = \"Example\",\n Role = exampleAwsIamRole.Arn,\n Handler = \"index.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS20dX,\n });\n\n var exampleIntegration = new Aws.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n IntegrationType = \"AWS_PROXY\",\n ConnectionType = \"INTERNET\",\n ContentHandlingStrategy = \"CONVERT_TO_TEXT\",\n Description = \"Lambda example\",\n IntegrationMethod = \"POST\",\n IntegrationUri = example.InvokeArn,\n PassthroughBehavior = \"WHEN_NO_MATCH\",\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/apigatewayv2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewFunction(ctx, \"example\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"example.zip\"),\n\t\t\tName: pulumi.String(\"Example\"),\n\t\t\tRole: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tHandler: pulumi.String(\"index.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS20dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tIntegrationType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tConnectionType: pulumi.String(\"INTERNET\"),\n\t\t\tContentHandlingStrategy: pulumi.String(\"CONVERT_TO_TEXT\"),\n\t\t\tDescription: pulumi.String(\"Lambda example\"),\n\t\t\tIntegrationMethod: pulumi.String(\"POST\"),\n\t\t\tIntegrationUri: example.InvokeArn,\n\t\t\tPassthroughBehavior: pulumi.String(\"WHEN_NO_MATCH\"),\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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.IntegrationArgs;\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 var example = new Function(\"example\", FunctionArgs.builder()\n .code(new FileArchive(\"example.zip\"))\n .name(\"Example\")\n .role(exampleAwsIamRole.arn())\n .handler(\"index.handler\")\n .runtime(\"nodejs20.x\")\n .build());\n\n var exampleIntegration = new Integration(\"exampleIntegration\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .integrationType(\"AWS_PROXY\")\n .connectionType(\"INTERNET\")\n .contentHandlingStrategy(\"CONVERT_TO_TEXT\")\n .description(\"Lambda example\")\n .integrationMethod(\"POST\")\n .integrationUri(example.invokeArn())\n .passthroughBehavior(\"WHEN_NO_MATCH\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: example.zip\n name: Example\n role: ${exampleAwsIamRole.arn}\n handler: index.handler\n runtime: nodejs20.x\n exampleIntegration:\n type: aws:apigatewayv2:Integration\n name: example\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n integrationType: AWS_PROXY\n connectionType: INTERNET\n contentHandlingStrategy: CONVERT_TO_TEXT\n description: Lambda example\n integrationMethod: POST\n integrationUri: ${example.invokeArn}\n passthroughBehavior: WHEN_NO_MATCH\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS Service Integration\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n credentialsArn: exampleAwsIamRole.arn,\n description: \"SQS example\",\n integrationType: \"AWS_PROXY\",\n integrationSubtype: \"SQS-SendMessage\",\n requestParameters: {\n QueueUrl: \"$request.header.queueUrl\",\n MessageBody: \"$request.body.message\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n credentials_arn=example_aws_iam_role[\"arn\"],\n description=\"SQS example\",\n integration_type=\"AWS_PROXY\",\n integration_subtype=\"SQS-SendMessage\",\n request_parameters={\n \"QueueUrl\": \"$request.header.queueUrl\",\n \"MessageBody\": \"$request.body.message\",\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.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n CredentialsArn = exampleAwsIamRole.Arn,\n Description = \"SQS example\",\n IntegrationType = \"AWS_PROXY\",\n IntegrationSubtype = \"SQS-SendMessage\",\n RequestParameters = \n {\n { \"QueueUrl\", \"$request.header.queueUrl\" },\n { \"MessageBody\", \"$request.body.message\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tCredentialsArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tDescription: pulumi.String(\"SQS example\"),\n\t\t\tIntegrationType: pulumi.String(\"AWS_PROXY\"),\n\t\t\tIntegrationSubtype: pulumi.String(\"SQS-SendMessage\"),\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"QueueUrl\": pulumi.String(\"$request.header.queueUrl\"),\n\t\t\t\t\"MessageBody\": pulumi.String(\"$request.body.message\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.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 example = new Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .credentialsArn(exampleAwsIamRole.arn())\n .description(\"SQS example\")\n .integrationType(\"AWS_PROXY\")\n .integrationSubtype(\"SQS-SendMessage\")\n .requestParameters(Map.ofEntries(\n Map.entry(\"QueueUrl\", \"$request.header.queueUrl\"),\n Map.entry(\"MessageBody\", \"$request.body.message\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n credentialsArn: ${exampleAwsIamRole.arn}\n description: SQS example\n integrationType: AWS_PROXY\n integrationSubtype: SQS-SendMessage\n requestParameters:\n QueueUrl: $request.header.queueUrl\n MessageBody: $request.body.message\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private Integration\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.apigatewayv2.Integration(\"example\", {\n apiId: exampleAwsApigatewayv2Api.id,\n credentialsArn: exampleAwsIamRole.arn,\n description: \"Example with a load balancer\",\n integrationType: \"HTTP_PROXY\",\n integrationUri: exampleAwsLbListener.arn,\n integrationMethod: \"ANY\",\n connectionType: \"VPC_LINK\",\n connectionId: exampleAwsApigatewayv2VpcLink.id,\n tlsConfig: {\n serverNameToVerify: \"example.com\",\n },\n requestParameters: {\n \"append:header.authforintegration\": \"$context.authorizer.authorizerResponse\",\n \"overwrite:path\": \"staticValueForIntegration\",\n },\n responseParameters: [\n {\n statusCode: \"403\",\n mappings: {\n \"append:header.auth\": \"$context.authorizer.authorizerResponse\",\n },\n },\n {\n statusCode: \"200\",\n mappings: {\n \"overwrite:statuscode\": \"204\",\n },\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigatewayv2.Integration(\"example\",\n api_id=example_aws_apigatewayv2_api[\"id\"],\n credentials_arn=example_aws_iam_role[\"arn\"],\n description=\"Example with a load balancer\",\n integration_type=\"HTTP_PROXY\",\n integration_uri=example_aws_lb_listener[\"arn\"],\n integration_method=\"ANY\",\n connection_type=\"VPC_LINK\",\n connection_id=example_aws_apigatewayv2_vpc_link[\"id\"],\n tls_config={\n \"server_name_to_verify\": \"example.com\",\n },\n request_parameters={\n \"append:header.authforintegration\": \"$context.authorizer.authorizerResponse\",\n \"overwrite:path\": \"staticValueForIntegration\",\n },\n response_parameters=[\n {\n \"status_code\": \"403\",\n \"mappings\": {\n \"append_header_auth\": \"$context.authorizer.authorizerResponse\",\n },\n },\n {\n \"status_code\": \"200\",\n \"mappings\": {\n \"overwrite_statuscode\": \"204\",\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 example = new Aws.ApiGatewayV2.Integration(\"example\", new()\n {\n ApiId = exampleAwsApigatewayv2Api.Id,\n CredentialsArn = exampleAwsIamRole.Arn,\n Description = \"Example with a load balancer\",\n IntegrationType = \"HTTP_PROXY\",\n IntegrationUri = exampleAwsLbListener.Arn,\n IntegrationMethod = \"ANY\",\n ConnectionType = \"VPC_LINK\",\n ConnectionId = exampleAwsApigatewayv2VpcLink.Id,\n TlsConfig = new Aws.ApiGatewayV2.Inputs.IntegrationTlsConfigArgs\n {\n ServerNameToVerify = \"example.com\",\n },\n RequestParameters = \n {\n { \"append:header.authforintegration\", \"$context.authorizer.authorizerResponse\" },\n { \"overwrite:path\", \"staticValueForIntegration\" },\n },\n ResponseParameters = new[]\n {\n new Aws.ApiGatewayV2.Inputs.IntegrationResponseParameterArgs\n {\n StatusCode = \"403\",\n Mappings = \n {\n { \"append:header.auth\", \"$context.authorizer.authorizerResponse\" },\n },\n },\n new Aws.ApiGatewayV2.Inputs.IntegrationResponseParameterArgs\n {\n StatusCode = \"200\",\n Mappings = \n {\n { \"overwrite:statuscode\", \"204\" },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2\"\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 := apigatewayv2.NewIntegration(ctx, \"example\", \u0026apigatewayv2.IntegrationArgs{\n\t\t\tApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id),\n\t\t\tCredentialsArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tDescription: pulumi.String(\"Example with a load balancer\"),\n\t\t\tIntegrationType: pulumi.String(\"HTTP_PROXY\"),\n\t\t\tIntegrationUri: pulumi.Any(exampleAwsLbListener.Arn),\n\t\t\tIntegrationMethod: pulumi.String(\"ANY\"),\n\t\t\tConnectionType: pulumi.String(\"VPC_LINK\"),\n\t\t\tConnectionId: pulumi.Any(exampleAwsApigatewayv2VpcLink.Id),\n\t\t\tTlsConfig: \u0026apigatewayv2.IntegrationTlsConfigArgs{\n\t\t\t\tServerNameToVerify: pulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tRequestParameters: pulumi.StringMap{\n\t\t\t\t\"append:header.authforintegration\": pulumi.String(\"$context.authorizer.authorizerResponse\"),\n\t\t\t\t\"overwrite:path\": pulumi.String(\"staticValueForIntegration\"),\n\t\t\t},\n\t\t\tResponseParameters: apigatewayv2.IntegrationResponseParameterArray{\n\t\t\t\t\u0026apigatewayv2.IntegrationResponseParameterArgs{\n\t\t\t\t\tStatusCode: pulumi.String(\"403\"),\n\t\t\t\t\tMappings: pulumi.StringMap{\n\t\t\t\t\t\t\"append:header.auth\": pulumi.String(\"$context.authorizer.authorizerResponse\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026apigatewayv2.IntegrationResponseParameterArgs{\n\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\n\t\t\t\t\tMappings: pulumi.StringMap{\n\t\t\t\t\t\t\"overwrite:statuscode\": pulumi.String(\"204\"),\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.apigatewayv2.Integration;\nimport com.pulumi.aws.apigatewayv2.IntegrationArgs;\nimport com.pulumi.aws.apigatewayv2.inputs.IntegrationTlsConfigArgs;\nimport com.pulumi.aws.apigatewayv2.inputs.IntegrationResponseParameterArgs;\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 Integration(\"example\", IntegrationArgs.builder()\n .apiId(exampleAwsApigatewayv2Api.id())\n .credentialsArn(exampleAwsIamRole.arn())\n .description(\"Example with a load balancer\")\n .integrationType(\"HTTP_PROXY\")\n .integrationUri(exampleAwsLbListener.arn())\n .integrationMethod(\"ANY\")\n .connectionType(\"VPC_LINK\")\n .connectionId(exampleAwsApigatewayv2VpcLink.id())\n .tlsConfig(IntegrationTlsConfigArgs.builder()\n .serverNameToVerify(\"example.com\")\n .build())\n .requestParameters(Map.ofEntries(\n Map.entry(\"append:header.authforintegration\", \"$context.authorizer.authorizerResponse\"),\n Map.entry(\"overwrite:path\", \"staticValueForIntegration\")\n ))\n .responseParameters( \n IntegrationResponseParameterArgs.builder()\n .statusCode(403)\n .mappings(Map.of(\"append:header.auth\", \"$context.authorizer.authorizerResponse\"))\n .build(),\n IntegrationResponseParameterArgs.builder()\n .statusCode(200)\n .mappings(Map.of(\"overwrite:statuscode\", \"204\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:apigatewayv2:Integration\n properties:\n apiId: ${exampleAwsApigatewayv2Api.id}\n credentialsArn: ${exampleAwsIamRole.arn}\n description: Example with a load balancer\n integrationType: HTTP_PROXY\n integrationUri: ${exampleAwsLbListener.arn}\n integrationMethod: ANY\n connectionType: VPC_LINK\n connectionId: ${exampleAwsApigatewayv2VpcLink.id}\n tlsConfig:\n serverNameToVerify: example.com\n requestParameters:\n append:header.authforintegration: $context.authorizer.authorizerResponse\n overwrite:path: staticValueForIntegration\n responseParameters:\n - statusCode: 403\n mappings:\n append:header.auth: $context.authorizer.authorizerResponse\n - statusCode: 200\n mappings:\n overwrite:statuscode: '204'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_apigatewayv2_integration` using the API identifier and integration identifier. For example:\n\n```sh\n$ pulumi import aws:apigatewayv2/integration:Integration example aabbccddee/1122334\n```\n-\u003e __Note:__ The API Gateway managed integration created as part of [_quick_create_](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html#apigateway-definition-quick-create) cannot be imported.\n\n", "properties": { "apiId": { "type": "string", @@ -179545,7 +179692,7 @@ } }, "aws:appflow/connectorProfile:ConnectorProfile": { - "description": "Provides an AppFlow connector profile resource.\n\nFor information about AppFlow flows, see the [Amazon AppFlow API Reference](https://docs.aws.amazon.com/appflow/1.0/APIReference/Welcome.html).\nFor specific information about creating an AppFlow connector profile, see the\n[CreateConnectorProfile](https://docs.aws.amazon.com/appflow/1.0/APIReference/API_CreateConnectorProfile.html) page in the Amazon AppFlow API Reference.\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 = aws.iam.getPolicy({\n name: \"AmazonRedshiftAllCommandsFullAccess\",\n});\nconst exampleRole = new aws.iam.Role(\"example\", {\n name: \"example_role\",\n managedPolicyArns: [test.arn],\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst exampleBucketV2 = new aws.s3.BucketV2(\"example\", {bucket: \"example_bucket\"});\nconst exampleCluster = new aws.redshift.Cluster(\"example\", {\n clusterIdentifier: \"example_cluster\",\n databaseName: \"example_db\",\n masterUsername: \"exampleuser\",\n masterPassword: \"examplePassword123!\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst exampleConnectorProfile = new aws.appflow.ConnectorProfile(\"example\", {\n name: \"example_profile\",\n connectorType: \"Redshift\",\n connectionMode: \"Public\",\n connectorProfileConfig: {\n connectorProfileCredentials: {\n redshift: {\n password: exampleCluster.masterPassword,\n username: exampleCluster.masterUsername,\n },\n },\n connectorProfileProperties: {\n redshift: {\n bucketName: exampleBucketV2.name,\n databaseUrl: pulumi.interpolate`jdbc:redshift://${exampleCluster.endpoint}/${exampleCluster.databaseName}`,\n roleArn: exampleRole.arn,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.get_policy(name=\"AmazonRedshiftAllCommandsFullAccess\")\nexample_role = aws.iam.Role(\"example\",\n name=\"example_role\",\n managed_policy_arns=[test[\"arn\"]],\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\nexample_bucket_v2 = aws.s3.BucketV2(\"example\", bucket=\"example_bucket\")\nexample_cluster = aws.redshift.Cluster(\"example\",\n cluster_identifier=\"example_cluster\",\n database_name=\"example_db\",\n master_username=\"exampleuser\",\n master_password=\"examplePassword123!\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\nexample_connector_profile = aws.appflow.ConnectorProfile(\"example\",\n name=\"example_profile\",\n connector_type=\"Redshift\",\n connection_mode=\"Public\",\n connector_profile_config={\n \"connector_profile_credentials\": {\n \"redshift\": {\n \"password\": example_cluster.master_password,\n \"username\": example_cluster.master_username,\n },\n },\n \"connector_profile_properties\": {\n \"redshift\": {\n \"bucket_name\": example_bucket_v2.name,\n \"database_url\": pulumi.Output.all(\n endpoint=example_cluster.endpoint,\n database_name=example_cluster.database_name\n).apply(lambda resolved_outputs: f\"jdbc:redshift://{resolved_outputs['endpoint']}/{resolved_outputs['database_name']}\")\n,\n \"role_arn\": example_role.arn,\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 example = Aws.Iam.GetPolicy.Invoke(new()\n {\n Name = \"AmazonRedshiftAllCommandsFullAccess\",\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example_role\",\n ManagedPolicyArns = new[]\n {\n test.Arn,\n },\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var exampleBucketV2 = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example_bucket\",\n });\n\n var exampleCluster = new Aws.RedShift.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example_cluster\",\n DatabaseName = \"example_db\",\n MasterUsername = \"exampleuser\",\n MasterPassword = \"examplePassword123!\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var exampleConnectorProfile = new Aws.AppFlow.ConnectorProfile(\"example\", new()\n {\n Name = \"example_profile\",\n ConnectorType = \"Redshift\",\n ConnectionMode = \"Public\",\n ConnectorProfileConfig = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigArgs\n {\n ConnectorProfileCredentials = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs\n {\n Redshift = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs\n {\n Password = exampleCluster.MasterPassword,\n Username = exampleCluster.MasterUsername,\n },\n },\n ConnectorProfileProperties = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs\n {\n Redshift = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs\n {\n BucketName = exampleBucketV2.Name,\n DatabaseUrl = Output.Tuple(exampleCluster.Endpoint, exampleCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n RoleArn = exampleRole.Arn,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appflow\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := iam.LookupPolicy(ctx, \u0026iam.LookupPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"AmazonRedshiftAllCommandsFullAccess\"),\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\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\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example_role\"),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t},\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\texampleBucketV2, err := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example_bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redshift.NewCluster(ctx, \"example\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example_cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"example_db\"),\n\t\t\tMasterUsername: pulumi.String(\"exampleuser\"),\n\t\t\tMasterPassword: pulumi.String(\"examplePassword123!\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appflow.NewConnectorProfile(ctx, \"example\", \u0026appflow.ConnectorProfileArgs{\n\t\t\tName: pulumi.String(\"example_profile\"),\n\t\t\tConnectorType: pulumi.String(\"Redshift\"),\n\t\t\tConnectionMode: pulumi.String(\"Public\"),\n\t\t\tConnectorProfileConfig: \u0026appflow.ConnectorProfileConnectorProfileConfigArgs{\n\t\t\t\tConnectorProfileCredentials: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs{\n\t\t\t\t\tRedshift: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs{\n\t\t\t\t\t\tPassword: exampleCluster.MasterPassword,\n\t\t\t\t\t\tUsername: exampleCluster.MasterUsername,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tConnectorProfileProperties: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs{\n\t\t\t\t\tRedshift: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs{\n\t\t\t\t\t\tBucketName: exampleBucketV2.Name,\n\t\t\t\t\t\tDatabaseUrl: pulumi.All(exampleCluster.Endpoint, exampleCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\tRoleArn: exampleRole.Arn,\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.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.appflow.ConnectorProfile;\nimport com.pulumi.aws.appflow.ConnectorProfileArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs;\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 final var example = IamFunctions.getPolicy(GetPolicyArgs.builder()\n .name(\"AmazonRedshiftAllCommandsFullAccess\")\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example_role\")\n .managedPolicyArns(test.arn())\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var exampleBucketV2 = new BucketV2(\"exampleBucketV2\", BucketV2Args.builder()\n .bucket(\"example_bucket\")\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .clusterIdentifier(\"example_cluster\")\n .databaseName(\"example_db\")\n .masterUsername(\"exampleuser\")\n .masterPassword(\"examplePassword123!\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var exampleConnectorProfile = new ConnectorProfile(\"exampleConnectorProfile\", ConnectorProfileArgs.builder()\n .name(\"example_profile\")\n .connectorType(\"Redshift\")\n .connectionMode(\"Public\")\n .connectorProfileConfig(ConnectorProfileConnectorProfileConfigArgs.builder()\n .connectorProfileCredentials(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs.builder()\n .redshift(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs.builder()\n .password(exampleCluster.masterPassword())\n .username(exampleCluster.masterUsername())\n .build())\n .build())\n .connectorProfileProperties(ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs.builder()\n .redshift(ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs.builder()\n .bucketName(exampleBucketV2.name())\n .databaseUrl(Output.tuple(exampleCluster.endpoint(), exampleCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .roleArn(exampleRole.arn())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example_role\n managedPolicyArns:\n - ${test.arn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: ec2.amazonaws.com\n exampleBucketV2:\n type: aws:s3:BucketV2\n name: example\n properties:\n bucket: example_bucket\n exampleCluster:\n type: aws:redshift:Cluster\n name: example\n properties:\n clusterIdentifier: example_cluster\n databaseName: example_db\n masterUsername: exampleuser\n masterPassword: examplePassword123!\n nodeType: dc1.large\n clusterType: single-node\n exampleConnectorProfile:\n type: aws:appflow:ConnectorProfile\n name: example\n properties:\n name: example_profile\n connectorType: Redshift\n connectionMode: Public\n connectorProfileConfig:\n connectorProfileCredentials:\n redshift:\n password: ${exampleCluster.masterPassword}\n username: ${exampleCluster.masterUsername}\n connectorProfileProperties:\n redshift:\n bucketName: ${exampleBucketV2.name}\n databaseUrl: jdbc:redshift://${exampleCluster.endpoint}/${exampleCluster.databaseName}\n roleArn: ${exampleRole.arn}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicy\n Arguments:\n name: AmazonRedshiftAllCommandsFullAccess\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import AppFlow Connector Profile using the connector profile `arn`. For example:\n\n```sh\n$ pulumi import aws:appflow/connectorProfile:ConnectorProfile profile arn:aws:appflow:us-west-2:123456789012:connectorprofile/example-profile\n```\n", + "description": "Provides an AppFlow connector profile resource.\n\nFor information about AppFlow flows, see the [Amazon AppFlow API Reference](https://docs.aws.amazon.com/appflow/1.0/APIReference/Welcome.html).\nFor specific information about creating an AppFlow connector profile, see the\n[CreateConnectorProfile](https://docs.aws.amazon.com/appflow/1.0/APIReference/API_CreateConnectorProfile.html) page in the Amazon AppFlow API Reference.\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 = aws.iam.getPolicy({\n name: \"AmazonRedshiftAllCommandsFullAccess\",\n});\nconst exampleRole = new aws.iam.Role(\"example\", {\n name: \"example_role\",\n managedPolicyArns: [test.arn],\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst exampleBucketV2 = new aws.s3.BucketV2(\"example\", {bucket: \"example-bucket\"});\nconst exampleCluster = new aws.redshift.Cluster(\"example\", {\n clusterIdentifier: \"example_cluster\",\n databaseName: \"example_db\",\n masterUsername: \"exampleuser\",\n masterPassword: \"examplePassword123!\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst exampleConnectorProfile = new aws.appflow.ConnectorProfile(\"example\", {\n name: \"example_profile\",\n connectorType: \"Redshift\",\n connectionMode: \"Public\",\n connectorProfileConfig: {\n connectorProfileCredentials: {\n redshift: {\n password: exampleCluster.masterPassword,\n username: exampleCluster.masterUsername,\n },\n },\n connectorProfileProperties: {\n redshift: {\n bucketName: exampleBucketV2.name,\n databaseUrl: pulumi.interpolate`jdbc:redshift://${exampleCluster.endpoint}/${exampleCluster.databaseName}`,\n roleArn: exampleRole.arn,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.get_policy(name=\"AmazonRedshiftAllCommandsFullAccess\")\nexample_role = aws.iam.Role(\"example\",\n name=\"example_role\",\n managed_policy_arns=[test[\"arn\"]],\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\nexample_bucket_v2 = aws.s3.BucketV2(\"example\", bucket=\"example-bucket\")\nexample_cluster = aws.redshift.Cluster(\"example\",\n cluster_identifier=\"example_cluster\",\n database_name=\"example_db\",\n master_username=\"exampleuser\",\n master_password=\"examplePassword123!\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\nexample_connector_profile = aws.appflow.ConnectorProfile(\"example\",\n name=\"example_profile\",\n connector_type=\"Redshift\",\n connection_mode=\"Public\",\n connector_profile_config={\n \"connector_profile_credentials\": {\n \"redshift\": {\n \"password\": example_cluster.master_password,\n \"username\": example_cluster.master_username,\n },\n },\n \"connector_profile_properties\": {\n \"redshift\": {\n \"bucket_name\": example_bucket_v2.name,\n \"database_url\": pulumi.Output.all(\n endpoint=example_cluster.endpoint,\n database_name=example_cluster.database_name\n).apply(lambda resolved_outputs: f\"jdbc:redshift://{resolved_outputs['endpoint']}/{resolved_outputs['database_name']}\")\n,\n \"role_arn\": example_role.arn,\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 example = Aws.Iam.GetPolicy.Invoke(new()\n {\n Name = \"AmazonRedshiftAllCommandsFullAccess\",\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example_role\",\n ManagedPolicyArns = new[]\n {\n test.Arn,\n },\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var exampleBucketV2 = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example-bucket\",\n });\n\n var exampleCluster = new Aws.RedShift.Cluster(\"example\", new()\n {\n ClusterIdentifier = \"example_cluster\",\n DatabaseName = \"example_db\",\n MasterUsername = \"exampleuser\",\n MasterPassword = \"examplePassword123!\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var exampleConnectorProfile = new Aws.AppFlow.ConnectorProfile(\"example\", new()\n {\n Name = \"example_profile\",\n ConnectorType = \"Redshift\",\n ConnectionMode = \"Public\",\n ConnectorProfileConfig = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigArgs\n {\n ConnectorProfileCredentials = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs\n {\n Redshift = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs\n {\n Password = exampleCluster.MasterPassword,\n Username = exampleCluster.MasterUsername,\n },\n },\n ConnectorProfileProperties = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs\n {\n Redshift = new Aws.AppFlow.Inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs\n {\n BucketName = exampleBucketV2.Name,\n DatabaseUrl = Output.Tuple(exampleCluster.Endpoint, exampleCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n RoleArn = exampleRole.Arn,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appflow\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := iam.LookupPolicy(ctx, \u0026iam.LookupPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"AmazonRedshiftAllCommandsFullAccess\"),\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\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\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example_role\"),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t},\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\texampleBucketV2, err := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redshift.NewCluster(ctx, \"example\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"example_cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"example_db\"),\n\t\t\tMasterUsername: pulumi.String(\"exampleuser\"),\n\t\t\tMasterPassword: pulumi.String(\"examplePassword123!\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appflow.NewConnectorProfile(ctx, \"example\", \u0026appflow.ConnectorProfileArgs{\n\t\t\tName: pulumi.String(\"example_profile\"),\n\t\t\tConnectorType: pulumi.String(\"Redshift\"),\n\t\t\tConnectionMode: pulumi.String(\"Public\"),\n\t\t\tConnectorProfileConfig: \u0026appflow.ConnectorProfileConnectorProfileConfigArgs{\n\t\t\t\tConnectorProfileCredentials: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs{\n\t\t\t\t\tRedshift: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs{\n\t\t\t\t\t\tPassword: exampleCluster.MasterPassword,\n\t\t\t\t\t\tUsername: exampleCluster.MasterUsername,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tConnectorProfileProperties: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs{\n\t\t\t\t\tRedshift: \u0026appflow.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs{\n\t\t\t\t\t\tBucketName: exampleBucketV2.Name,\n\t\t\t\t\t\tDatabaseUrl: pulumi.All(exampleCluster.Endpoint, exampleCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\tRoleArn: exampleRole.Arn,\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.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.appflow.ConnectorProfile;\nimport com.pulumi.aws.appflow.ConnectorProfileArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs;\nimport com.pulumi.aws.appflow.inputs.ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs;\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 final var example = IamFunctions.getPolicy(GetPolicyArgs.builder()\n .name(\"AmazonRedshiftAllCommandsFullAccess\")\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example_role\")\n .managedPolicyArns(test.arn())\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var exampleBucketV2 = new BucketV2(\"exampleBucketV2\", BucketV2Args.builder()\n .bucket(\"example-bucket\")\n .build());\n\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n .clusterIdentifier(\"example_cluster\")\n .databaseName(\"example_db\")\n .masterUsername(\"exampleuser\")\n .masterPassword(\"examplePassword123!\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var exampleConnectorProfile = new ConnectorProfile(\"exampleConnectorProfile\", ConnectorProfileArgs.builder()\n .name(\"example_profile\")\n .connectorType(\"Redshift\")\n .connectionMode(\"Public\")\n .connectorProfileConfig(ConnectorProfileConnectorProfileConfigArgs.builder()\n .connectorProfileCredentials(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsArgs.builder()\n .redshift(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsRedshiftArgs.builder()\n .password(exampleCluster.masterPassword())\n .username(exampleCluster.masterUsername())\n .build())\n .build())\n .connectorProfileProperties(ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesArgs.builder()\n .redshift(ConnectorProfileConnectorProfileConfigConnectorProfilePropertiesRedshiftArgs.builder()\n .bucketName(exampleBucketV2.name())\n .databaseUrl(Output.tuple(exampleCluster.endpoint(), exampleCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .roleArn(exampleRole.arn())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example_role\n managedPolicyArns:\n - ${test.arn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: ec2.amazonaws.com\n exampleBucketV2:\n type: aws:s3:BucketV2\n name: example\n properties:\n bucket: example-bucket\n exampleCluster:\n type: aws:redshift:Cluster\n name: example\n properties:\n clusterIdentifier: example_cluster\n databaseName: example_db\n masterUsername: exampleuser\n masterPassword: examplePassword123!\n nodeType: dc1.large\n clusterType: single-node\n exampleConnectorProfile:\n type: aws:appflow:ConnectorProfile\n name: example\n properties:\n name: example_profile\n connectorType: Redshift\n connectionMode: Public\n connectorProfileConfig:\n connectorProfileCredentials:\n redshift:\n password: ${exampleCluster.masterPassword}\n username: ${exampleCluster.masterUsername}\n connectorProfileProperties:\n redshift:\n bucketName: ${exampleBucketV2.name}\n databaseUrl: jdbc:redshift://${exampleCluster.endpoint}/${exampleCluster.databaseName}\n roleArn: ${exampleRole.arn}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicy\n Arguments:\n name: AmazonRedshiftAllCommandsFullAccess\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import AppFlow Connector Profile using the connector profile `arn`. For example:\n\n```sh\n$ pulumi import aws:appflow/connectorProfile:ConnectorProfile profile arn:aws:appflow:us-west-2:123456789012:connectorprofile/example-profile\n```\n", "properties": { "arn": { "type": "string", @@ -187812,6 +187959,120 @@ "type": "object" } }, + "aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault": { + "description": "Resource for managing an AWS Backup Logically Air Gapped Vault.\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.backup.LogicallyAirGappedVault(\"example\", {\n name: \"lag-example-vault\",\n maxRetentionDays: 7,\n minRetentionDays: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.backup.LogicallyAirGappedVault(\"example\",\n name=\"lag-example-vault\",\n max_retention_days=7,\n min_retention_days=7)\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.Backup.LogicallyAirGappedVault(\"example\", new()\n {\n Name = \"lag-example-vault\",\n MaxRetentionDays = 7,\n MinRetentionDays = 7,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup\"\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 := backup.NewLogicallyAirGappedVault(ctx, \"example\", \u0026backup.LogicallyAirGappedVaultArgs{\n\t\t\tName: pulumi.String(\"lag-example-vault\"),\n\t\t\tMaxRetentionDays: pulumi.Int(7),\n\t\t\tMinRetentionDays: pulumi.Int(7),\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.backup.LogicallyAirGappedVault;\nimport com.pulumi.aws.backup.LogicallyAirGappedVaultArgs;\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 LogicallyAirGappedVault(\"example\", LogicallyAirGappedVaultArgs.builder()\n .name(\"lag-example-vault\")\n .maxRetentionDays(7)\n .minRetentionDays(7)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:backup:LogicallyAirGappedVault\n properties:\n name: lag-example-vault\n maxRetentionDays: 7\n minRetentionDays: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example:\n\n```sh\n$ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the Logically Air Gapped Backup Vault.\n" + }, + "maxRetentionDays": { + "type": "integer", + "description": "Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "minRetentionDays": { + "type": "integer", + "description": "Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "name": { + "type": "string", + "description": "Name of the Logically Air Gapped Backup Vault to create.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Metadata that you can assign to help organize the resources that you create. 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:backup/LogicallyAirGappedVaultTimeouts:LogicallyAirGappedVaultTimeouts" + } + }, + "required": [ + "arn", + "maxRetentionDays", + "minRetentionDays", + "name", + "tagsAll" + ], + "inputProperties": { + "maxRetentionDays": { + "type": "integer", + "description": "Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "minRetentionDays": { + "type": "integer", + "description": "Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "name": { + "type": "string", + "description": "Name of the Logically Air Gapped Backup Vault to create.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Metadata that you can assign to help organize the resources that you create. 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:backup/LogicallyAirGappedVaultTimeouts:LogicallyAirGappedVaultTimeouts" + } + }, + "requiredInputs": [ + "maxRetentionDays", + "minRetentionDays" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LogicallyAirGappedVault resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the Logically Air Gapped Backup Vault.\n" + }, + "maxRetentionDays": { + "type": "integer", + "description": "Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "minRetentionDays": { + "type": "integer", + "description": "Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points.\n" + }, + "name": { + "type": "string", + "description": "Name of the Logically Air Gapped Backup Vault to create.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Metadata that you can assign to help organize the resources that you create. 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:backup/LogicallyAirGappedVaultTimeouts:LogicallyAirGappedVaultTimeouts" + } + }, + "type": "object" + } + }, "aws:backup/plan:Plan": { "description": "Provides an AWS Backup plan 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.backup.Plan(\"example\", {\n name: \"my_example_backup_plan\",\n rules: [{\n ruleName: \"my_example_backup_rule\",\n targetVaultName: test.name,\n schedule: \"cron(0 12 * * ? *)\",\n lifecycle: {\n deleteAfter: 14,\n },\n }],\n advancedBackupSettings: [{\n backupOptions: {\n WindowsVSS: \"enabled\",\n },\n resourceType: \"EC2\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.backup.Plan(\"example\",\n name=\"my_example_backup_plan\",\n rules=[{\n \"rule_name\": \"my_example_backup_rule\",\n \"target_vault_name\": test[\"name\"],\n \"schedule\": \"cron(0 12 * * ? *)\",\n \"lifecycle\": {\n \"delete_after\": 14,\n },\n }],\n advanced_backup_settings=[{\n \"backup_options\": {\n \"windows_vss\": \"enabled\",\n },\n \"resource_type\": \"EC2\",\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.Backup.Plan(\"example\", new()\n {\n Name = \"my_example_backup_plan\",\n Rules = new[]\n {\n new Aws.Backup.Inputs.PlanRuleArgs\n {\n RuleName = \"my_example_backup_rule\",\n TargetVaultName = test.Name,\n Schedule = \"cron(0 12 * * ? *)\",\n Lifecycle = new Aws.Backup.Inputs.PlanRuleLifecycleArgs\n {\n DeleteAfter = 14,\n },\n },\n },\n AdvancedBackupSettings = new[]\n {\n new Aws.Backup.Inputs.PlanAdvancedBackupSettingArgs\n {\n BackupOptions = \n {\n { \"WindowsVSS\", \"enabled\" },\n },\n ResourceType = \"EC2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup\"\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 := backup.NewPlan(ctx, \"example\", \u0026backup.PlanArgs{\n\t\t\tName: pulumi.String(\"my_example_backup_plan\"),\n\t\t\tRules: backup.PlanRuleArray{\n\t\t\t\t\u0026backup.PlanRuleArgs{\n\t\t\t\t\tRuleName: pulumi.String(\"my_example_backup_rule\"),\n\t\t\t\t\tTargetVaultName: pulumi.Any(test.Name),\n\t\t\t\t\tSchedule: pulumi.String(\"cron(0 12 * * ? *)\"),\n\t\t\t\t\tLifecycle: \u0026backup.PlanRuleLifecycleArgs{\n\t\t\t\t\t\tDeleteAfter: pulumi.Int(14),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdvancedBackupSettings: backup.PlanAdvancedBackupSettingArray{\n\t\t\t\t\u0026backup.PlanAdvancedBackupSettingArgs{\n\t\t\t\t\tBackupOptions: pulumi.StringMap{\n\t\t\t\t\t\t\"WindowsVSS\": pulumi.String(\"enabled\"),\n\t\t\t\t\t},\n\t\t\t\t\tResourceType: pulumi.String(\"EC2\"),\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.backup.Plan;\nimport com.pulumi.aws.backup.PlanArgs;\nimport com.pulumi.aws.backup.inputs.PlanRuleArgs;\nimport com.pulumi.aws.backup.inputs.PlanRuleLifecycleArgs;\nimport com.pulumi.aws.backup.inputs.PlanAdvancedBackupSettingArgs;\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 Plan(\"example\", PlanArgs.builder()\n .name(\"my_example_backup_plan\")\n .rules(PlanRuleArgs.builder()\n .ruleName(\"my_example_backup_rule\")\n .targetVaultName(test.name())\n .schedule(\"cron(0 12 * * ? *)\")\n .lifecycle(PlanRuleLifecycleArgs.builder()\n .deleteAfter(14)\n .build())\n .build())\n .advancedBackupSettings(PlanAdvancedBackupSettingArgs.builder()\n .backupOptions(Map.of(\"WindowsVSS\", \"enabled\"))\n .resourceType(\"EC2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:backup:Plan\n properties:\n name: my_example_backup_plan\n rules:\n - ruleName: my_example_backup_rule\n targetVaultName: ${test.name}\n schedule: cron(0 12 * * ? *)\n lifecycle:\n deleteAfter: 14\n advancedBackupSettings:\n - backupOptions:\n WindowsVSS: enabled\n resourceType: EC2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Backup Plan using the `id`. For example:\n\n```sh\n$ pulumi import aws:backup/plan:Plan test \u003cid\u003e\n```\n", "properties": { @@ -189754,9 +190015,16 @@ "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" }, + "prepareAgent": { + "type": "boolean", + "description": "Whether or not to prepare the agent after creation or modification. Defaults to `true`.\n" + }, "skipResourceInUseCheck": { "type": "boolean", "description": "Whether the in-use check is skipped when deleting the action group.\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupTimeouts:AgentAgentActionGroupTimeouts" } }, "required": [ @@ -189765,6 +190033,7 @@ "actionGroupState", "agentId", "agentVersion", + "prepareAgent", "skipResourceInUseCheck" ], "inputProperties": { @@ -189804,9 +190073,16 @@ "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" }, + "prepareAgent": { + "type": "boolean", + "description": "Whether or not to prepare the agent after creation or modification. Defaults to `true`.\n" + }, "skipResourceInUseCheck": { "type": "boolean", "description": "Whether the in-use check is skipped when deleting the action group.\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupTimeouts:AgentAgentActionGroupTimeouts" } }, "requiredInputs": [ @@ -189857,9 +190133,16 @@ "type": "string", "description": "To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`.\n" }, + "prepareAgent": { + "type": "boolean", + "description": "Whether or not to prepare the agent after creation or modification. Defaults to `true`.\n" + }, "skipResourceInUseCheck": { "type": "boolean", "description": "Whether the in-use check is skipped when deleting the action group.\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentActionGroupTimeouts:AgentAgentActionGroupTimeouts" } }, "type": "object" @@ -190900,6 +191183,79 @@ "type": "object" } }, + "aws:bedrock/guardrailVersion:GuardrailVersion": { + "description": "Resource for managing an AWS Bedrock Guardrail Version.\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.bedrock.GuardrailVersion(\"example\", {\n description: \"example\",\n guardrailArn: test.guardrailArn,\n skipDestroy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.GuardrailVersion(\"example\",\n description=\"example\",\n guardrail_arn=test[\"guardrailArn\"],\n skip_destroy=True)\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.Bedrock.GuardrailVersion(\"example\", new()\n {\n Description = \"example\",\n GuardrailArn = test.GuardrailArn,\n SkipDestroy = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.NewGuardrailVersion(ctx, \"example\", \u0026bedrock.GuardrailVersionArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tGuardrailArn: pulumi.Any(test.GuardrailArn),\n\t\t\tSkipDestroy: pulumi.Bool(true),\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.bedrock.GuardrailVersion;\nimport com.pulumi.aws.bedrock.GuardrailVersionArgs;\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 GuardrailVersion(\"example\", GuardrailVersionArgs.builder()\n .description(\"example\")\n .guardrailArn(test.guardrailArn())\n .skipDestroy(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:GuardrailVersion\n properties:\n description: example\n guardrailArn: ${test.guardrailArn}\n skipDestroy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example:\n\n```sh\n$ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1\n```\n", + "properties": { + "description": { + "type": "string", + "description": "Description of the Guardrail version.\n" + }, + "guardrailArn": { + "type": "string", + "description": "Guardrail ARN.\n\nThe following arguments are optional:\n" + }, + "skipDestroy": { + "type": "boolean", + "description": "Whether to retain the old version of a previously deployed Guardrail. Default is `false`\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailVersionTimeouts:GuardrailVersionTimeouts" + }, + "version": { + "type": "string", + "description": "Guardrail version.\n" + } + }, + "required": [ + "guardrailArn", + "version" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description of the Guardrail version.\n" + }, + "guardrailArn": { + "type": "string", + "description": "Guardrail ARN.\n\nThe following arguments are optional:\n" + }, + "skipDestroy": { + "type": "boolean", + "description": "Whether to retain the old version of a previously deployed Guardrail. Default is `false`\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailVersionTimeouts:GuardrailVersionTimeouts" + } + }, + "requiredInputs": [ + "guardrailArn" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering GuardrailVersion resources.\n", + "properties": { + "description": { + "type": "string", + "description": "Description of the Guardrail version.\n" + }, + "guardrailArn": { + "type": "string", + "description": "Guardrail ARN.\n\nThe following arguments are optional:\n" + }, + "skipDestroy": { + "type": "boolean", + "description": "Whether to retain the old version of a previously deployed Guardrail. Default is `false`\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailVersionTimeouts:GuardrailVersionTimeouts" + }, + "version": { + "type": "string", + "description": "Guardrail version.\n" + } + }, + "type": "object" + } + }, "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": { "description": "Manages [Provisioned Throughput](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) for an Amazon Bedrock model.\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.bedrock.ProvisionedModelThroughput(\"example\", {\n provisionedModelName: \"example-model\",\n modelArn: \"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n commitmentDuration: \"SixMonths\",\n modelUnits: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.ProvisionedModelThroughput(\"example\",\n provisioned_model_name=\"example-model\",\n model_arn=\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n commitment_duration=\"SixMonths\",\n model_units=1)\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.Bedrock.ProvisionedModelThroughput(\"example\", new()\n {\n ProvisionedModelName = \"example-model\",\n ModelArn = \"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n CommitmentDuration = \"SixMonths\",\n ModelUnits = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.NewProvisionedModelThroughput(ctx, \"example\", \u0026bedrock.ProvisionedModelThroughputArgs{\n\t\t\tProvisionedModelName: pulumi.String(\"example-model\"),\n\t\t\tModelArn: pulumi.String(\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\"),\n\t\t\tCommitmentDuration: pulumi.String(\"SixMonths\"),\n\t\t\tModelUnits: pulumi.Int(1),\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.bedrock.ProvisionedModelThroughput;\nimport com.pulumi.aws.bedrock.ProvisionedModelThroughputArgs;\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 ProvisionedModelThroughput(\"example\", ProvisionedModelThroughputArgs.builder()\n .provisionedModelName(\"example-model\")\n .modelArn(\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\")\n .commitmentDuration(\"SixMonths\")\n .modelUnits(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:ProvisionedModelThroughput\n properties:\n provisionedModelName: example-model\n modelArn: arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\n commitmentDuration: SixMonths\n modelUnits: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Provisioned Throughput using the `provisioned_model_arn`. For example:\n\n```sh\n$ pulumi import aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput example arn:aws:bedrock:us-west-2:123456789012:provisioned-model/1y5n57gh5y2e\n```\n", "properties": { @@ -216166,7 +216522,7 @@ } }, "aws:datazone/formType:FormType": { - "description": "Resource for managing an AWS DataZone Form Type.\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 domainExecutionRole = new aws.iam.Role(\"domain_execution_role\", {\n name: \"example name\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example name\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst test = new aws.datazone.Domain(\"test\", {\n name: \"example name\",\n domainExecutionRole: domainExecutionRole.arn,\n});\nconst testSecurityGroup = new aws.ec2.SecurityGroup(\"test\", {name: \"example name\"});\nconst testProject = new aws.datazone.Project(\"test\", {\n domainIdentifier: test.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example name\",\n description: \"desc\",\n skipDeletionCheck: true,\n});\nconst testFormType = new aws.datazone.FormType(\"test\", {\n description: \"desc\",\n name: \"SageMakerModelFormType\",\n domainIdentifier: test.id,\n owningProjectIdentifier: testProject.id,\n status: \"DISABLED\",\n model: {\n smithy: `\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndomain_execution_role = aws.iam.Role(\"domain_execution_role\",\n name=\"example name\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example name\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\ntest = aws.datazone.Domain(\"test\",\n name=\"example name\",\n domain_execution_role=domain_execution_role.arn)\ntest_security_group = aws.ec2.SecurityGroup(\"test\", name=\"example name\")\ntest_project = aws.datazone.Project(\"test\",\n domain_identifier=test.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example name\",\n description=\"desc\",\n skip_deletion_check=True)\ntest_form_type = aws.datazone.FormType(\"test\",\n description=\"desc\",\n name=\"SageMakerModelFormType\",\n domain_identifier=test.id,\n owning_project_identifier=test_project.id,\n status=\"DISABLED\",\n model={\n \"smithy\": \"\"\"\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\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 domainExecutionRole = new Aws.Iam.Role(\"domain_execution_role\", new()\n {\n Name = \"example name\",\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\"] = \"datazone.amazonaws.com\",\n },\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\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example name\",\n Policy = 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 \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var test = new Aws.DataZone.Domain(\"test\", new()\n {\n Name = \"example name\",\n DomainExecutionRole = domainExecutionRole.Arn,\n });\n\n var testSecurityGroup = new Aws.Ec2.SecurityGroup(\"test\", new()\n {\n Name = \"example name\",\n });\n\n var testProject = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = test.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example name\",\n Description = \"desc\",\n SkipDeletionCheck = true,\n });\n\n var testFormType = new Aws.DataZone.FormType(\"test\", new()\n {\n Description = \"desc\",\n Name = \"SageMakerModelFormType\",\n DomainIdentifier = test.Id,\n OwningProjectIdentifier = testProject.Id,\n Status = \"DISABLED\",\n Model = new Aws.DataZone.Inputs.FormTypeModelArgs\n {\n Smithy = @\"\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\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/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\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\": \"cloudformation.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\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\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tdomainExecutionRole, err := iam.NewRole(ctx, \"domain_execution_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example name\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\ttest, err := datazone.NewDomain(ctx, \"test\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tDomainExecutionRole: domainExecutionRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"test\", \u0026ec2.SecurityGroupArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestProject, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datazone.NewFormType(ctx, \"test\", \u0026datazone.FormTypeArgs{\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tName: pulumi.String(\"SageMakerModelFormType\"),\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tOwningProjectIdentifier: testProject.ID(),\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tModel: \u0026datazone.FormTypeModelArgs{\n\t\t\t\tSmithy: pulumi.String(`\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\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.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.datazone.FormType;\nimport com.pulumi.aws.datazone.FormTypeArgs;\nimport com.pulumi.aws.datazone.inputs.FormTypeModelArgs;\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 domainExecutionRole = new Role(\"domainExecutionRole\", RoleArgs.builder()\n .name(\"example name\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example name\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var test = new Domain(\"test\", DomainArgs.builder()\n .name(\"example name\")\n .domainExecutionRole(domainExecutionRole.arn())\n .build());\n\n var testSecurityGroup = new SecurityGroup(\"testSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example name\")\n .build());\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .domainIdentifier(test.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example name\")\n .description(\"desc\")\n .skipDeletionCheck(true)\n .build());\n\n var testFormType = new FormType(\"testFormType\", FormTypeArgs.builder()\n .description(\"desc\")\n .name(\"SageMakerModelFormType\")\n .domainIdentifier(test.id())\n .owningProjectIdentifier(testProject.id())\n .status(\"DISABLED\")\n .model(FormTypeModelArgs.builder()\n .smithy(\"\"\"\n\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n domainExecutionRole:\n type: aws:iam:Role\n name: domain_execution_role\n properties:\n name: example name\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: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example name\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n test:\n type: aws:datazone:Domain\n properties:\n name: example name\n domainExecutionRole: ${domainExecutionRole.arn}\n testSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: test\n properties:\n name: example name\n testProject:\n type: aws:datazone:Project\n name: test\n properties:\n domainIdentifier: ${test.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example name\n description: desc\n skipDeletionCheck: true\n testFormType:\n type: aws:datazone:FormType\n name: test\n properties:\n description: desc\n name: SageMakerModelFormType\n domainIdentifier: ${test.id}\n owningProjectIdentifier: ${testProject.id}\n status: DISABLED\n model:\n smithy: |\n \tstructure SageMakerModelFormType {\n \t\t\t@required\n \t\t\t@amazon.datazone#searchable\n \t\t\tmodelName: String\n\n \t\t\t@required\n \t\t\tmodelArn: String\n\n \t\t\t@required\n \t\t\tcreationTime: String\n \t\t\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example:\n\n```sh\n$ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision\n```\n", + "description": "Resource for managing an AWS DataZone Form Type.\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 domainExecutionRole = new aws.iam.Role(\"domain_execution_role\", {\n name: \"example-role\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example-policy\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst test = new aws.datazone.Domain(\"test\", {\n name: \"example\",\n domainExecutionRole: domainExecutionRole.arn,\n});\nconst testSecurityGroup = new aws.ec2.SecurityGroup(\"test\", {name: \"example\"});\nconst testProject = new aws.datazone.Project(\"test\", {\n domainIdentifier: test.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example name\",\n description: \"desc\",\n skipDeletionCheck: true,\n});\nconst testFormType = new aws.datazone.FormType(\"test\", {\n description: \"desc\",\n name: \"SageMakerModelFormType\",\n domainIdentifier: test.id,\n owningProjectIdentifier: testProject.id,\n status: \"DISABLED\",\n model: {\n smithy: `\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndomain_execution_role = aws.iam.Role(\"domain_execution_role\",\n name=\"example-role\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example-policy\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\ntest = aws.datazone.Domain(\"test\",\n name=\"example\",\n domain_execution_role=domain_execution_role.arn)\ntest_security_group = aws.ec2.SecurityGroup(\"test\", name=\"example\")\ntest_project = aws.datazone.Project(\"test\",\n domain_identifier=test.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example name\",\n description=\"desc\",\n skip_deletion_check=True)\ntest_form_type = aws.datazone.FormType(\"test\",\n description=\"desc\",\n name=\"SageMakerModelFormType\",\n domain_identifier=test.id,\n owning_project_identifier=test_project.id,\n status=\"DISABLED\",\n model={\n \"smithy\": \"\"\"\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\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 domainExecutionRole = new Aws.Iam.Role(\"domain_execution_role\", new()\n {\n Name = \"example-role\",\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\"] = \"datazone.amazonaws.com\",\n },\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\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example-policy\",\n Policy = 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 \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var test = new Aws.DataZone.Domain(\"test\", new()\n {\n Name = \"example\",\n DomainExecutionRole = domainExecutionRole.Arn,\n });\n\n var testSecurityGroup = new Aws.Ec2.SecurityGroup(\"test\", new()\n {\n Name = \"example\",\n });\n\n var testProject = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = test.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example name\",\n Description = \"desc\",\n SkipDeletionCheck = true,\n });\n\n var testFormType = new Aws.DataZone.FormType(\"test\", new()\n {\n Description = \"desc\",\n Name = \"SageMakerModelFormType\",\n DomainIdentifier = test.Id,\n OwningProjectIdentifier = testProject.Id,\n Status = \"DISABLED\",\n Model = new Aws.DataZone.Inputs.FormTypeModelArgs\n {\n Smithy = @\"\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\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/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\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\": \"cloudformation.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\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\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tdomainExecutionRole, err := iam.NewRole(ctx, \"domain_execution_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example-policy\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\ttest, err := datazone.NewDomain(ctx, \"test\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tDomainExecutionRole: domainExecutionRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"test\", \u0026ec2.SecurityGroupArgs{\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\ttestProject, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datazone.NewFormType(ctx, \"test\", \u0026datazone.FormTypeArgs{\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tName: pulumi.String(\"SageMakerModelFormType\"),\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tOwningProjectIdentifier: testProject.ID(),\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tModel: \u0026datazone.FormTypeModelArgs{\n\t\t\t\tSmithy: pulumi.String(`\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\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.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.datazone.FormType;\nimport com.pulumi.aws.datazone.FormTypeArgs;\nimport com.pulumi.aws.datazone.inputs.FormTypeModelArgs;\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 domainExecutionRole = new Role(\"domainExecutionRole\", RoleArgs.builder()\n .name(\"example-role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example-policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var test = new Domain(\"test\", DomainArgs.builder()\n .name(\"example\")\n .domainExecutionRole(domainExecutionRole.arn())\n .build());\n\n var testSecurityGroup = new SecurityGroup(\"testSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example\")\n .build());\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .domainIdentifier(test.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example name\")\n .description(\"desc\")\n .skipDeletionCheck(true)\n .build());\n\n var testFormType = new FormType(\"testFormType\", FormTypeArgs.builder()\n .description(\"desc\")\n .name(\"SageMakerModelFormType\")\n .domainIdentifier(test.id())\n .owningProjectIdentifier(testProject.id())\n .status(\"DISABLED\")\n .model(FormTypeModelArgs.builder()\n .smithy(\"\"\"\n\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n domainExecutionRole:\n type: aws:iam:Role\n name: domain_execution_role\n properties:\n name: example-role\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: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example-policy\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n test:\n type: aws:datazone:Domain\n properties:\n name: example\n domainExecutionRole: ${domainExecutionRole.arn}\n testSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: test\n properties:\n name: example\n testProject:\n type: aws:datazone:Project\n name: test\n properties:\n domainIdentifier: ${test.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example name\n description: desc\n skipDeletionCheck: true\n testFormType:\n type: aws:datazone:FormType\n name: test\n properties:\n description: desc\n name: SageMakerModelFormType\n domainIdentifier: ${test.id}\n owningProjectIdentifier: ${testProject.id}\n status: DISABLED\n model:\n smithy: |\n \tstructure SageMakerModelFormType {\n \t\t\t@required\n \t\t\t@amazon.datazone#searchable\n \t\t\tmodelName: String\n\n \t\t\t@required\n \t\t\tmodelArn: String\n\n \t\t\t@required\n \t\t\tcreationTime: String\n \t\t\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example:\n\n```sh\n$ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision\n```\n", "properties": { "createdAt": { "type": "string", @@ -246440,6 +246796,128 @@ "type": "object" } }, + "aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation": { + "description": "Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association.\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.ec2transitgateway.DefaultRouteTableAssociation(\"example\", {\n transitGatewayId: exampleAwsEc2TransitGateway.id,\n transitGatewayRouteTableId: exampleAwsEc2TransitGatewayRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2transitgateway.DefaultRouteTableAssociation(\"example\",\n transit_gateway_id=example_aws_ec2_transit_gateway[\"id\"],\n transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table[\"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.Ec2TransitGateway.DefaultRouteTableAssociation(\"example\", new()\n {\n TransitGatewayId = exampleAwsEc2TransitGateway.Id,\n TransitGatewayRouteTableId = exampleAwsEc2TransitGatewayRouteTable.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway\"\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 := ec2transitgateway.NewDefaultRouteTableAssociation(ctx, \"example\", \u0026ec2transitgateway.DefaultRouteTableAssociationArgs{\n\t\t\tTransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id),\n\t\t\tTransitGatewayRouteTableId: pulumi.Any(exampleAwsEc2TransitGatewayRouteTable.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.ec2transitgateway.DefaultRouteTableAssociation;\nimport com.pulumi.aws.ec2transitgateway.DefaultRouteTableAssociationArgs;\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 DefaultRouteTableAssociation(\"example\", DefaultRouteTableAssociationArgs.builder()\n .transitGatewayId(exampleAwsEc2TransitGateway.id())\n .transitGatewayRouteTableId(exampleAwsEc2TransitGatewayRouteTable.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2transitgateway:DefaultRouteTableAssociation\n properties:\n transitGatewayId: ${exampleAwsEc2TransitGateway.id}\n transitGatewayRouteTableId: ${exampleAwsEc2TransitGatewayRouteTable.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "originalDefaultRouteTableId": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTableAssociationTimeouts:DefaultRouteTableAssociationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "required": [ + "originalDefaultRouteTableId", + "transitGatewayId", + "transitGatewayRouteTableId" + ], + "inputProperties": { + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTableAssociationTimeouts:DefaultRouteTableAssociationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "requiredInputs": [ + "transitGatewayId", + "transitGatewayRouteTableId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DefaultRouteTableAssociation resources.\n", + "properties": { + "originalDefaultRouteTableId": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTableAssociationTimeouts:DefaultRouteTableAssociationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "type": "object" + } + }, + "aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation": { + "description": "Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation.\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.ec2transitgateway.DefaultRouteTablePropagation(\"example\", {\n transitGatewayId: exampleAwsEc2TransitGateway.id,\n transitGatewayRouteTableId: exampleAwsEc2TransitGatewayRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2transitgateway.DefaultRouteTablePropagation(\"example\",\n transit_gateway_id=example_aws_ec2_transit_gateway[\"id\"],\n transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table[\"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.Ec2TransitGateway.DefaultRouteTablePropagation(\"example\", new()\n {\n TransitGatewayId = exampleAwsEc2TransitGateway.Id,\n TransitGatewayRouteTableId = exampleAwsEc2TransitGatewayRouteTable.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway\"\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 := ec2transitgateway.NewDefaultRouteTablePropagation(ctx, \"example\", \u0026ec2transitgateway.DefaultRouteTablePropagationArgs{\n\t\t\tTransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id),\n\t\t\tTransitGatewayRouteTableId: pulumi.Any(exampleAwsEc2TransitGatewayRouteTable.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.ec2transitgateway.DefaultRouteTablePropagation;\nimport com.pulumi.aws.ec2transitgateway.DefaultRouteTablePropagationArgs;\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 DefaultRouteTablePropagation(\"example\", DefaultRouteTablePropagationArgs.builder()\n .transitGatewayId(exampleAwsEc2TransitGateway.id())\n .transitGatewayRouteTableId(exampleAwsEc2TransitGatewayRouteTable.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2transitgateway:DefaultRouteTablePropagation\n properties:\n transitGatewayId: ${exampleAwsEc2TransitGateway.id}\n transitGatewayRouteTableId: ${exampleAwsEc2TransitGatewayRouteTable.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "originalDefaultRouteTableId": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTablePropagationTimeouts:DefaultRouteTablePropagationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "required": [ + "originalDefaultRouteTableId", + "transitGatewayId", + "transitGatewayRouteTableId" + ], + "inputProperties": { + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTablePropagationTimeouts:DefaultRouteTablePropagationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "requiredInputs": [ + "transitGatewayId", + "transitGatewayRouteTableId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DefaultRouteTablePropagation resources.\n", + "properties": { + "originalDefaultRouteTableId": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:ec2transitgateway/DefaultRouteTablePropagationTimeouts:DefaultRouteTablePropagationTimeouts" + }, + "transitGatewayId": { + "type": "string", + "description": "ID of the Transit Gateway to change the default association route table on.\n" + }, + "transitGatewayRouteTableId": { + "type": "string", + "description": "ID of the Transit Gateway Route Table to be made the default association route table.\n" + } + }, + "type": "object" + } + }, "aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint": { "description": "Manages an EC2 Instance Connect Endpoint.\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.ec2transitgateway.InstanceConnectEndpoint(\"example\", {subnetId: exampleAwsSubnet.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2transitgateway.InstanceConnectEndpoint(\"example\", subnet_id=example_aws_subnet[\"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.Ec2TransitGateway.InstanceConnectEndpoint(\"example\", new()\n {\n SubnetId = exampleAwsSubnet.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway\"\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 := ec2transitgateway.NewInstanceConnectEndpoint(ctx, \"example\", \u0026ec2transitgateway.InstanceConnectEndpointArgs{\n\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.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.ec2transitgateway.InstanceConnectEndpoint;\nimport com.pulumi.aws.ec2transitgateway.InstanceConnectEndpointArgs;\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 InstanceConnectEndpoint(\"example\", InstanceConnectEndpointArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2transitgateway:InstanceConnectEndpoint\n properties:\n subnetId: ${exampleAwsSubnet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import EC2 Instance Connect Endpoints using the `id`. For example:\n\n```sh\n$ pulumi import aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint example eice-012345678\n```\n", "properties": { @@ -248052,7 +248530,7 @@ }, "securityGroupReferencingSupport": { "type": "string", - "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.\n" + "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`.\n" }, "subnetIds": { "type": "array", @@ -248098,6 +248576,7 @@ } }, "required": [ + "securityGroupReferencingSupport", "subnetIds", "tagsAll", "transitGatewayDefaultRouteTableAssociation", @@ -248121,7 +248600,7 @@ }, "securityGroupReferencingSupport": { "type": "string", - "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.\n" + "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`.\n" }, "subnetIds": { "type": "array", @@ -248178,7 +248657,7 @@ }, "securityGroupReferencingSupport": { "type": "string", - "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.\n" + "description": "Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`.\n" }, "subnetIds": { "type": "array", @@ -254681,7 +255160,8 @@ "description": "ARN for the reserved cache node.\n" }, "cacheNodeCount": { - "type": "number" + "type": "number", + "description": "Number of cache node instances to reserve.\nDefault value is `1`.\n" }, "cacheNodeType": { "type": "string", @@ -254762,7 +255242,8 @@ ], "inputProperties": { "cacheNodeCount": { - "type": "number" + "type": "number", + "description": "Number of cache node instances to reserve.\nDefault value is `1`.\n" }, "reservedCacheNodesOfferingId": { "type": "string", @@ -254790,7 +255271,8 @@ "description": "ARN for the reserved cache node.\n" }, "cacheNodeCount": { - "type": "number" + "type": "number", + "description": "Number of cache node instances to reserve.\nDefault value is `1`.\n" }, "cacheNodeType": { "type": "string", @@ -274377,6 +274859,60 @@ "type": "object" } }, + "aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive": { + "description": "\n\n## Import\n\nUsing `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example:\n\n```sh\n$ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup\n```\n", + "properties": { + "groupName": { + "type": "string", + "description": "IAM group name.\n" + }, + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed.\n" + } + }, + "required": [ + "groupName", + "policyNames" + ], + "inputProperties": { + "groupName": { + "type": "string", + "description": "IAM group name.\n" + }, + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed.\n" + } + }, + "requiredInputs": [ + "groupName", + "policyNames" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering GroupPoliciesExclusive resources.\n", + "properties": { + "groupName": { + "type": "string", + "description": "IAM group name.\n" + }, + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed.\n" + } + }, + "type": "object" + } + }, "aws:iam/groupPolicy:GroupPolicy": { "description": "Provides an IAM policy attached to a group.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 myDevelopers = new aws.iam.Group(\"my_developers\", {\n name: \"developers\",\n path: \"/users/\",\n});\nconst myDeveloperPolicy = new aws.iam.GroupPolicy(\"my_developer_policy\", {\n name: \"my_developer_policy\",\n group: myDevelopers.name,\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmy_developers = aws.iam.Group(\"my_developers\",\n name=\"developers\",\n path=\"/users/\")\nmy_developer_policy = aws.iam.GroupPolicy(\"my_developer_policy\",\n name=\"my_developer_policy\",\n group=my_developers.name,\n policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\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 myDevelopers = new Aws.Iam.Group(\"my_developers\", new()\n {\n Name = \"developers\",\n Path = \"/users/\",\n });\n\n var myDeveloperPolicy = new Aws.Iam.GroupPolicy(\"my_developer_policy\", new()\n {\n Name = \"my_developer_policy\",\n Group = myDevelopers.Name,\n Policy = 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 \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\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/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\tmyDevelopers, err := iam.NewGroup(ctx, \"my_developers\", \u0026iam.GroupArgs{\n\t\t\tName: pulumi.String(\"developers\"),\n\t\t\tPath: pulumi.String(\"/users/\"),\n\t\t})\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\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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 = iam.NewGroupPolicy(ctx, \"my_developer_policy\", \u0026iam.GroupPolicyArgs{\n\t\t\tName: pulumi.String(\"my_developer_policy\"),\n\t\t\tGroup: myDevelopers.Name,\n\t\t\tPolicy: 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.iam.Group;\nimport com.pulumi.aws.iam.GroupArgs;\nimport com.pulumi.aws.iam.GroupPolicy;\nimport com.pulumi.aws.iam.GroupPolicyArgs;\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 myDevelopers = new Group(\"myDevelopers\", GroupArgs.builder()\n .name(\"developers\")\n .path(\"/users/\")\n .build());\n\n var myDeveloperPolicy = new GroupPolicy(\"myDeveloperPolicy\", GroupPolicyArgs.builder()\n .name(\"my_developer_policy\")\n .group(myDevelopers.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDeveloperPolicy:\n type: aws:iam:GroupPolicy\n name: my_developer_policy\n properties:\n name: my_developer_policy\n group: ${myDevelopers.name}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n myDevelopers:\n type: aws:iam:Group\n name: my_developers\n properties:\n name: developers\n path: /users/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Group Policies using the `group_name:group_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/groupPolicy:GroupPolicy mypolicy group_of_mypolicy_name:mypolicy_name\n```\n", "properties": { @@ -276649,6 +277185,60 @@ "type": "object" } }, + "aws:iam/userPoliciesExclusive:UserPoliciesExclusive": { + "description": "\n\n## Import\n\nUsing `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example:\n\n```sh\n$ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser\n```\n", + "properties": { + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed.\n" + }, + "userName": { + "type": "string", + "description": "IAM user name.\n" + } + }, + "required": [ + "policyNames", + "userName" + ], + "inputProperties": { + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed.\n" + }, + "userName": { + "type": "string", + "description": "IAM user name.\n" + } + }, + "requiredInputs": [ + "policyNames", + "userName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering UserPoliciesExclusive resources.\n", + "properties": { + "policyNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed.\n" + }, + "userName": { + "type": "string", + "description": "IAM user name.\n" + } + }, + "type": "object" + } + }, "aws:iam/userPolicy:UserPolicy": { "description": "Provides an IAM policy attached to a user.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 lb = new aws.iam.User(\"lb\", {\n name: \"loadbalancer\",\n path: \"/system/\",\n});\nconst lbRo = new aws.iam.UserPolicy(\"lb_ro\", {\n name: \"test\",\n user: lb.name,\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n});\nconst lbAccessKey = new aws.iam.AccessKey(\"lb\", {user: lb.name});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nlb = aws.iam.User(\"lb\",\n name=\"loadbalancer\",\n path=\"/system/\")\nlb_ro = aws.iam.UserPolicy(\"lb_ro\",\n name=\"test\",\n user=lb.name,\n policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n }))\nlb_access_key = aws.iam.AccessKey(\"lb\", user=lb.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 lb = new Aws.Iam.User(\"lb\", new()\n {\n Name = \"loadbalancer\",\n Path = \"/system/\",\n });\n\n var lbRo = new Aws.Iam.UserPolicy(\"lb_ro\", new()\n {\n Name = \"test\",\n User = lb.Name,\n Policy = 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 \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n });\n\n var lbAccessKey = new Aws.Iam.AccessKey(\"lb\", new()\n {\n User = lb.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/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\tlb, err := iam.NewUser(ctx, \"lb\", \u0026iam.UserArgs{\n\t\t\tName: pulumi.String(\"loadbalancer\"),\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t})\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\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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 = iam.NewUserPolicy(ctx, \"lb_ro\", \u0026iam.UserPolicyArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tUser: lb.Name,\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewAccessKey(ctx, \"lb\", \u0026iam.AccessKeyArgs{\n\t\t\tUser: lb.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.User;\nimport com.pulumi.aws.iam.UserArgs;\nimport com.pulumi.aws.iam.UserPolicy;\nimport com.pulumi.aws.iam.UserPolicyArgs;\nimport com.pulumi.aws.iam.AccessKey;\nimport com.pulumi.aws.iam.AccessKeyArgs;\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 lb = new User(\"lb\", UserArgs.builder()\n .name(\"loadbalancer\")\n .path(\"/system/\")\n .build());\n\n var lbRo = new UserPolicy(\"lbRo\", UserPolicyArgs.builder()\n .name(\"test\")\n .user(lb.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n var lbAccessKey = new AccessKey(\"lbAccessKey\", AccessKeyArgs.builder()\n .user(lb.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lbRo:\n type: aws:iam:UserPolicy\n name: lb_ro\n properties:\n name: test\n user: ${lb.name}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n lb:\n type: aws:iam:User\n properties:\n name: loadbalancer\n path: /system/\n lbAccessKey:\n type: aws:iam:AccessKey\n name: lb\n properties:\n user: ${lb.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM User Policies using the `user_name:user_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/userPolicy:UserPolicy mypolicy user_of_mypolicy_name:mypolicy_name\n```\n", "properties": { @@ -284273,7 +284863,7 @@ } }, "aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream": { - "description": "Provides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 , Amazon Redshift and Snowflake.\n\nFor more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/).\n\n## Example Usage\n\n### Extended S3 Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"tf-test-bucket\"});\nconst firehoseAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"firehose.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst firehoseRole = new aws.iam.Role(\"firehose_role\", {\n name: \"firehose_test_role\",\n assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json),\n});\nconst lambdaAssumeRole = 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 lambdaIam = new aws.iam.Role(\"lambda_iam\", {\n name: \"lambda_iam\",\n assumeRolePolicy: lambdaAssumeRole.then(lambdaAssumeRole =\u003e lambdaAssumeRole.json),\n});\nconst lambdaProcessor = new aws.lambda.Function(\"lambda_processor\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n name: \"firehose_lambda_processor\",\n role: lambdaIam.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.NodeJS16dX,\n});\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: pulumi.interpolate`${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucket_acl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"tf-test-bucket\")\nfirehose_assume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"firehose.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\nfirehose_role = aws.iam.Role(\"firehose_role\",\n name=\"firehose_test_role\",\n assume_role_policy=firehose_assume_role.json)\nlambda_assume_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}])\nlambda_iam = aws.iam.Role(\"lambda_iam\",\n name=\"lambda_iam\",\n assume_role_policy=lambda_assume_role.json)\nlambda_processor = aws.lambda_.Function(\"lambda_processor\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n name=\"firehose_lambda_processor\",\n role=lambda_iam.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS16D_X)\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role.arn,\n \"bucket_arn\": bucket.arn,\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": lambda_processor.arn.apply(lambda arn: f\"{arn}:$LATEST\"),\n }],\n }],\n },\n })\nbucket_acl = aws.s3.BucketAclV2(\"bucket_acl\",\n bucket=bucket.id,\n acl=\"private\")\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"tf-test-bucket\",\n });\n\n var firehoseAssumeRole = 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 \"firehose.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var firehoseRole = new Aws.Iam.Role(\"firehose_role\", new()\n {\n Name = \"firehose_test_role\",\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaAssumeRole = 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 lambdaIam = new Aws.Iam.Role(\"lambda_iam\", new()\n {\n Name = \"lambda_iam\",\n AssumeRolePolicy = lambdaAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaProcessor = new Aws.Lambda.Function(\"lambda_processor\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Name = \"firehose_lambda_processor\",\n Role = lambdaIam.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS16dX,\n });\n\n var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = lambdaProcessor.Arn.Apply(arn =\u003e $\"{arn}:$LATEST\"),\n },\n },\n },\n },\n },\n },\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucket_acl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"tf-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirehoseAssumeRole, 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\"firehose.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\tfirehoseRole, err := iam.NewRole(ctx, \"firehose_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"firehose_test_role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(firehoseAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaAssumeRole, 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\tlambdaIam, err := iam.NewRole(ctx, \"lambda_iam\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"lambda_iam\"),\n\t\t\tAssumeRolePolicy: pulumi.String(lambdaAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaProcessor, err := lambda.NewFunction(ctx, \"lambda_processor\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tName: pulumi.String(\"firehose_lambda_processor\"),\n\t\t\tRole: lambdaIam.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS16dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseRole.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: lambdaProcessor.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v:$LATEST\", arn), nil\n\t\t\t\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\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 var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"tf-test-bucket\")\n .build());\n\n final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"firehose.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var firehoseRole = new Role(\"firehoseRole\", RoleArgs.builder()\n .name(\"firehose_test_role\")\n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var lambdaAssumeRole = 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 lambdaIam = new Role(\"lambdaIam\", RoleArgs.builder()\n .name(\"lambda_iam\")\n .assumeRolePolicy(lambdaAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambdaProcessor = new Function(\"lambdaProcessor\", FunctionArgs.builder()\n .code(new FileArchive(\"lambda.zip\"))\n .name(\"firehose_lambda_processor\")\n .role(lambdaIam.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs16.x\")\n .build());\n\n var extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(lambdaProcessor.arn().applyValue(arn -\u003e String.format(\"%s:$LATEST\", arn)))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder()\n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: tf-test-bucket\n bucketAcl:\n type: aws:s3:BucketAclV2\n name: bucket_acl\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseRole:\n type: aws:iam:Role\n name: firehose_role\n properties:\n name: firehose_test_role\n assumeRolePolicy: ${firehoseAssumeRole.json}\n lambdaIam:\n type: aws:iam:Role\n name: lambda_iam\n properties:\n name: lambda_iam\n assumeRolePolicy: ${lambdaAssumeRole.json}\n lambdaProcessor:\n type: aws:lambda:Function\n name: lambda_processor\n properties:\n code:\n fn::FileArchive: lambda.zip\n name: firehose_lambda_processor\n role: ${lambdaIam.arn}\n handler: exports.handler\n runtime: nodejs16.x\nvariables:\n firehoseAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - firehose.amazonaws.com\n actions:\n - sts:AssumeRole\n lambdaAssumeRole:\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### Extended S3 Destination with dynamic partitioning\n\nThese examples use built-in Firehose functionality, rather than requiring a lambda.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [\n {\n type: \"RecordDeAggregation\",\n parameters: [{\n parameterName: \"SubRecordType\",\n parameterValue: \"JSON\",\n }],\n },\n {\n type: \"AppendDelimiterToRecord\",\n },\n {\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{customer_id:.customer_id}\",\n },\n ],\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 64,\n \"dynamic_partitioning_configuration\": {\n \"enabled\": True,\n },\n \"prefix\": \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n \"error_output_prefix\": \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [\n {\n \"type\": \"RecordDeAggregation\",\n \"parameters\": [{\n \"parameter_name\": \"SubRecordType\",\n \"parameter_value\": \"JSON\",\n }],\n },\n {\n \"type\": \"AppendDelimiterToRecord\",\n },\n {\n \"type\": \"MetadataExtraction\",\n \"parameters\": [\n {\n \"parameter_name\": \"JsonParsingEngine\",\n \"parameter_value\": \"JQ-1.6\",\n },\n {\n \"parameter_name\": \"MetadataExtractionQuery\",\n \"parameter_value\": \"{customer_id:.customer_id}\",\n },\n ],\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"RecordDeAggregation\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"SubRecordType\",\n ParameterValue = \"JSON\",\n },\n },\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"AppendDelimiterToRecord\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{customer_id:.customer_id}\",\n },\n },\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"RecordDeAggregation\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"SubRecordType\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JSON\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AppendDelimiterToRecord\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{customer_id:.customer_id}\"),\n\t\t\t\t\t\t\t\t},\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},\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"RecordDeAggregation\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"SubRecordType\")\n .parameterValue(\"JSON\")\n .build())\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"AppendDelimiterToRecord\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: RecordDeAggregation\n parameters:\n - parameterName: SubRecordType\n parameterValue: JSON\n - type: AppendDelimiterToRecord\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{customer_id:.customer_id}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nMultiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameter_value`.\n\nThe following example adds the Dynamic Partitioning Keys: `store_id` and `customer_id` to the S3 prefix.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n ],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 64,\n \"dynamic_partitioning_configuration\": {\n \"enabled\": True,\n },\n \"prefix\": \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n \"error_output_prefix\": \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"MetadataExtraction\",\n \"parameters\": [\n {\n \"parameter_name\": \"JsonParsingEngine\",\n \"parameter_value\": \"JQ-1.6\",\n },\n {\n \"parameter_name\": \"MetadataExtractionQuery\",\n \"parameter_value\": \"{store_id:.store_id,customer_id:.customer_id}\",\n },\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n },\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{store_id:.store_id,customer_id:.customer_id}\"),\n\t\t\t\t\t\t\t\t},\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},\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{store_id:.store_id,customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{store_id:.store_id,customer_id:.customer_id}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redshift Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.redshift.Cluster(\"test_cluster\", {\n clusterIdentifier: \"tf-redshift-cluster\",\n databaseName: \"test\",\n masterUsername: \"testuser\",\n masterPassword: \"T3stPass\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"redshift\",\n redshiftConfiguration: {\n roleArn: firehoseRole.arn,\n clusterJdbcurl: pulumi.interpolate`jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}`,\n username: \"testuser\",\n password: \"T3stPass\",\n dataTableName: \"test-table\",\n copyOptions: \"delimiter '|'\",\n dataTableColumns: \"test-col\",\n s3BackupMode: \"Enabled\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n s3BackupConfiguration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 15,\n bufferingInterval: 300,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.redshift.Cluster(\"test_cluster\",\n cluster_identifier=\"tf-redshift-cluster\",\n database_name=\"test\",\n master_username=\"testuser\",\n master_password=\"T3stPass\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"redshift\",\n redshift_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"cluster_jdbcurl\": pulumi.Output.all(\n endpoint=test_cluster.endpoint,\n database_name=test_cluster.database_name\n).apply(lambda resolved_outputs: f\"jdbc:redshift://{resolved_outputs['endpoint']}/{resolved_outputs['database_name']}\")\n,\n \"username\": \"testuser\",\n \"password\": \"T3stPass\",\n \"data_table_name\": \"test-table\",\n \"copy_options\": \"delimiter '|'\",\n \"data_table_columns\": \"test-col\",\n \"s3_backup_mode\": \"Enabled\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"s3_backup_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 15,\n \"buffering_interval\": 300,\n \"compression_format\": \"GZIP\",\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 testCluster = new Aws.RedShift.Cluster(\"test_cluster\", new()\n {\n ClusterIdentifier = \"tf-redshift-cluster\",\n DatabaseName = \"test\",\n MasterUsername = \"testuser\",\n MasterPassword = \"T3stPass\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"redshift\",\n RedshiftConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n ClusterJdbcurl = Output.Tuple(testCluster.Endpoint, testCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n Username = \"testuser\",\n Password = \"T3stPass\",\n DataTableName = \"test-table\",\n CopyOptions = \"delimiter '|'\",\n DataTableColumns = \"test-col\",\n S3BackupMode = \"Enabled\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n S3BackupConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 15,\n BufferingInterval = 300,\n CompressionFormat = \"GZIP\",\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := redshift.NewCluster(ctx, \"test_cluster\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"tf-redshift-cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"testuser\"),\n\t\t\tMasterPassword: pulumi.String(\"T3stPass\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"redshift\"),\n\t\t\tRedshiftConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tClusterJdbcurl: pulumi.All(testCluster.Endpoint, testCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUsername: pulumi.String(\"testuser\"),\n\t\t\t\tPassword: pulumi.String(\"T3stPass\"),\n\t\t\t\tDataTableName: pulumi.String(\"test-table\"),\n\t\t\t\tCopyOptions: pulumi.String(\"delimiter '|'\"),\n\t\t\t\tDataTableColumns: pulumi.String(\"test-col\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"Enabled\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tS3BackupConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\t\tBufferingInterval: pulumi.Int(300),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs;\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 testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n .clusterIdentifier(\"tf-redshift-cluster\")\n .databaseName(\"test\")\n .masterUsername(\"testuser\")\n .masterPassword(\"T3stPass\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"redshift\")\n .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .clusterJdbcurl(Output.tuple(testCluster.endpoint(), testCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .username(\"testuser\")\n .password(\"T3stPass\")\n .dataTableName(\"test-table\")\n .copyOptions(\"delimiter '|'\")\n .dataTableColumns(\"test-col\")\n .s3BackupMode(\"Enabled\")\n .s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .s3BackupConfiguration(FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(15)\n .bufferingInterval(300)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:redshift:Cluster\n name: test_cluster\n properties:\n clusterIdentifier: tf-redshift-cluster\n databaseName: test\n masterUsername: testuser\n masterPassword: T3stPass\n nodeType: dc1.large\n clusterType: single-node\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: redshift\n redshiftConfiguration:\n roleArn: ${firehoseRole.arn}\n clusterJdbcurl: jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}\n username: testuser\n password: T3stPass\n dataTableName: test-table\n copyOptions: delimiter '|'\n dataTableColumns: test-col\n s3BackupMode: Enabled\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n s3BackupConfiguration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 15\n bufferingInterval: 300\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Elasticsearch Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"test_cluster\", {domainName: \"firehose-es-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"test_cluster\", domain_name=\"firehose-es-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"elasticsearch\",\n elasticsearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"type_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCluster = new Aws.ElasticSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"firehose-es-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"test_cluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"firehose-es-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"firehose-es-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n name: test_cluster\n properties:\n domainName: firehose-es-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehoseRole.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Elasticsearch Destination With VPC\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"test_cluster\", {\n domainName: \"es-test\",\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"t2.small.elasticsearch\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [first.id],\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n },\n});\nconst firehose-elasticsearch = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n effect: \"Allow\",\n actions: [\"es:*\"],\n resources: [\n testCluster.arn,\n pulumi.interpolate`${testCluster.arn}/*`,\n ],\n },\n {\n effect: \"Allow\",\n actions: [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources: [\"*\"],\n },\n ],\n});\nconst firehose_elasticsearchRolePolicy = new aws.iam.RolePolicy(\"firehose-elasticsearch\", {\n name: \"elasticsearch\",\n role: firehose.id,\n policy: firehose_elasticsearch.apply(firehose_elasticsearch =\u003e firehose_elasticsearch.json),\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n name: \"kinesis-firehose-es\",\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehose.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n securityGroupIds: [first.id],\n roleArn: firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_elasticsearchRolePolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"test_cluster\",\n domain_name=\"es-test\",\n cluster_config={\n \"instance_count\": 2,\n \"zone_awareness_enabled\": True,\n \"instance_type\": \"t2.small.elasticsearch\",\n },\n ebs_options={\n \"ebs_enabled\": True,\n \"volume_size\": 10,\n },\n vpc_options={\n \"security_group_ids\": [first[\"id\"]],\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n })\nfirehose_elasticsearch = aws.iam.get_policy_document_output(statements=[\n {\n \"effect\": \"Allow\",\n \"actions\": [\"es:*\"],\n \"resources\": [\n test_cluster.arn,\n test_cluster.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n },\n {\n \"effect\": \"Allow\",\n \"actions\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n \"resources\": [\"*\"],\n },\n])\nfirehose_elasticsearch_role_policy = aws.iam.RolePolicy(\"firehose-elasticsearch\",\n name=\"elasticsearch\",\n role=firehose[\"id\"],\n policy=firehose_elasticsearch.json)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n name=\"kinesis-firehose-es\",\n destination=\"elasticsearch\",\n elasticsearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose[\"arn\"],\n \"index_name\": \"test\",\n \"type_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n \"security_group_ids\": [first[\"id\"]],\n \"role_arn\": firehose[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy]))\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 testCluster = new Aws.ElasticSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"es-test\",\n ClusterConfig = new Aws.ElasticSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"t2.small.elasticsearch\",\n },\n EbsOptions = new Aws.ElasticSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.ElasticSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n },\n });\n\n var firehose_elasticsearch = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"es:*\",\n },\n Resources = new[]\n {\n testCluster.Arn,\n $\"{testCluster.Arn}/*\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var firehose_elasticsearchRolePolicy = new Aws.Iam.RolePolicy(\"firehose-elasticsearch\", new()\n {\n Name = \"elasticsearch\",\n Role = firehose.Id,\n Policy = firehose_elasticsearch.Apply(firehose_elasticsearch =\u003e firehose_elasticsearch.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Name = \"kinesis-firehose-es\",\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehose.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n RoleArn = firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n firehose_elasticsearchRolePolicy,\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"test_cluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"es-test\"),\n\t\t\tClusterConfig: \u0026elasticsearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"t2.small.elasticsearch\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026elasticsearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026elasticsearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tfirst.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\tsecond.Id,\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\tfirehose_elasticsearch := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"es:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ttestCluster.Arn,\n\t\t\t\t\t\ttestCluster.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/*\", arn), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcs\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcAttribute\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSubnets\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSecurityGroups\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeNetworkInterfaces\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterface\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterfacePermission\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DeleteNetworkInterface\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehose-elasticsearch\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"elasticsearch\"),\n\t\t\tRole: pulumi.Any(firehose.Id),\n\t\t\tPolicy: pulumi.String(firehose_elasticsearch.ApplyT(func(firehose_elasticsearch iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehose_elasticsearch.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-es\"),\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\t\tsecond.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\tfirst.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_elasticsearchRolePolicy,\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"es-test\")\n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"t2.small.elasticsearch\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(first.id())\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .build())\n .build());\n\n final var firehose-elasticsearch = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"es:*\")\n .resources( \n testCluster.arn(),\n testCluster.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\")\n .resources(\"*\")\n .build())\n .build());\n\n var firehose_elasticsearchRolePolicy = new RolePolicy(\"firehose-elasticsearchRolePolicy\", RolePolicyArgs.builder()\n .name(\"elasticsearch\")\n .role(firehose.id())\n .policy(firehose_elasticsearch.applyValue(firehose_elasticsearch -\u003e firehose_elasticsearch.json()))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-es\")\n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehose.arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .securityGroupIds(first.id())\n .roleArn(firehose.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_elasticsearchRolePolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n name: test_cluster\n properties:\n domainName: es-test\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: t2.small.elasticsearch\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${first.id}\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n firehose-elasticsearchRolePolicy:\n type: aws:iam:RolePolicy\n name: firehose-elasticsearch\n properties:\n name: elasticsearch\n role: ${firehose.id}\n policy: ${[\"firehose-elasticsearch\"].json}\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n name: kinesis-firehose-es\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehose.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n vpcConfig:\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n securityGroupIds:\n - ${first.id}\n roleArn: ${firehose.arn}\n options:\n dependson:\n - ${[\"firehose-elasticsearchRolePolicy\"]}\nvariables:\n firehose-elasticsearch:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - es:*\n resources:\n - ${testCluster.arn}\n - ${testCluster.arn}/*\n - effect: Allow\n actions:\n - ec2:DescribeVpcs\n - ec2:DescribeVpcAttribute\n - ec2:DescribeSubnets\n - ec2:DescribeSecurityGroups\n - ec2:DescribeNetworkInterfaces\n - ec2:CreateNetworkInterface\n - ec2:CreateNetworkInterfacePermission\n - ec2:DeleteNetworkInterface\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"test_cluster\", {domainName: \"firehose-os-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"test_cluster\", domain_name=\"firehose-os-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"opensearch\",\n opensearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCluster = new Aws.OpenSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"firehose-os-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"test_cluster\", \u0026opensearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"firehose-os-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"firehose-os-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n name: test_cluster\n properties:\n domainName: firehose-os-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehoseRole.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Destination With VPC\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"test_cluster\", {\n domainName: \"es-test\",\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"m4.large.search\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [first.id],\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n },\n});\nconst firehose_opensearch = new aws.iam.RolePolicy(\"firehose-opensearch\", {\n name: \"opensearch\",\n role: firehose.id,\n policy: pulumi.interpolate`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`,\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n name: \"pulumi-kinesis-firehose-os\",\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehose.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n securityGroupIds: [first.id],\n roleArn: firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_opensearch],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"test_cluster\",\n domain_name=\"es-test\",\n cluster_config={\n \"instance_count\": 2,\n \"zone_awareness_enabled\": True,\n \"instance_type\": \"m4.large.search\",\n },\n ebs_options={\n \"ebs_enabled\": True,\n \"volume_size\": 10,\n },\n vpc_options={\n \"security_group_ids\": [first[\"id\"]],\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n })\nfirehose_opensearch = aws.iam.RolePolicy(\"firehose-opensearch\",\n name=\"opensearch\",\n role=firehose[\"id\"],\n policy=pulumi.Output.all(\n testClusterArn=test_cluster.arn,\n testClusterArn1=test_cluster.arn\n).apply(lambda resolved_outputs: f\"\"\"{{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"{resolved_outputs['testClusterArn']}\",\n \"{resolved_outputs['testClusterArn1']}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }}\n ]\n}}\n\"\"\")\n)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n name=\"pulumi-kinesis-firehose-os\",\n destination=\"opensearch\",\n opensearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n \"security_group_ids\": [first[\"id\"]],\n \"role_arn\": firehose[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[firehose_opensearch]))\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 testCluster = new Aws.OpenSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"es-test\",\n ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"m4.large.search\",\n },\n EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.OpenSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n },\n });\n\n var firehose_opensearch = new Aws.Iam.RolePolicy(\"firehose-opensearch\", new()\n {\n Name = \"opensearch\",\n Role = firehose.Id,\n Policy = Output.Tuple(testCluster.Arn, testCluster.Arn).Apply(values =\u003e\n {\n var testClusterArn = values.Item1;\n var testClusterArn1 = values.Item2;\n return @$\"{{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"es:*\"\"\n ],\n \"\"Resource\"\": [\n \"\"{testClusterArn}\"\",\n \"\"{testClusterArn1}/*\"\"\n ]\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"ec2:DescribeVpcs\"\",\n \"\"ec2:DescribeVpcAttribute\"\",\n \"\"ec2:DescribeSubnets\"\",\n \"\"ec2:DescribeSecurityGroups\"\",\n \"\"ec2:DescribeNetworkInterfaces\"\",\n \"\"ec2:CreateNetworkInterface\"\",\n \"\"ec2:CreateNetworkInterfacePermission\"\",\n \"\"ec2:DeleteNetworkInterface\"\"\n ],\n \"\"Resource\"\": [\n \"\"*\"\"\n ]\n }}\n ]\n}}\n\";\n }),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Name = \"pulumi-kinesis-firehose-os\",\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehose.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n RoleArn = firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n firehose_opensearch,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"test_cluster\", \u0026opensearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"es-test\"),\n\t\t\tClusterConfig: \u0026opensearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"m4.large.search\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026opensearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026opensearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tfirst.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\tsecond.Id,\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 = iam.NewRolePolicy(ctx, \"firehose-opensearch\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"opensearch\"),\n\t\t\tRole: pulumi.Any(firehose.Id),\n\t\t\tPolicy: pulumi.All(testCluster.Arn, testCluster.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\ttestClusterArn := _args[0].(string)\n\t\t\t\ttestClusterArn1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%v\",\n \"%v/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`, testClusterArn, testClusterArn1), 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\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"pulumi-kinesis-firehose-os\"),\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\t\tsecond.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\tfirst.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_opensearch,\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"es-test\")\n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"m4.large.search\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(first.id())\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .build())\n .build());\n\n var firehose_opensearch = new RolePolicy(\"firehose-opensearch\", RolePolicyArgs.builder()\n .name(\"opensearch\")\n .role(firehose.id())\n .policy(Output.tuple(testCluster.arn(), testCluster.arn()).applyValue(values -\u003e {\n var testClusterArn = values.t1;\n var testClusterArn1 = values.t2;\n return \"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%s\",\n \"%s/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n\", testClusterArn,testClusterArn1);\n }))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder()\n .name(\"pulumi-kinesis-firehose-os\")\n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehose.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .securityGroupIds(first.id())\n .roleArn(firehose.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_opensearch)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n name: test_cluster\n properties:\n domainName: es-test\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: m4.large.search\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${first.id}\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n firehose-opensearch:\n type: aws:iam:RolePolicy\n properties:\n name: opensearch\n role: ${firehose.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n }\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n name: pulumi-kinesis-firehose-os\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehose.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n vpcConfig:\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n securityGroupIds:\n - ${first.id}\n roleArn: ${firehose.arn}\n options:\n dependson:\n - ${[\"firehose-opensearch\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Serverless Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCollection = new aws.opensearch.ServerlessCollection(\"test_collection\", {name: \"firehose-osserverless-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"opensearchserverless\",\n opensearchserverlessConfiguration: {\n collectionEndpoint: testCollection.collectionEndpoint,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_collection = aws.opensearch.ServerlessCollection(\"test_collection\", name=\"firehose-osserverless-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"opensearchserverless\",\n opensearchserverless_configuration={\n \"collection_endpoint\": test_collection.collection_endpoint,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCollection = new Aws.OpenSearch.ServerlessCollection(\"test_collection\", new()\n {\n Name = \"firehose-osserverless-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"opensearchserverless\",\n OpensearchserverlessConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs\n {\n CollectionEndpoint = testCollection.CollectionEndpoint,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCollection, err := opensearch.NewServerlessCollection(ctx, \"test_collection\", \u0026opensearch.ServerlessCollectionArgs{\n\t\t\tName: pulumi.String(\"firehose-osserverless-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"opensearchserverless\"),\n\t\t\tOpensearchserverlessConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{\n\t\t\t\tCollectionEndpoint: testCollection.CollectionEndpoint,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.opensearch.ServerlessCollection;\nimport com.pulumi.aws.opensearch.ServerlessCollectionArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs;\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 testCollection = new ServerlessCollection(\"testCollection\", ServerlessCollectionArgs.builder()\n .name(\"firehose-osserverless-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"opensearchserverless\")\n .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder()\n .collectionEndpoint(testCollection.collectionEndpoint())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCollection:\n type: aws:opensearch:ServerlessCollection\n name: test_collection\n properties:\n name: firehose-osserverless-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: opensearchserverless\n opensearchserverlessConfiguration:\n collectionEndpoint: ${testCollection.collectionEndpoint}\n roleArn: ${firehoseRole.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Splunk Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"splunk\",\n splunkConfiguration: {\n hecEndpoint: \"https://http-inputs-mydomain.splunkcloud.com:443\",\n hecToken: \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hecAcknowledgmentTimeout: 600,\n hecEndpointType: \"Event\",\n s3BackupMode: \"FailedEventsOnly\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"splunk\",\n splunk_configuration={\n \"hec_endpoint\": \"https://http-inputs-mydomain.splunkcloud.com:443\",\n \"hec_token\": \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n \"hec_acknowledgment_timeout\": 600,\n \"hec_endpoint_type\": \"Event\",\n \"s3_backup_mode\": \"FailedEventsOnly\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"splunk\",\n SplunkConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationArgs\n {\n HecEndpoint = \"https://http-inputs-mydomain.splunkcloud.com:443\",\n HecToken = \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n HecAcknowledgmentTimeout = 600,\n HecEndpointType = \"Event\",\n S3BackupMode = \"FailedEventsOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"splunk\"),\n\t\t\tSplunkConfiguration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs{\n\t\t\t\tHecEndpoint: pulumi.String(\"https://http-inputs-mydomain.splunkcloud.com:443\"),\n\t\t\t\tHecToken: pulumi.String(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\"),\n\t\t\t\tHecAcknowledgmentTimeout: pulumi.Int(600),\n\t\t\t\tHecEndpointType: pulumi.String(\"Event\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedEventsOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"splunk\")\n .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder()\n .hecEndpoint(\"https://http-inputs-mydomain.splunkcloud.com:443\")\n .hecToken(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\")\n .hecAcknowledgmentTimeout(600)\n .hecEndpointType(\"Event\")\n .s3BackupMode(\"FailedEventsOnly\")\n .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: splunk\n splunkConfiguration:\n hecEndpoint: https://http-inputs-mydomain.splunkcloud.com:443\n hecToken: 51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\n hecAcknowledgmentTimeout: 600\n hecEndpointType: Event\n s3BackupMode: FailedEventsOnly\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### HTTP Endpoint (e.g., New Relic) Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"http_endpoint\",\n httpEndpointConfiguration: {\n url: \"https://aws-api.newrelic.com/firehose/v1\",\n name: \"New Relic\",\n accessKey: \"my-key\",\n bufferingSize: 15,\n bufferingInterval: 600,\n roleArn: firehose.arn,\n s3BackupMode: \"FailedDataOnly\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n requestConfiguration: {\n contentEncoding: \"GZIP\",\n commonAttributes: [\n {\n name: \"testname\",\n value: \"testvalue\",\n },\n {\n name: \"testname2\",\n value: \"testvalue2\",\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"http_endpoint\",\n http_endpoint_configuration={\n \"url\": \"https://aws-api.newrelic.com/firehose/v1\",\n \"name\": \"New Relic\",\n \"access_key\": \"my-key\",\n \"buffering_size\": 15,\n \"buffering_interval\": 600,\n \"role_arn\": firehose[\"arn\"],\n \"s3_backup_mode\": \"FailedDataOnly\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"request_configuration\": {\n \"content_encoding\": \"GZIP\",\n \"common_attributes\": [\n {\n \"name\": \"testname\",\n \"value\": \"testvalue\",\n },\n {\n \"name\": \"testname2\",\n \"value\": \"testvalue2\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"http_endpoint\",\n HttpEndpointConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs\n {\n Url = \"https://aws-api.newrelic.com/firehose/v1\",\n Name = \"New Relic\",\n AccessKey = \"my-key\",\n BufferingSize = 15,\n BufferingInterval = 600,\n RoleArn = firehose.Arn,\n S3BackupMode = \"FailedDataOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n RequestConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs\n {\n ContentEncoding = \"GZIP\",\n CommonAttributes = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname\",\n Value = \"testvalue\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname2\",\n Value = \"testvalue2\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"http_endpoint\"),\n\t\t\tHttpEndpointConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs{\n\t\t\t\tUrl: pulumi.String(\"https://aws-api.newrelic.com/firehose/v1\"),\n\t\t\t\tName: pulumi.String(\"New Relic\"),\n\t\t\t\tAccessKey: pulumi.String(\"my-key\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedDataOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tRequestConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs{\n\t\t\t\t\tContentEncoding: pulumi.String(\"GZIP\"),\n\t\t\t\t\tCommonAttributes: kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname2\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue2\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"http_endpoint\")\n .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder()\n .url(\"https://aws-api.newrelic.com/firehose/v1\")\n .name(\"New Relic\")\n .accessKey(\"my-key\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .roleArn(firehose.arn())\n .s3BackupMode(\"FailedDataOnly\")\n .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder()\n .contentEncoding(\"GZIP\")\n .commonAttributes( \n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname\")\n .value(\"testvalue\")\n .build(),\n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname2\")\n .value(\"testvalue2\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: http_endpoint\n httpEndpointConfiguration:\n url: https://aws-api.newrelic.com/firehose/v1\n name: New Relic\n accessKey: my-key\n bufferingSize: 15\n bufferingInterval: 600\n roleArn: ${firehose.arn}\n s3BackupMode: FailedDataOnly\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n requestConfiguration:\n contentEncoding: GZIP\n commonAttributes:\n - name: testname\n value: testvalue\n - name: testname2\n value: testvalue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Snowflake Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleSnowflakeDestination = new aws.kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\", {\n name: \"example-snowflake-destination\",\n destination: \"snowflake\",\n snowflakeConfiguration: {\n accountUrl: \"https://example.snowflakecomputing.com\",\n bufferingSize: 15,\n bufferingInterval: 600,\n database: \"example-db\",\n privateKey: \"...\",\n roleArn: firehose.arn,\n schema: \"example-schema\",\n table: \"example-table\",\n user: \"example-usr\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_snowflake_destination = aws.kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\",\n name=\"example-snowflake-destination\",\n destination=\"snowflake\",\n snowflake_configuration={\n \"account_url\": \"https://example.snowflakecomputing.com\",\n \"buffering_size\": 15,\n \"buffering_interval\": 600,\n \"database\": \"example-db\",\n \"private_key\": \"...\",\n \"role_arn\": firehose[\"arn\"],\n \"schema\": \"example-schema\",\n \"table\": \"example-table\",\n \"user\": \"example-usr\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\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 exampleSnowflakeDestination = new Aws.Kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\", new()\n {\n Name = \"example-snowflake-destination\",\n Destination = \"snowflake\",\n SnowflakeConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSnowflakeConfigurationArgs\n {\n AccountUrl = \"https://example.snowflakecomputing.com\",\n BufferingSize = 15,\n BufferingInterval = 600,\n Database = \"example-db\",\n PrivateKey = \"...\",\n RoleArn = firehose.Arn,\n Schema = \"example-schema\",\n Table = \"example-table\",\n User = \"example-usr\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"example_snowflake_destination\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"example-snowflake-destination\"),\n\t\t\tDestination: pulumi.String(\"snowflake\"),\n\t\t\tSnowflakeConfiguration: \u0026kinesis.FirehoseDeliveryStreamSnowflakeConfigurationArgs{\n\t\t\t\tAccountUrl: pulumi.String(\"https://example.snowflakecomputing.com\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tDatabase: pulumi.String(\"example-db\"),\n\t\t\t\tPrivateKey: pulumi.String(\"...\"),\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tSchema: pulumi.String(\"example-schema\"),\n\t\t\t\tTable: pulumi.String(\"example-table\"),\n\t\t\t\tUser: pulumi.String(\"example-usr\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs;\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 exampleSnowflakeDestination = new FirehoseDeliveryStream(\"exampleSnowflakeDestination\", FirehoseDeliveryStreamArgs.builder()\n .name(\"example-snowflake-destination\")\n .destination(\"snowflake\")\n .snowflakeConfiguration(FirehoseDeliveryStreamSnowflakeConfigurationArgs.builder()\n .accountUrl(\"https://example.snowflakecomputing.com\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .database(\"example-db\")\n .privateKey(\"...\")\n .roleArn(firehose.arn())\n .schema(\"example-schema\")\n .table(\"example-table\")\n .user(\"example-usr\")\n .s3Configuration(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleSnowflakeDestination:\n type: aws:kinesis:FirehoseDeliveryStream\n name: example_snowflake_destination\n properties:\n name: example-snowflake-destination\n destination: snowflake\n snowflakeConfiguration:\n accountUrl: https://example.snowflakecomputing.com\n bufferingSize: 15\n bufferingInterval: 600\n database: example-db\n privateKey: '...'\n roleArn: ${firehose.arn}\n schema: example-schema\n table: example-table\n user: example-usr\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Kinesis Firehose Delivery streams using the stream ARN. For example:\n\n```sh\n$ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream foo arn:aws:firehose:us-east-1:XXX:deliverystream/example\n```\nNote: Import does not work for stream destination `s3`. Consider using `extended_s3` since `s3` destination is deprecated.\n\n", + "description": "Provides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 , Amazon Redshift and Snowflake.\n\nFor more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/).\n\n## Example Usage\n\n### Extended S3 Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"tf-test-bucket\"});\nconst firehoseAssumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"firehose.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst firehoseRole = new aws.iam.Role(\"firehose_role\", {\n name: \"firehose_test_role\",\n assumeRolePolicy: firehoseAssumeRole.then(firehoseAssumeRole =\u003e firehoseAssumeRole.json),\n});\nconst lambdaAssumeRole = 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 lambdaIam = new aws.iam.Role(\"lambda_iam\", {\n name: \"lambda_iam\",\n assumeRolePolicy: lambdaAssumeRole.then(lambdaAssumeRole =\u003e lambdaAssumeRole.json),\n});\nconst lambdaProcessor = new aws.lambda.Function(\"lambda_processor\", {\n code: new pulumi.asset.FileArchive(\"lambda.zip\"),\n name: \"firehose_lambda_processor\",\n role: lambdaIam.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.NodeJS20dX,\n});\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: pulumi.interpolate`${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucket_acl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"tf-test-bucket\")\nfirehose_assume_role = aws.iam.get_policy_document(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"firehose.amazonaws.com\"],\n }],\n \"actions\": [\"sts:AssumeRole\"],\n}])\nfirehose_role = aws.iam.Role(\"firehose_role\",\n name=\"firehose_test_role\",\n assume_role_policy=firehose_assume_role.json)\nlambda_assume_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}])\nlambda_iam = aws.iam.Role(\"lambda_iam\",\n name=\"lambda_iam\",\n assume_role_policy=lambda_assume_role.json)\nlambda_processor = aws.lambda_.Function(\"lambda_processor\",\n code=pulumi.FileArchive(\"lambda.zip\"),\n name=\"firehose_lambda_processor\",\n role=lambda_iam.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS20D_X)\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role.arn,\n \"bucket_arn\": bucket.arn,\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": lambda_processor.arn.apply(lambda arn: f\"{arn}:$LATEST\"),\n }],\n }],\n },\n })\nbucket_acl = aws.s3.BucketAclV2(\"bucket_acl\",\n bucket=bucket.id,\n acl=\"private\")\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"tf-test-bucket\",\n });\n\n var firehoseAssumeRole = 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 \"firehose.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var firehoseRole = new Aws.Iam.Role(\"firehose_role\", new()\n {\n Name = \"firehose_test_role\",\n AssumeRolePolicy = firehoseAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaAssumeRole = 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 lambdaIam = new Aws.Iam.Role(\"lambda_iam\", new()\n {\n Name = \"lambda_iam\",\n AssumeRolePolicy = lambdaAssumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var lambdaProcessor = new Aws.Lambda.Function(\"lambda_processor\", new()\n {\n Code = new FileArchive(\"lambda.zip\"),\n Name = \"firehose_lambda_processor\",\n Role = lambdaIam.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS20dX,\n });\n\n var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = lambdaProcessor.Arn.Apply(arn =\u003e $\"{arn}:$LATEST\"),\n },\n },\n },\n },\n },\n },\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucket_acl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"tf-test-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirehoseAssumeRole, 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\"firehose.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\tfirehoseRole, err := iam.NewRole(ctx, \"firehose_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"firehose_test_role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(firehoseAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaAssumeRole, 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\tlambdaIam, err := iam.NewRole(ctx, \"lambda_iam\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"lambda_iam\"),\n\t\t\tAssumeRolePolicy: pulumi.String(lambdaAssumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlambdaProcessor, err := lambda.NewFunction(ctx, \"lambda_processor\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda.zip\"),\n\t\t\tName: pulumi.String(\"firehose_lambda_processor\"),\n\t\t\tRole: lambdaIam.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS20dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: firehoseRole.Arn,\n\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: lambdaProcessor.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v:$LATEST\", arn), nil\n\t\t\t\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\t\t\t},\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},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\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 var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"tf-test-bucket\")\n .build());\n\n final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"firehose.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var firehoseRole = new Role(\"firehoseRole\", RoleArgs.builder()\n .name(\"firehose_test_role\")\n .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var lambdaAssumeRole = 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 lambdaIam = new Role(\"lambdaIam\", RoleArgs.builder()\n .name(\"lambda_iam\")\n .assumeRolePolicy(lambdaAssumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var lambdaProcessor = new Function(\"lambdaProcessor\", FunctionArgs.builder()\n .code(new FileArchive(\"lambda.zip\"))\n .name(\"firehose_lambda_processor\")\n .role(lambdaIam.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs20.x\")\n .build());\n\n var extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(lambdaProcessor.arn().applyValue(arn -\u003e String.format(\"%s:$LATEST\", arn)))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder()\n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: tf-test-bucket\n bucketAcl:\n type: aws:s3:BucketAclV2\n name: bucket_acl\n properties:\n bucket: ${bucket.id}\n acl: private\n firehoseRole:\n type: aws:iam:Role\n name: firehose_role\n properties:\n name: firehose_test_role\n assumeRolePolicy: ${firehoseAssumeRole.json}\n lambdaIam:\n type: aws:iam:Role\n name: lambda_iam\n properties:\n name: lambda_iam\n assumeRolePolicy: ${lambdaAssumeRole.json}\n lambdaProcessor:\n type: aws:lambda:Function\n name: lambda_processor\n properties:\n code:\n fn::FileArchive: lambda.zip\n name: firehose_lambda_processor\n role: ${lambdaIam.arn}\n handler: exports.handler\n runtime: nodejs20.x\nvariables:\n firehoseAssumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - firehose.amazonaws.com\n actions:\n - sts:AssumeRole\n lambdaAssumeRole:\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### Extended S3 Destination with dynamic partitioning\n\nThese examples use built-in Firehose functionality, rather than requiring a lambda.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [\n {\n type: \"RecordDeAggregation\",\n parameters: [{\n parameterName: \"SubRecordType\",\n parameterValue: \"JSON\",\n }],\n },\n {\n type: \"AppendDelimiterToRecord\",\n },\n {\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{customer_id:.customer_id}\",\n },\n ],\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 64,\n \"dynamic_partitioning_configuration\": {\n \"enabled\": True,\n },\n \"prefix\": \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n \"error_output_prefix\": \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [\n {\n \"type\": \"RecordDeAggregation\",\n \"parameters\": [{\n \"parameter_name\": \"SubRecordType\",\n \"parameter_value\": \"JSON\",\n }],\n },\n {\n \"type\": \"AppendDelimiterToRecord\",\n },\n {\n \"type\": \"MetadataExtraction\",\n \"parameters\": [\n {\n \"parameter_name\": \"JsonParsingEngine\",\n \"parameter_value\": \"JQ-1.6\",\n },\n {\n \"parameter_name\": \"MetadataExtractionQuery\",\n \"parameter_value\": \"{customer_id:.customer_id}\",\n },\n ],\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"RecordDeAggregation\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"SubRecordType\",\n ParameterValue = \"JSON\",\n },\n },\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"AppendDelimiterToRecord\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{customer_id:.customer_id}\",\n },\n },\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"RecordDeAggregation\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"SubRecordType\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JSON\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AppendDelimiterToRecord\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{customer_id:.customer_id}\"),\n\t\t\t\t\t\t\t\t},\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},\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"RecordDeAggregation\")\n .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"SubRecordType\")\n .parameterValue(\"JSON\")\n .build())\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"AppendDelimiterToRecord\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: RecordDeAggregation\n parameters:\n - parameterName: SubRecordType\n parameterValue: JSON\n - type: AppendDelimiterToRecord\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{customer_id:.customer_id}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nMultiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameter_value`.\n\nThe following example adds the Dynamic Partitioning Keys: `store_id` and `customer_id` to the S3 prefix.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", {\n name: \"kinesis-firehose-extended-s3-test-stream\",\n destination: \"extended_s3\",\n extendedS3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 64,\n dynamicPartitioningConfiguration: {\n enabled: true,\n },\n prefix: \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n errorOutputPrefix: \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"MetadataExtraction\",\n parameters: [\n {\n parameterName: \"JsonParsingEngine\",\n parameterValue: \"JQ-1.6\",\n },\n {\n parameterName: \"MetadataExtractionQuery\",\n parameterValue: \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n ],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nextended_s3_stream = aws.kinesis.FirehoseDeliveryStream(\"extended_s3_stream\",\n name=\"kinesis-firehose-extended-s3-test-stream\",\n destination=\"extended_s3\",\n extended_s3_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 64,\n \"dynamic_partitioning_configuration\": {\n \"enabled\": True,\n },\n \"prefix\": \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n \"error_output_prefix\": \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"MetadataExtraction\",\n \"parameters\": [\n {\n \"parameter_name\": \"JsonParsingEngine\",\n \"parameter_value\": \"JQ-1.6\",\n },\n {\n \"parameter_name\": \"MetadataExtractionQuery\",\n \"parameter_value\": \"{store_id:.store_id,customer_id:.customer_id}\",\n },\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 extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream(\"extended_s3_stream\", new()\n {\n Name = \"kinesis-firehose-extended-s3-test-stream\",\n Destination = \"extended_s3\",\n ExtendedS3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 64,\n DynamicPartitioningConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs\n {\n Enabled = true,\n },\n Prefix = \"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\",\n ErrorOutputPrefix = \"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\",\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"MetadataExtraction\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"JsonParsingEngine\",\n ParameterValue = \"JQ-1.6\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"MetadataExtractionQuery\",\n ParameterValue = \"{store_id:.store_id,customer_id:.customer_id}\",\n },\n },\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"extended_s3_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-extended-s3-test-stream\"),\n\t\t\tDestination: pulumi.String(\"extended_s3\"),\n\t\t\tExtendedS3Configuration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\tBufferingSize: pulumi.Int(64),\n\t\t\t\tDynamicPartitioningConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tPrefix: pulumi.String(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\"),\n\t\t\t\tErrorOutputPrefix: pulumi.String(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\"),\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"MetadataExtraction\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"JsonParsingEngine\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"JQ-1.6\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"MetadataExtractionQuery\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.String(\"{store_id:.store_id,customer_id:.customer_id}\"),\n\t\t\t\t\t\t\t\t},\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},\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs;\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 extendedS3Stream = new FirehoseDeliveryStream(\"extendedS3Stream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-extended-s3-test-stream\")\n .destination(\"extended_s3\")\n .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(64)\n .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder()\n .enabled(\"true\")\n .build())\n .prefix(\"data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\")\n .errorOutputPrefix(\"errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\")\n .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"MetadataExtraction\")\n .parameters( \n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"JsonParsingEngine\")\n .parameterValue(\"JQ-1.6\")\n .build(),\n FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"MetadataExtractionQuery\")\n .parameterValue(\"{store_id:.store_id,customer_id:.customer_id}\")\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedS3Stream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: extended_s3_stream\n properties:\n name: kinesis-firehose-extended-s3-test-stream\n destination: extended_s3\n extendedS3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 64\n dynamicPartitioningConfiguration:\n enabled: 'true'\n prefix: data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/\n errorOutputPrefix: errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: MetadataExtraction\n parameters:\n - parameterName: JsonParsingEngine\n parameterValue: JQ-1.6\n - parameterName: MetadataExtractionQuery\n parameterValue: '{store_id:.store_id,customer_id:.customer_id}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redshift Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.redshift.Cluster(\"test_cluster\", {\n clusterIdentifier: \"tf-redshift-cluster\",\n databaseName: \"test\",\n masterUsername: \"testuser\",\n masterPassword: \"T3stPass\",\n nodeType: \"dc1.large\",\n clusterType: \"single-node\",\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"redshift\",\n redshiftConfiguration: {\n roleArn: firehoseRole.arn,\n clusterJdbcurl: pulumi.interpolate`jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}`,\n username: \"testuser\",\n password: \"T3stPass\",\n dataTableName: \"test-table\",\n copyOptions: \"delimiter '|'\",\n dataTableColumns: \"test-col\",\n s3BackupMode: \"Enabled\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n s3BackupConfiguration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 15,\n bufferingInterval: 300,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.redshift.Cluster(\"test_cluster\",\n cluster_identifier=\"tf-redshift-cluster\",\n database_name=\"test\",\n master_username=\"testuser\",\n master_password=\"T3stPass\",\n node_type=\"dc1.large\",\n cluster_type=\"single-node\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"redshift\",\n redshift_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"cluster_jdbcurl\": pulumi.Output.all(\n endpoint=test_cluster.endpoint,\n database_name=test_cluster.database_name\n).apply(lambda resolved_outputs: f\"jdbc:redshift://{resolved_outputs['endpoint']}/{resolved_outputs['database_name']}\")\n,\n \"username\": \"testuser\",\n \"password\": \"T3stPass\",\n \"data_table_name\": \"test-table\",\n \"copy_options\": \"delimiter '|'\",\n \"data_table_columns\": \"test-col\",\n \"s3_backup_mode\": \"Enabled\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"s3_backup_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 15,\n \"buffering_interval\": 300,\n \"compression_format\": \"GZIP\",\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 testCluster = new Aws.RedShift.Cluster(\"test_cluster\", new()\n {\n ClusterIdentifier = \"tf-redshift-cluster\",\n DatabaseName = \"test\",\n MasterUsername = \"testuser\",\n MasterPassword = \"T3stPass\",\n NodeType = \"dc1.large\",\n ClusterType = \"single-node\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"redshift\",\n RedshiftConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n ClusterJdbcurl = Output.Tuple(testCluster.Endpoint, testCluster.DatabaseName).Apply(values =\u003e\n {\n var endpoint = values.Item1;\n var databaseName = values.Item2;\n return $\"jdbc:redshift://{endpoint}/{databaseName}\";\n }),\n Username = \"testuser\",\n Password = \"T3stPass\",\n DataTableName = \"test-table\",\n CopyOptions = \"delimiter '|'\",\n DataTableColumns = \"test-col\",\n S3BackupMode = \"Enabled\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n S3BackupConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 15,\n BufferingInterval = 300,\n CompressionFormat = \"GZIP\",\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := redshift.NewCluster(ctx, \"test_cluster\", \u0026redshift.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"tf-redshift-cluster\"),\n\t\t\tDatabaseName: pulumi.String(\"test\"),\n\t\t\tMasterUsername: pulumi.String(\"testuser\"),\n\t\t\tMasterPassword: pulumi.String(\"T3stPass\"),\n\t\t\tNodeType: pulumi.String(\"dc1.large\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"redshift\"),\n\t\t\tRedshiftConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tClusterJdbcurl: pulumi.All(testCluster.Endpoint, testCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tendpoint := _args[0].(string)\n\t\t\t\t\tdatabaseName := _args[1].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"jdbc:redshift://%v/%v\", endpoint, databaseName), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUsername: pulumi.String(\"testuser\"),\n\t\t\t\tPassword: pulumi.String(\"T3stPass\"),\n\t\t\t\tDataTableName: pulumi.String(\"test-table\"),\n\t\t\t\tCopyOptions: pulumi.String(\"delimiter '|'\"),\n\t\t\t\tDataTableColumns: pulumi.String(\"test-col\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"Enabled\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tS3BackupConfiguration: \u0026kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\t\tBufferingInterval: pulumi.Int(300),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.redshift.Cluster;\nimport com.pulumi.aws.redshift.ClusterArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs;\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 testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n .clusterIdentifier(\"tf-redshift-cluster\")\n .databaseName(\"test\")\n .masterUsername(\"testuser\")\n .masterPassword(\"T3stPass\")\n .nodeType(\"dc1.large\")\n .clusterType(\"single-node\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"redshift\")\n .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .clusterJdbcurl(Output.tuple(testCluster.endpoint(), testCluster.databaseName()).applyValue(values -\u003e {\n var endpoint = values.t1;\n var databaseName = values.t2;\n return String.format(\"jdbc:redshift://%s/%s\", endpoint,databaseName);\n }))\n .username(\"testuser\")\n .password(\"T3stPass\")\n .dataTableName(\"test-table\")\n .copyOptions(\"delimiter '|'\")\n .dataTableColumns(\"test-col\")\n .s3BackupMode(\"Enabled\")\n .s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .s3BackupConfiguration(FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(15)\n .bufferingInterval(300)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:redshift:Cluster\n name: test_cluster\n properties:\n clusterIdentifier: tf-redshift-cluster\n databaseName: test\n masterUsername: testuser\n masterPassword: T3stPass\n nodeType: dc1.large\n clusterType: single-node\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: redshift\n redshiftConfiguration:\n roleArn: ${firehoseRole.arn}\n clusterJdbcurl: jdbc:redshift://${testCluster.endpoint}/${testCluster.databaseName}\n username: testuser\n password: T3stPass\n dataTableName: test-table\n copyOptions: delimiter '|'\n dataTableColumns: test-col\n s3BackupMode: Enabled\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n s3BackupConfiguration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 15\n bufferingInterval: 300\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Elasticsearch Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"test_cluster\", {domainName: \"firehose-es-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"test_cluster\", domain_name=\"firehose-es-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"elasticsearch\",\n elasticsearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"type_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCluster = new Aws.ElasticSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"firehose-es-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"test_cluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"firehose-es-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"firehose-es-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n name: test_cluster\n properties:\n domainName: firehose-es-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehoseRole.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Elasticsearch Destination With VPC\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.elasticsearch.Domain(\"test_cluster\", {\n domainName: \"es-test\",\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"t2.small.elasticsearch\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [first.id],\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n },\n});\nconst firehose-elasticsearch = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n effect: \"Allow\",\n actions: [\"es:*\"],\n resources: [\n testCluster.arn,\n pulumi.interpolate`${testCluster.arn}/*`,\n ],\n },\n {\n effect: \"Allow\",\n actions: [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n resources: [\"*\"],\n },\n ],\n});\nconst firehose_elasticsearchRolePolicy = new aws.iam.RolePolicy(\"firehose-elasticsearch\", {\n name: \"elasticsearch\",\n role: firehose.id,\n policy: firehose_elasticsearch.apply(firehose_elasticsearch =\u003e firehose_elasticsearch.json),\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n name: \"kinesis-firehose-es\",\n destination: \"elasticsearch\",\n elasticsearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehose.arn,\n indexName: \"test\",\n typeName: \"test\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n securityGroupIds: [first.id],\n roleArn: firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_elasticsearchRolePolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.elasticsearch.Domain(\"test_cluster\",\n domain_name=\"es-test\",\n cluster_config={\n \"instance_count\": 2,\n \"zone_awareness_enabled\": True,\n \"instance_type\": \"t2.small.elasticsearch\",\n },\n ebs_options={\n \"ebs_enabled\": True,\n \"volume_size\": 10,\n },\n vpc_options={\n \"security_group_ids\": [first[\"id\"]],\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n })\nfirehose_elasticsearch = aws.iam.get_policy_document_output(statements=[\n {\n \"effect\": \"Allow\",\n \"actions\": [\"es:*\"],\n \"resources\": [\n test_cluster.arn,\n test_cluster.arn.apply(lambda arn: f\"{arn}/*\"),\n ],\n },\n {\n \"effect\": \"Allow\",\n \"actions\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n ],\n \"resources\": [\"*\"],\n },\n])\nfirehose_elasticsearch_role_policy = aws.iam.RolePolicy(\"firehose-elasticsearch\",\n name=\"elasticsearch\",\n role=firehose[\"id\"],\n policy=firehose_elasticsearch.json)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n name=\"kinesis-firehose-es\",\n destination=\"elasticsearch\",\n elasticsearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose[\"arn\"],\n \"index_name\": \"test\",\n \"type_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n \"security_group_ids\": [first[\"id\"]],\n \"role_arn\": firehose[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[firehose_elasticsearch_role_policy]))\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 testCluster = new Aws.ElasticSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"es-test\",\n ClusterConfig = new Aws.ElasticSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"t2.small.elasticsearch\",\n },\n EbsOptions = new Aws.ElasticSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.ElasticSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n },\n });\n\n var firehose_elasticsearch = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"es:*\",\n },\n Resources = new[]\n {\n testCluster.Arn,\n $\"{testCluster.Arn}/*\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Actions = new[]\n {\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var firehose_elasticsearchRolePolicy = new Aws.Iam.RolePolicy(\"firehose-elasticsearch\", new()\n {\n Name = \"elasticsearch\",\n Role = firehose.Id,\n Policy = firehose_elasticsearch.Apply(firehose_elasticsearch =\u003e firehose_elasticsearch.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Name = \"kinesis-firehose-es\",\n Destination = \"elasticsearch\",\n ElasticsearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehose.Arn,\n IndexName = \"test\",\n TypeName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n RoleArn = firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n firehose_elasticsearchRolePolicy,\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/elasticsearch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := elasticsearch.NewDomain(ctx, \"test_cluster\", \u0026elasticsearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"es-test\"),\n\t\t\tClusterConfig: \u0026elasticsearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"t2.small.elasticsearch\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026elasticsearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026elasticsearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tfirst.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\tsecond.Id,\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\tfirehose_elasticsearch := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"es:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\ttestCluster.Arn,\n\t\t\t\t\t\ttestCluster.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/*\", arn), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcs\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeVpcAttribute\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSubnets\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeSecurityGroups\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DescribeNetworkInterfaces\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterface\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:CreateNetworkInterfacePermission\"),\n\t\t\t\t\t\tpulumi.String(\"ec2:DeleteNetworkInterface\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\t_, err = iam.NewRolePolicy(ctx, \"firehose-elasticsearch\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"elasticsearch\"),\n\t\t\tRole: pulumi.Any(firehose.Id),\n\t\t\tPolicy: pulumi.String(firehose_elasticsearch.ApplyT(func(firehose_elasticsearch iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026firehose_elasticsearch.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-es\"),\n\t\t\tDestination: pulumi.String(\"elasticsearch\"),\n\t\t\tElasticsearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tTypeName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\t\tsecond.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\tfirst.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_elasticsearchRolePolicy,\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.elasticsearch.Domain;\nimport com.pulumi.aws.elasticsearch.DomainArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.elasticsearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"es-test\")\n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"t2.small.elasticsearch\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(first.id())\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .build())\n .build());\n\n final var firehose-elasticsearch = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions(\"es:*\")\n .resources( \n testCluster.arn(),\n testCluster.arn().applyValue(arn -\u003e String.format(\"%s/*\", arn)))\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .actions( \n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\")\n .resources(\"*\")\n .build())\n .build());\n\n var firehose_elasticsearchRolePolicy = new RolePolicy(\"firehose-elasticsearchRolePolicy\", RolePolicyArgs.builder()\n .name(\"elasticsearch\")\n .role(firehose.id())\n .policy(firehose_elasticsearch.applyValue(firehose_elasticsearch -\u003e firehose_elasticsearch.json()))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-es\")\n .destination(\"elasticsearch\")\n .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehose.arn())\n .indexName(\"test\")\n .typeName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .securityGroupIds(first.id())\n .roleArn(firehose.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_elasticsearchRolePolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:elasticsearch:Domain\n name: test_cluster\n properties:\n domainName: es-test\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: t2.small.elasticsearch\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${first.id}\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n firehose-elasticsearchRolePolicy:\n type: aws:iam:RolePolicy\n name: firehose-elasticsearch\n properties:\n name: elasticsearch\n role: ${firehose.id}\n policy: ${[\"firehose-elasticsearch\"].json}\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n name: kinesis-firehose-es\n destination: elasticsearch\n elasticsearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehose.arn}\n indexName: test\n typeName: test\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n vpcConfig:\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n securityGroupIds:\n - ${first.id}\n roleArn: ${firehose.arn}\n options:\n dependson:\n - ${[\"firehose-elasticsearchRolePolicy\"]}\nvariables:\n firehose-elasticsearch:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n actions:\n - es:*\n resources:\n - ${testCluster.arn}\n - ${testCluster.arn}/*\n - effect: Allow\n actions:\n - ec2:DescribeVpcs\n - ec2:DescribeVpcAttribute\n - ec2:DescribeSubnets\n - ec2:DescribeSecurityGroups\n - ec2:DescribeNetworkInterfaces\n - ec2:CreateNetworkInterface\n - ec2:CreateNetworkInterfacePermission\n - ec2:DeleteNetworkInterface\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"test_cluster\", {domainName: \"firehose-os-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"test_cluster\", domain_name=\"firehose-os-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"opensearch\",\n opensearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCluster = new Aws.OpenSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"firehose-os-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"test_cluster\", \u0026opensearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"firehose-os-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"firehose-os-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n name: test_cluster\n properties:\n domainName: firehose-os-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehoseRole.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Destination With VPC\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCluster = new aws.opensearch.Domain(\"test_cluster\", {\n domainName: \"es-test\",\n clusterConfig: {\n instanceCount: 2,\n zoneAwarenessEnabled: true,\n instanceType: \"m4.large.search\",\n },\n ebsOptions: {\n ebsEnabled: true,\n volumeSize: 10,\n },\n vpcOptions: {\n securityGroupIds: [first.id],\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n },\n});\nconst firehose_opensearch = new aws.iam.RolePolicy(\"firehose-opensearch\", {\n name: \"opensearch\",\n role: firehose.id,\n policy: pulumi.interpolate`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`,\n});\nconst test = new aws.kinesis.FirehoseDeliveryStream(\"test\", {\n name: \"pulumi-kinesis-firehose-os\",\n destination: \"opensearch\",\n opensearchConfiguration: {\n domainArn: testCluster.arn,\n roleArn: firehose.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n },\n vpcConfig: {\n subnetIds: [\n firstAwsSubnet.id,\n second.id,\n ],\n securityGroupIds: [first.id],\n roleArn: firehose.arn,\n },\n },\n}, {\n dependsOn: [firehose_opensearch],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_cluster = aws.opensearch.Domain(\"test_cluster\",\n domain_name=\"es-test\",\n cluster_config={\n \"instance_count\": 2,\n \"zone_awareness_enabled\": True,\n \"instance_type\": \"m4.large.search\",\n },\n ebs_options={\n \"ebs_enabled\": True,\n \"volume_size\": 10,\n },\n vpc_options={\n \"security_group_ids\": [first[\"id\"]],\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n })\nfirehose_opensearch = aws.iam.RolePolicy(\"firehose-opensearch\",\n name=\"opensearch\",\n role=firehose[\"id\"],\n policy=pulumi.Output.all(\n testClusterArn=test_cluster.arn,\n testClusterArn1=test_cluster.arn\n).apply(lambda resolved_outputs: f\"\"\"{{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"{resolved_outputs['testClusterArn']}\",\n \"{resolved_outputs['testClusterArn1']}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }}\n ]\n}}\n\"\"\")\n)\ntest = aws.kinesis.FirehoseDeliveryStream(\"test\",\n name=\"pulumi-kinesis-firehose-os\",\n destination=\"opensearch\",\n opensearch_configuration={\n \"domain_arn\": test_cluster.arn,\n \"role_arn\": firehose[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [\n first_aws_subnet[\"id\"],\n second[\"id\"],\n ],\n \"security_group_ids\": [first[\"id\"]],\n \"role_arn\": firehose[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[firehose_opensearch]))\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 testCluster = new Aws.OpenSearch.Domain(\"test_cluster\", new()\n {\n DomainName = \"es-test\",\n ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs\n {\n InstanceCount = 2,\n ZoneAwarenessEnabled = true,\n InstanceType = \"m4.large.search\",\n },\n EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs\n {\n EbsEnabled = true,\n VolumeSize = 10,\n },\n VpcOptions = new Aws.OpenSearch.Inputs.DomainVpcOptionsArgs\n {\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n },\n });\n\n var firehose_opensearch = new Aws.Iam.RolePolicy(\"firehose-opensearch\", new()\n {\n Name = \"opensearch\",\n Role = firehose.Id,\n Policy = Output.Tuple(testCluster.Arn, testCluster.Arn).Apply(values =\u003e\n {\n var testClusterArn = values.Item1;\n var testClusterArn1 = values.Item2;\n return @$\"{{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"es:*\"\"\n ],\n \"\"Resource\"\": [\n \"\"{testClusterArn}\"\",\n \"\"{testClusterArn1}/*\"\"\n ]\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"ec2:DescribeVpcs\"\",\n \"\"ec2:DescribeVpcAttribute\"\",\n \"\"ec2:DescribeSubnets\"\",\n \"\"ec2:DescribeSecurityGroups\"\",\n \"\"ec2:DescribeNetworkInterfaces\"\",\n \"\"ec2:CreateNetworkInterface\"\",\n \"\"ec2:CreateNetworkInterfacePermission\"\",\n \"\"ec2:DeleteNetworkInterface\"\"\n ],\n \"\"Resource\"\": [\n \"\"*\"\"\n ]\n }}\n ]\n}}\n\";\n }),\n });\n\n var test = new Aws.Kinesis.FirehoseDeliveryStream(\"test\", new()\n {\n Name = \"pulumi-kinesis-firehose-os\",\n Destination = \"opensearch\",\n OpensearchConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs\n {\n DomainArn = testCluster.Arn,\n RoleArn = firehose.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n },\n VpcConfig = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs\n {\n SubnetIds = new[]\n {\n firstAwsSubnet.Id,\n second.Id,\n },\n SecurityGroupIds = new[]\n {\n first.Id,\n },\n RoleArn = firehose.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n firehose_opensearch,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := opensearch.NewDomain(ctx, \"test_cluster\", \u0026opensearch.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"es-test\"),\n\t\t\tClusterConfig: \u0026opensearch.DomainClusterConfigArgs{\n\t\t\t\tInstanceCount: pulumi.Int(2),\n\t\t\t\tZoneAwarenessEnabled: pulumi.Bool(true),\n\t\t\t\tInstanceType: pulumi.String(\"m4.large.search\"),\n\t\t\t},\n\t\t\tEbsOptions: \u0026opensearch.DomainEbsOptionsArgs{\n\t\t\t\tEbsEnabled: pulumi.Bool(true),\n\t\t\t\tVolumeSize: pulumi.Int(10),\n\t\t\t},\n\t\t\tVpcOptions: \u0026opensearch.DomainVpcOptionsArgs{\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tfirst.Id,\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\tsecond.Id,\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 = iam.NewRolePolicy(ctx, \"firehose-opensearch\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"opensearch\"),\n\t\t\tRole: pulumi.Any(firehose.Id),\n\t\t\tPolicy: pulumi.All(testCluster.Arn, testCluster.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\ttestClusterArn := _args[0].(string)\n\t\t\t\ttestClusterArn1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%v\",\n \"%v/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n`, testClusterArn, testClusterArn1), 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\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"pulumi-kinesis-firehose-os\"),\n\t\t\tDestination: pulumi.String(\"opensearch\"),\n\t\t\tOpensearchConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{\n\t\t\t\tDomainArn: testCluster.Arn,\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t},\n\t\t\t\tVpcConfig: \u0026kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{\n\t\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\t\tfirstAwsSubnet.Id,\n\t\t\t\t\t\tsecond.Id,\n\t\t\t\t\t},\n\t\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\t\tfirst.Id,\n\t\t\t\t\t},\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfirehose_opensearch,\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.opensearch.Domain;\nimport com.pulumi.aws.opensearch.DomainArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;\nimport com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs;\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 testCluster = new Domain(\"testCluster\", DomainArgs.builder()\n .domainName(\"es-test\")\n .clusterConfig(DomainClusterConfigArgs.builder()\n .instanceCount(2)\n .zoneAwarenessEnabled(true)\n .instanceType(\"m4.large.search\")\n .build())\n .ebsOptions(DomainEbsOptionsArgs.builder()\n .ebsEnabled(true)\n .volumeSize(10)\n .build())\n .vpcOptions(DomainVpcOptionsArgs.builder()\n .securityGroupIds(first.id())\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .build())\n .build());\n\n var firehose_opensearch = new RolePolicy(\"firehose-opensearch\", RolePolicyArgs.builder()\n .name(\"opensearch\")\n .role(firehose.id())\n .policy(Output.tuple(testCluster.arn(), testCluster.arn()).applyValue(values -\u003e {\n var testClusterArn = values.t1;\n var testClusterArn1 = values.t2;\n return \"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"%s\",\n \"%s/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n}\n\", testClusterArn,testClusterArn1);\n }))\n .build());\n\n var test = new FirehoseDeliveryStream(\"test\", FirehoseDeliveryStreamArgs.builder()\n .name(\"pulumi-kinesis-firehose-os\")\n .destination(\"opensearch\")\n .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder()\n .domainArn(testCluster.arn())\n .roleArn(firehose.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .build())\n .vpcConfig(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs.builder()\n .subnetIds( \n firstAwsSubnet.id(),\n second.id())\n .securityGroupIds(first.id())\n .roleArn(firehose.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(firehose_opensearch)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCluster:\n type: aws:opensearch:Domain\n name: test_cluster\n properties:\n domainName: es-test\n clusterConfig:\n instanceCount: 2\n zoneAwarenessEnabled: true\n instanceType: m4.large.search\n ebsOptions:\n ebsEnabled: true\n volumeSize: 10\n vpcOptions:\n securityGroupIds:\n - ${first.id}\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n firehose-opensearch:\n type: aws:iam:RolePolicy\n properties:\n name: opensearch\n role: ${firehose.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"es:*\"\n ],\n \"Resource\": [\n \"${testCluster.arn}\",\n \"${testCluster.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"ec2:DescribeVpcs\",\n \"ec2:DescribeVpcAttribute\",\n \"ec2:DescribeSubnets\",\n \"ec2:DescribeSecurityGroups\",\n \"ec2:DescribeNetworkInterfaces\",\n \"ec2:CreateNetworkInterface\",\n \"ec2:CreateNetworkInterfacePermission\",\n \"ec2:DeleteNetworkInterface\"\n ],\n \"Resource\": [\n \"*\"\n ]\n }\n ]\n }\n test:\n type: aws:kinesis:FirehoseDeliveryStream\n properties:\n name: pulumi-kinesis-firehose-os\n destination: opensearch\n opensearchConfiguration:\n domainArn: ${testCluster.arn}\n roleArn: ${firehose.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n vpcConfig:\n subnetIds:\n - ${firstAwsSubnet.id}\n - ${second.id}\n securityGroupIds:\n - ${first.id}\n roleArn: ${firehose.arn}\n options:\n dependson:\n - ${[\"firehose-opensearch\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenSearch Serverless Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testCollection = new aws.opensearch.ServerlessCollection(\"test_collection\", {name: \"firehose-osserverless-test\"});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"opensearchserverless\",\n opensearchserverlessConfiguration: {\n collectionEndpoint: testCollection.collectionEndpoint,\n roleArn: firehoseRole.arn,\n indexName: \"test\",\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n processingConfiguration: {\n enabled: true,\n processors: [{\n type: \"Lambda\",\n parameters: [{\n parameterName: \"LambdaArn\",\n parameterValue: `${lambdaProcessor.arn}:$LATEST`,\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_collection = aws.opensearch.ServerlessCollection(\"test_collection\", name=\"firehose-osserverless-test\")\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"opensearchserverless\",\n opensearchserverless_configuration={\n \"collection_endpoint\": test_collection.collection_endpoint,\n \"role_arn\": firehose_role[\"arn\"],\n \"index_name\": \"test\",\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"processing_configuration\": {\n \"enabled\": True,\n \"processors\": [{\n \"type\": \"Lambda\",\n \"parameters\": [{\n \"parameter_name\": \"LambdaArn\",\n \"parameter_value\": f\"{lambda_processor['arn']}:$LATEST\",\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 testCollection = new Aws.OpenSearch.ServerlessCollection(\"test_collection\", new()\n {\n Name = \"firehose-osserverless-test\",\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"opensearchserverless\",\n OpensearchserverlessConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs\n {\n CollectionEndpoint = testCollection.CollectionEndpoint,\n RoleArn = firehoseRole.Arn,\n IndexName = \"test\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs\n {\n ParameterName = \"LambdaArn\",\n ParameterValue = $\"{lambdaProcessor.Arn}:$LATEST\",\n },\n },\n },\n },\n },\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/kinesis\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCollection, err := opensearch.NewServerlessCollection(ctx, \"test_collection\", \u0026opensearch.ServerlessCollectionArgs{\n\t\t\tName: pulumi.String(\"firehose-osserverless-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"opensearchserverless\"),\n\t\t\tOpensearchserverlessConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{\n\t\t\t\tCollectionEndpoint: testCollection.CollectionEndpoint,\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tIndexName: pulumi.String(\"test\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{\n\t\t\t\t\t\t\t\t\tParameterName: pulumi.String(\"LambdaArn\"),\n\t\t\t\t\t\t\t\t\tParameterValue: pulumi.Sprintf(\"%v:$LATEST\", lambdaProcessor.Arn),\n\t\t\t\t\t\t\t\t},\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},\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.opensearch.ServerlessCollection;\nimport com.pulumi.aws.opensearch.ServerlessCollectionArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs;\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 testCollection = new ServerlessCollection(\"testCollection\", ServerlessCollectionArgs.builder()\n .name(\"firehose-osserverless-test\")\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"opensearchserverless\")\n .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder()\n .collectionEndpoint(testCollection.collectionEndpoint())\n .roleArn(firehoseRole.arn())\n .indexName(\"test\")\n .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder()\n .parameterName(\"LambdaArn\")\n .parameterValue(String.format(\"%s:$LATEST\", lambdaProcessor.arn()))\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testCollection:\n type: aws:opensearch:ServerlessCollection\n name: test_collection\n properties:\n name: firehose-osserverless-test\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: opensearchserverless\n opensearchserverlessConfiguration:\n collectionEndpoint: ${testCollection.collectionEndpoint}\n roleArn: ${firehoseRole.arn}\n indexName: test\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Splunk Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"splunk\",\n splunkConfiguration: {\n hecEndpoint: \"https://http-inputs-mydomain.splunkcloud.com:443\",\n hecToken: \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n hecAcknowledgmentTimeout: 600,\n hecEndpointType: \"Event\",\n s3BackupMode: \"FailedEventsOnly\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"splunk\",\n splunk_configuration={\n \"hec_endpoint\": \"https://http-inputs-mydomain.splunkcloud.com:443\",\n \"hec_token\": \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n \"hec_acknowledgment_timeout\": 600,\n \"hec_endpoint_type\": \"Event\",\n \"s3_backup_mode\": \"FailedEventsOnly\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"splunk\",\n SplunkConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationArgs\n {\n HecEndpoint = \"https://http-inputs-mydomain.splunkcloud.com:443\",\n HecToken = \"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\",\n HecAcknowledgmentTimeout = 600,\n HecEndpointType = \"Event\",\n S3BackupMode = \"FailedEventsOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"splunk\"),\n\t\t\tSplunkConfiguration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs{\n\t\t\t\tHecEndpoint: pulumi.String(\"https://http-inputs-mydomain.splunkcloud.com:443\"),\n\t\t\t\tHecToken: pulumi.String(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\"),\n\t\t\t\tHecAcknowledgmentTimeout: pulumi.Int(600),\n\t\t\t\tHecEndpointType: pulumi.String(\"Event\"),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedEventsOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"splunk\")\n .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder()\n .hecEndpoint(\"https://http-inputs-mydomain.splunkcloud.com:443\")\n .hecToken(\"51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\")\n .hecAcknowledgmentTimeout(600)\n .hecEndpointType(\"Event\")\n .s3BackupMode(\"FailedEventsOnly\")\n .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: splunk\n splunkConfiguration:\n hecEndpoint: https://http-inputs-mydomain.splunkcloud.com:443\n hecToken: 51D4DA16-C61B-4F5F-8EC7-ED4301342A4A\n hecAcknowledgmentTimeout: 600\n hecEndpointType: Event\n s3BackupMode: FailedEventsOnly\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### HTTP Endpoint (e.g., New Relic) Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"http_endpoint\",\n httpEndpointConfiguration: {\n url: \"https://aws-api.newrelic.com/firehose/v1\",\n name: \"New Relic\",\n accessKey: \"my-key\",\n bufferingSize: 15,\n bufferingInterval: 600,\n roleArn: firehose.arn,\n s3BackupMode: \"FailedDataOnly\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n requestConfiguration: {\n contentEncoding: \"GZIP\",\n commonAttributes: [\n {\n name: \"testname\",\n value: \"testvalue\",\n },\n {\n name: \"testname2\",\n value: \"testvalue2\",\n },\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"http_endpoint\",\n http_endpoint_configuration={\n \"url\": \"https://aws-api.newrelic.com/firehose/v1\",\n \"name\": \"New Relic\",\n \"access_key\": \"my-key\",\n \"buffering_size\": 15,\n \"buffering_interval\": 600,\n \"role_arn\": firehose[\"arn\"],\n \"s3_backup_mode\": \"FailedDataOnly\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\n },\n \"request_configuration\": {\n \"content_encoding\": \"GZIP\",\n \"common_attributes\": [\n {\n \"name\": \"testname\",\n \"value\": \"testvalue\",\n },\n {\n \"name\": \"testname2\",\n \"value\": \"testvalue2\",\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 testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"http_endpoint\",\n HttpEndpointConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs\n {\n Url = \"https://aws-api.newrelic.com/firehose/v1\",\n Name = \"New Relic\",\n AccessKey = \"my-key\",\n BufferingSize = 15,\n BufferingInterval = 600,\n RoleArn = firehose.Arn,\n S3BackupMode = \"FailedDataOnly\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n RequestConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs\n {\n ContentEncoding = \"GZIP\",\n CommonAttributes = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname\",\n Value = \"testvalue\",\n },\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs\n {\n Name = \"testname2\",\n Value = \"testvalue2\",\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/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"http_endpoint\"),\n\t\t\tHttpEndpointConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs{\n\t\t\t\tUrl: pulumi.String(\"https://aws-api.newrelic.com/firehose/v1\"),\n\t\t\t\tName: pulumi.String(\"New Relic\"),\n\t\t\t\tAccessKey: pulumi.String(\"my-key\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tS3BackupMode: pulumi.String(\"FailedDataOnly\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\n\t\t\t\t},\n\t\t\t\tRequestConfiguration: \u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs{\n\t\t\t\t\tContentEncoding: pulumi.String(\"GZIP\"),\n\t\t\t\t\tCommonAttributes: kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testname2\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testvalue2\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs;\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 testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"http_endpoint\")\n .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder()\n .url(\"https://aws-api.newrelic.com/firehose/v1\")\n .name(\"New Relic\")\n .accessKey(\"my-key\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .roleArn(firehose.arn())\n .s3BackupMode(\"FailedDataOnly\")\n .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder()\n .contentEncoding(\"GZIP\")\n .commonAttributes( \n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname\")\n .value(\"testvalue\")\n .build(),\n FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder()\n .name(\"testname2\")\n .value(\"testvalue2\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: http_endpoint\n httpEndpointConfiguration:\n url: https://aws-api.newrelic.com/firehose/v1\n name: New Relic\n accessKey: my-key\n bufferingSize: 15\n bufferingInterval: 600\n roleArn: ${firehose.arn}\n s3BackupMode: FailedDataOnly\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n requestConfiguration:\n contentEncoding: GZIP\n commonAttributes:\n - name: testname\n value: testvalue\n - name: testname2\n value: testvalue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Snowflake Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleSnowflakeDestination = new aws.kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\", {\n name: \"example-snowflake-destination\",\n destination: \"snowflake\",\n snowflakeConfiguration: {\n accountUrl: \"https://example.snowflakecomputing.com\",\n bufferingSize: 15,\n bufferingInterval: 600,\n database: \"example-db\",\n privateKey: \"...\",\n roleArn: firehose.arn,\n schema: \"example-schema\",\n table: \"example-table\",\n user: \"example-usr\",\n s3Configuration: {\n roleArn: firehose.arn,\n bucketArn: bucket.arn,\n bufferingSize: 10,\n bufferingInterval: 400,\n compressionFormat: \"GZIP\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_snowflake_destination = aws.kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\",\n name=\"example-snowflake-destination\",\n destination=\"snowflake\",\n snowflake_configuration={\n \"account_url\": \"https://example.snowflakecomputing.com\",\n \"buffering_size\": 15,\n \"buffering_interval\": 600,\n \"database\": \"example-db\",\n \"private_key\": \"...\",\n \"role_arn\": firehose[\"arn\"],\n \"schema\": \"example-schema\",\n \"table\": \"example-table\",\n \"user\": \"example-usr\",\n \"s3_configuration\": {\n \"role_arn\": firehose[\"arn\"],\n \"bucket_arn\": bucket[\"arn\"],\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"compression_format\": \"GZIP\",\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 exampleSnowflakeDestination = new Aws.Kinesis.FirehoseDeliveryStream(\"example_snowflake_destination\", new()\n {\n Name = \"example-snowflake-destination\",\n Destination = \"snowflake\",\n SnowflakeConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSnowflakeConfigurationArgs\n {\n AccountUrl = \"https://example.snowflakecomputing.com\",\n BufferingSize = 15,\n BufferingInterval = 600,\n Database = \"example-db\",\n PrivateKey = \"...\",\n RoleArn = firehose.Arn,\n Schema = \"example-schema\",\n Table = \"example-table\",\n User = \"example-usr\",\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs\n {\n RoleArn = firehose.Arn,\n BucketArn = bucket.Arn,\n BufferingSize = 10,\n BufferingInterval = 400,\n CompressionFormat = \"GZIP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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 := kinesis.NewFirehoseDeliveryStream(ctx, \"example_snowflake_destination\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"example-snowflake-destination\"),\n\t\t\tDestination: pulumi.String(\"snowflake\"),\n\t\t\tSnowflakeConfiguration: \u0026kinesis.FirehoseDeliveryStreamSnowflakeConfigurationArgs{\n\t\t\t\tAccountUrl: pulumi.String(\"https://example.snowflakecomputing.com\"),\n\t\t\t\tBufferingSize: pulumi.Int(15),\n\t\t\t\tBufferingInterval: pulumi.Int(600),\n\t\t\t\tDatabase: pulumi.String(\"example-db\"),\n\t\t\t\tPrivateKey: pulumi.String(\"...\"),\n\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\tSchema: pulumi.String(\"example-schema\"),\n\t\t\t\tTable: pulumi.String(\"example-table\"),\n\t\t\t\tUser: pulumi.String(\"example-usr\"),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehose.Arn),\n\t\t\t\t\tBucketArn: pulumi.Any(bucket.Arn),\n\t\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\t\tCompressionFormat: pulumi.String(\"GZIP\"),\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.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs;\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 exampleSnowflakeDestination = new FirehoseDeliveryStream(\"exampleSnowflakeDestination\", FirehoseDeliveryStreamArgs.builder()\n .name(\"example-snowflake-destination\")\n .destination(\"snowflake\")\n .snowflakeConfiguration(FirehoseDeliveryStreamSnowflakeConfigurationArgs.builder()\n .accountUrl(\"https://example.snowflakecomputing.com\")\n .bufferingSize(15)\n .bufferingInterval(600)\n .database(\"example-db\")\n .privateKey(\"...\")\n .roleArn(firehose.arn())\n .schema(\"example-schema\")\n .table(\"example-table\")\n .user(\"example-usr\")\n .s3Configuration(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehose.arn())\n .bucketArn(bucket.arn())\n .bufferingSize(10)\n .bufferingInterval(400)\n .compressionFormat(\"GZIP\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleSnowflakeDestination:\n type: aws:kinesis:FirehoseDeliveryStream\n name: example_snowflake_destination\n properties:\n name: example-snowflake-destination\n destination: snowflake\n snowflakeConfiguration:\n accountUrl: https://example.snowflakecomputing.com\n bufferingSize: 15\n bufferingInterval: 600\n database: example-db\n privateKey: '...'\n roleArn: ${firehose.arn}\n schema: example-schema\n table: example-table\n user: example-usr\n s3Configuration:\n roleArn: ${firehose.arn}\n bucketArn: ${bucket.arn}\n bufferingSize: 10\n bufferingInterval: 400\n compressionFormat: GZIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Kinesis Firehose Delivery streams using the stream ARN. For example:\n\n```sh\n$ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream foo arn:aws:firehose:us-east-1:XXX:deliverystream/example\n```\nNote: Import does not work for stream destination `s3`. Consider using `extended_s3` since `s3` destination is deprecated.\n\n", "properties": { "arn": { "type": "string", @@ -287853,7 +288443,7 @@ } }, "aws:lambda/codeSigningConfig:CodeSigningConfig": { - "description": "Provides a Lambda Code Signing Config resource. A code signing configuration defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail).\n\nFor information about Lambda code signing configurations and how to use them, see [configuring code signing for Lambda functions](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.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 newCsc = new aws.lambda.CodeSigningConfig(\"new_csc\", {\n allowedPublishers: {\n signingProfileVersionArns: [\n example1.arn,\n example2.arn,\n ],\n },\n policies: {\n untrustedArtifactOnDeployment: \"Warn\",\n },\n description: \"My awesome code signing config.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnew_csc = aws.lambda_.CodeSigningConfig(\"new_csc\",\n allowed_publishers={\n \"signing_profile_version_arns\": [\n example1[\"arn\"],\n example2[\"arn\"],\n ],\n },\n policies={\n \"untrusted_artifact_on_deployment\": \"Warn\",\n },\n description=\"My awesome code signing config.\")\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 newCsc = new Aws.Lambda.CodeSigningConfig(\"new_csc\", new()\n {\n AllowedPublishers = new Aws.Lambda.Inputs.CodeSigningConfigAllowedPublishersArgs\n {\n SigningProfileVersionArns = new[]\n {\n example1.Arn,\n example2.Arn,\n },\n },\n Policies = new Aws.Lambda.Inputs.CodeSigningConfigPoliciesArgs\n {\n UntrustedArtifactOnDeployment = \"Warn\",\n },\n Description = \"My awesome code signing config.\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewCodeSigningConfig(ctx, \"new_csc\", \u0026lambda.CodeSigningConfigArgs{\n\t\t\tAllowedPublishers: \u0026lambda.CodeSigningConfigAllowedPublishersArgs{\n\t\t\t\tSigningProfileVersionArns: pulumi.StringArray{\n\t\t\t\t\texample1.Arn,\n\t\t\t\t\texample2.Arn,\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: \u0026lambda.CodeSigningConfigPoliciesArgs{\n\t\t\t\tUntrustedArtifactOnDeployment: pulumi.String(\"Warn\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"My awesome code signing config.\"),\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.lambda.CodeSigningConfig;\nimport com.pulumi.aws.lambda.CodeSigningConfigArgs;\nimport com.pulumi.aws.lambda.inputs.CodeSigningConfigAllowedPublishersArgs;\nimport com.pulumi.aws.lambda.inputs.CodeSigningConfigPoliciesArgs;\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 newCsc = new CodeSigningConfig(\"newCsc\", CodeSigningConfigArgs.builder()\n .allowedPublishers(CodeSigningConfigAllowedPublishersArgs.builder()\n .signingProfileVersionArns( \n example1.arn(),\n example2.arn())\n .build())\n .policies(CodeSigningConfigPoliciesArgs.builder()\n .untrustedArtifactOnDeployment(\"Warn\")\n .build())\n .description(\"My awesome code signing config.\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCsc:\n type: aws:lambda:CodeSigningConfig\n name: new_csc\n properties:\n allowedPublishers:\n signingProfileVersionArns:\n - ${example1.arn}\n - ${example2.arn}\n policies:\n untrustedArtifactOnDeployment: Warn\n description: My awesome code signing config.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Code Signing Configs using their ARN. For example:\n\n```sh\n$ pulumi import aws:lambda/codeSigningConfig:CodeSigningConfig imported_csc arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b\n```\n", + "description": "Provides a Lambda Code Signing Config resource. A code signing configuration defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail).\n\nFor information about Lambda code signing configurations and how to use them, see [configuring code signing for Lambda functions](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.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 newCsc = new aws.lambda.CodeSigningConfig(\"new_csc\", {\n allowedPublishers: {\n signingProfileVersionArns: [\n example1.arn,\n example2.arn,\n ],\n },\n policies: {\n untrustedArtifactOnDeployment: \"Warn\",\n },\n description: \"My awesome code signing config.\",\n tags: {\n Name: \"dynamodb\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnew_csc = aws.lambda_.CodeSigningConfig(\"new_csc\",\n allowed_publishers={\n \"signing_profile_version_arns\": [\n example1[\"arn\"],\n example2[\"arn\"],\n ],\n },\n policies={\n \"untrusted_artifact_on_deployment\": \"Warn\",\n },\n description=\"My awesome code signing config.\",\n tags={\n \"Name\": \"dynamodb\",\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 newCsc = new Aws.Lambda.CodeSigningConfig(\"new_csc\", new()\n {\n AllowedPublishers = new Aws.Lambda.Inputs.CodeSigningConfigAllowedPublishersArgs\n {\n SigningProfileVersionArns = new[]\n {\n example1.Arn,\n example2.Arn,\n },\n },\n Policies = new Aws.Lambda.Inputs.CodeSigningConfigPoliciesArgs\n {\n UntrustedArtifactOnDeployment = \"Warn\",\n },\n Description = \"My awesome code signing config.\",\n Tags = \n {\n { \"Name\", \"dynamodb\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewCodeSigningConfig(ctx, \"new_csc\", \u0026lambda.CodeSigningConfigArgs{\n\t\t\tAllowedPublishers: \u0026lambda.CodeSigningConfigAllowedPublishersArgs{\n\t\t\t\tSigningProfileVersionArns: pulumi.StringArray{\n\t\t\t\t\texample1.Arn,\n\t\t\t\t\texample2.Arn,\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicies: \u0026lambda.CodeSigningConfigPoliciesArgs{\n\t\t\t\tUntrustedArtifactOnDeployment: pulumi.String(\"Warn\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"My awesome code signing config.\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"dynamodb\"),\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.lambda.CodeSigningConfig;\nimport com.pulumi.aws.lambda.CodeSigningConfigArgs;\nimport com.pulumi.aws.lambda.inputs.CodeSigningConfigAllowedPublishersArgs;\nimport com.pulumi.aws.lambda.inputs.CodeSigningConfigPoliciesArgs;\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 newCsc = new CodeSigningConfig(\"newCsc\", CodeSigningConfigArgs.builder()\n .allowedPublishers(CodeSigningConfigAllowedPublishersArgs.builder()\n .signingProfileVersionArns( \n example1.arn(),\n example2.arn())\n .build())\n .policies(CodeSigningConfigPoliciesArgs.builder()\n .untrustedArtifactOnDeployment(\"Warn\")\n .build())\n .description(\"My awesome code signing config.\")\n .tags(Map.of(\"Name\", \"dynamodb\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCsc:\n type: aws:lambda:CodeSigningConfig\n name: new_csc\n properties:\n allowedPublishers:\n signingProfileVersionArns:\n - ${example1.arn}\n - ${example2.arn}\n policies:\n untrustedArtifactOnDeployment: Warn\n description: My awesome code signing config.\n tags:\n Name: dynamodb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Code Signing Configs using their ARN. For example:\n\n```sh\n$ pulumi import aws:lambda/codeSigningConfig:CodeSigningConfig imported_csc arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0f6c334abcdea4d8b\n```\n", "properties": { "allowedPublishers": { "$ref": "#/types/aws:lambda/CodeSigningConfigAllowedPublishers:CodeSigningConfigAllowedPublishers", @@ -287878,6 +288468,21 @@ "policies": { "$ref": "#/types/aws:lambda/CodeSigningConfigPolicies:CodeSigningConfigPolicies", "description": "A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. 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." } }, "required": [ @@ -287885,7 +288490,8 @@ "arn", "configId", "lastModified", - "policies" + "policies", + "tagsAll" ], "inputProperties": { "allowedPublishers": { @@ -287899,6 +288505,13 @@ "policies": { "$ref": "#/types/aws:lambda/CodeSigningConfigPolicies:CodeSigningConfigPolicies", "description": "A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" } }, "requiredInputs": [ @@ -287930,18 +288543,37 @@ "policies": { "$ref": "#/types/aws:lambda/CodeSigningConfigPolicies:CodeSigningConfigPolicies", "description": "A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. 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." } }, "type": "object" } }, "aws:lambda/eventSourceMapping:EventSourceMapping": { - "description": "Provides a Lambda event source mapping. This allows Lambda functions to get events from Kinesis, DynamoDB, SQS, Amazon MQ and Managed Streaming for Apache Kafka (MSK).\n\nFor information about Lambda and how to use it, see [What is AWS Lambda?](http://docs.aws.amazon.com/lambda/latest/dg/welcome.html).\nFor information about event source mappings, see [CreateEventSourceMapping](http://docs.aws.amazon.com/lambda/latest/dg/API_CreateEventSourceMapping.html) in the API docs.\n\n## Example Usage\n\n### DynamoDB\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsDynamodbTable.streamArn,\n functionName: exampleAwsLambdaFunction.arn,\n startingPosition: \"LATEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_dynamodb_table[\"streamArn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n starting_position=\"LATEST\")\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsDynamodbTable.StreamArn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n StartingPosition = \"LATEST\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsDynamodbTable.StreamArn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tStartingPosition: pulumi.String(\"LATEST\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsDynamodbTable.streamArn())\n .functionName(exampleAwsLambdaFunction.arn())\n .startingPosition(\"LATEST\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsDynamodbTable.streamArn}\n functionName: ${exampleAwsLambdaFunction.arn}\n startingPosition: LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Kinesis\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsKinesisStream.arn,\n functionName: exampleAwsLambdaFunction.arn,\n startingPosition: \"LATEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_kinesis_stream[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n starting_position=\"LATEST\")\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsKinesisStream.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n StartingPosition = \"LATEST\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsKinesisStream.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tStartingPosition: pulumi.String(\"LATEST\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsKinesisStream.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .startingPosition(\"LATEST\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsKinesisStream.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n startingPosition: LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managed Streaming for Apache Kafka (MSK)\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsMskCluster.arn,\n functionName: exampleAwsLambdaFunction.arn,\n topics: [\"Example\"],\n startingPosition: \"TRIM_HORIZON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_msk_cluster[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n topics=[\"Example\"],\n starting_position=\"TRIM_HORIZON\")\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsMskCluster.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Topics = new[]\n {\n \"Example\",\n },\n StartingPosition = \"TRIM_HORIZON\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMskCluster.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Example\"),\n\t\t\t},\n\t\t\tStartingPosition: pulumi.String(\"TRIM_HORIZON\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsMskCluster.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .topics(\"Example\")\n .startingPosition(\"TRIM_HORIZON\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsMskCluster.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n topics:\n - Example\n startingPosition: TRIM_HORIZON\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Self Managed Apache Kafka\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.lambda.EventSourceMapping(\"example\", {\n functionName: exampleAwsLambdaFunction.arn,\n topics: [\"Example\"],\n startingPosition: \"TRIM_HORIZON\",\n selfManagedEventSource: {\n endpoints: {\n KAFKA_BOOTSTRAP_SERVERS: \"kafka1.example.com:9092,kafka2.example.com:9092\",\n },\n },\n sourceAccessConfigurations: [\n {\n type: \"VPC_SUBNET\",\n uri: \"subnet:subnet-example1\",\n },\n {\n type: \"VPC_SUBNET\",\n uri: \"subnet:subnet-example2\",\n },\n {\n type: \"VPC_SECURITY_GROUP\",\n uri: \"security_group:sg-example\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n function_name=example_aws_lambda_function[\"arn\"],\n topics=[\"Example\"],\n starting_position=\"TRIM_HORIZON\",\n self_managed_event_source={\n \"endpoints\": {\n \"kafk_a__bootstra_p__servers\": \"kafka1.example.com:9092,kafka2.example.com:9092\",\n },\n },\n source_access_configurations=[\n {\n \"type\": \"VPC_SUBNET\",\n \"uri\": \"subnet:subnet-example1\",\n },\n {\n \"type\": \"VPC_SUBNET\",\n \"uri\": \"subnet:subnet-example2\",\n },\n {\n \"type\": \"VPC_SECURITY_GROUP\",\n \"uri\": \"security_group:sg-example\",\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n FunctionName = exampleAwsLambdaFunction.Arn,\n Topics = new[]\n {\n \"Example\",\n },\n StartingPosition = \"TRIM_HORIZON\",\n SelfManagedEventSource = new Aws.Lambda.Inputs.EventSourceMappingSelfManagedEventSourceArgs\n {\n Endpoints = \n {\n { \"KAFKA_BOOTSTRAP_SERVERS\", \"kafka1.example.com:9092,kafka2.example.com:9092\" },\n },\n },\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SUBNET\",\n Uri = \"subnet:subnet-example1\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SUBNET\",\n Uri = \"subnet:subnet-example2\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SECURITY_GROUP\",\n Uri = \"security_group:sg-example\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Example\"),\n\t\t\t},\n\t\t\tStartingPosition: pulumi.String(\"TRIM_HORIZON\"),\n\t\t\tSelfManagedEventSource: \u0026lambda.EventSourceMappingSelfManagedEventSourceArgs{\n\t\t\t\tEndpoints: pulumi.StringMap{\n\t\t\t\t\t\"KAFKA_BOOTSTRAP_SERVERS\": pulumi.String(\"kafka1.example.com:9092,kafka2.example.com:9092\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SUBNET\"),\n\t\t\t\t\tUri: pulumi.String(\"subnet:subnet-example1\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SUBNET\"),\n\t\t\t\t\tUri: pulumi.String(\"subnet:subnet-example2\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SECURITY_GROUP\"),\n\t\t\t\t\tUri: pulumi.String(\"security_group:sg-example\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSelfManagedEventSourceArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .functionName(exampleAwsLambdaFunction.arn())\n .topics(\"Example\")\n .startingPosition(\"TRIM_HORIZON\")\n .selfManagedEventSource(EventSourceMappingSelfManagedEventSourceArgs.builder()\n .endpoints(Map.of(\"KAFKA_BOOTSTRAP_SERVERS\", \"kafka1.example.com:9092,kafka2.example.com:9092\"))\n .build())\n .sourceAccessConfigurations( \n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SUBNET\")\n .uri(\"subnet:subnet-example1\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SUBNET\")\n .uri(\"subnet:subnet-example2\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SECURITY_GROUP\")\n .uri(\"security_group:sg-example\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n functionName: ${exampleAwsLambdaFunction.arn}\n topics:\n - Example\n startingPosition: TRIM_HORIZON\n selfManagedEventSource:\n endpoints:\n KAFKA_BOOTSTRAP_SERVERS: kafka1.example.com:9092,kafka2.example.com:9092\n sourceAccessConfigurations:\n - type: VPC_SUBNET\n uri: subnet:subnet-example1\n - type: VPC_SUBNET\n uri: subnet:subnet-example2\n - type: VPC_SECURITY_GROUP\n uri: security_group:sg-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: sqsQueueTest.arn,\n functionName: exampleAwsLambdaFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=sqs_queue_test[\"arn\"],\n function_name=example_aws_lambda_function[\"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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = sqsQueueTest.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(sqsQueueTest.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(sqsQueueTest.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${sqsQueueTest.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS with event filter\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: sqsQueueTest.arn,\n functionName: exampleAwsLambdaFunction.arn,\n filterCriteria: {\n filters: [{\n pattern: JSON.stringify({\n body: {\n Temperature: [{\n numeric: [\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n ],\n }],\n Location: [\"New York\"],\n },\n }),\n }],\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=sqs_queue_test[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n filter_criteria={\n \"filters\": [{\n \"pattern\": json.dumps({\n \"body\": {\n \"temperature\": [{\n \"numeric\": [\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n ],\n }],\n \"location\": [\"New York\"],\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = sqsQueueTest.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n FilterCriteria = new Aws.Lambda.Inputs.EventSourceMappingFilterCriteriaArgs\n {\n Filters = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingFilterCriteriaFilterArgs\n {\n Pattern = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"body\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Temperature\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"numeric\"] = new object?[]\n {\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n },\n },\n },\n [\"Location\"] = new[]\n {\n \"New York\",\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/lambda\"\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\"body\": map[string]interface{}{\n\t\t\t\t\"Temperature\": []map[string]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"numeric\": []interface{}{\n\t\t\t\t\t\t\t\"\u003e\",\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\"\u003c=\",\n\t\t\t\t\t\t\t100,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"Location\": []string{\n\t\t\t\t\t\"New York\",\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 = lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(sqsQueueTest.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tFilterCriteria: \u0026lambda.EventSourceMappingFilterCriteriaArgs{\n\t\t\t\tFilters: lambda.EventSourceMappingFilterCriteriaFilterArray{\n\t\t\t\t\t\u0026lambda.EventSourceMappingFilterCriteriaFilterArgs{\n\t\t\t\t\t\tPattern: pulumi.String(json0),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingFilterCriteriaArgs;\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 example = new EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(sqsQueueTest.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .filterCriteria(EventSourceMappingFilterCriteriaArgs.builder()\n .filters(EventSourceMappingFilterCriteriaFilterArgs.builder()\n .pattern(serializeJson(\n jsonObject(\n jsonProperty(\"body\", jsonObject(\n jsonProperty(\"Temperature\", jsonArray(jsonObject(\n jsonProperty(\"numeric\", jsonArray(\n \"\u003e\", \n 0, \n \"\u003c=\", \n 100\n ))\n ))),\n jsonProperty(\"Location\", jsonArray(\"New York\"))\n ))\n )))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${sqsQueueTest.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n filterCriteria:\n filters:\n - pattern:\n fn::toJSON:\n body:\n Temperature:\n - numeric:\n - '\u003e'\n - 0\n - \u003c=\n - 100\n Location:\n - New York\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Amazon MQ (ActiveMQ)\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.lambda.EventSourceMapping(\"example\", {\n batchSize: 10,\n eventSourceArn: exampleAwsMqBroker.arn,\n enabled: true,\n functionName: exampleAwsLambdaFunction.arn,\n queues: \"example\",\n sourceAccessConfigurations: [{\n type: \"BASIC_AUTH\",\n uri: exampleAwsSecretsmanagerSecretVersion.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n batch_size=10,\n event_source_arn=example_aws_mq_broker[\"arn\"],\n enabled=True,\n function_name=example_aws_lambda_function[\"arn\"],\n queues=\"example\",\n source_access_configurations=[{\n \"type\": \"BASIC_AUTH\",\n \"uri\": example_aws_secretsmanager_secret_version[\"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.Lambda.EventSourceMapping(\"example\", new()\n {\n BatchSize = 10,\n EventSourceArn = exampleAwsMqBroker.Arn,\n Enabled = true,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Queues = \"example\",\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"BASIC_AUTH\",\n Uri = exampleAwsSecretsmanagerSecretVersion.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tBatchSize: pulumi.Int(10),\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMqBroker.Arn),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tQueues: pulumi.String(\"example\"),\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"BASIC_AUTH\"),\n\t\t\t\t\tUri: pulumi.Any(exampleAwsSecretsmanagerSecretVersion.Arn),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .batchSize(10)\n .eventSourceArn(exampleAwsMqBroker.arn())\n .enabled(true)\n .functionName(exampleAwsLambdaFunction.arn())\n .queues(\"example\")\n .sourceAccessConfigurations(EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"BASIC_AUTH\")\n .uri(exampleAwsSecretsmanagerSecretVersion.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n batchSize: 10\n eventSourceArn: ${exampleAwsMqBroker.arn}\n enabled: true\n functionName: ${exampleAwsLambdaFunction.arn}\n queues: example\n sourceAccessConfigurations:\n - type: BASIC_AUTH\n uri: ${exampleAwsSecretsmanagerSecretVersion.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Amazon MQ (RabbitMQ)\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.lambda.EventSourceMapping(\"example\", {\n batchSize: 1,\n eventSourceArn: exampleAwsMqBroker.arn,\n enabled: true,\n functionName: exampleAwsLambdaFunction.arn,\n queues: \"example\",\n sourceAccessConfigurations: [\n {\n type: \"VIRTUAL_HOST\",\n uri: \"/example\",\n },\n {\n type: \"BASIC_AUTH\",\n uri: exampleAwsSecretsmanagerSecretVersion.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n batch_size=1,\n event_source_arn=example_aws_mq_broker[\"arn\"],\n enabled=True,\n function_name=example_aws_lambda_function[\"arn\"],\n queues=\"example\",\n source_access_configurations=[\n {\n \"type\": \"VIRTUAL_HOST\",\n \"uri\": \"/example\",\n },\n {\n \"type\": \"BASIC_AUTH\",\n \"uri\": example_aws_secretsmanager_secret_version[\"arn\"],\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n BatchSize = 1,\n EventSourceArn = exampleAwsMqBroker.Arn,\n Enabled = true,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Queues = \"example\",\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VIRTUAL_HOST\",\n Uri = \"/example\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"BASIC_AUTH\",\n Uri = exampleAwsSecretsmanagerSecretVersion.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tBatchSize: pulumi.Int(1),\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMqBroker.Arn),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tQueues: pulumi.String(\"example\"),\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VIRTUAL_HOST\"),\n\t\t\t\t\tUri: pulumi.String(\"/example\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"BASIC_AUTH\"),\n\t\t\t\t\tUri: pulumi.Any(exampleAwsSecretsmanagerSecretVersion.Arn),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .batchSize(1)\n .eventSourceArn(exampleAwsMqBroker.arn())\n .enabled(true)\n .functionName(exampleAwsLambdaFunction.arn())\n .queues(\"example\")\n .sourceAccessConfigurations( \n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VIRTUAL_HOST\")\n .uri(\"/example\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"BASIC_AUTH\")\n .uri(exampleAwsSecretsmanagerSecretVersion.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n batchSize: 1\n eventSourceArn: ${exampleAwsMqBroker.arn}\n enabled: true\n functionName: ${exampleAwsLambdaFunction.arn}\n queues: example\n sourceAccessConfigurations:\n - type: VIRTUAL_HOST\n uri: /example\n - type: BASIC_AUTH\n uri: ${exampleAwsSecretsmanagerSecretVersion.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Lambda event source mappings using the `UUID` (event source mapping identifier). For example:\n\n```sh\n$ pulumi import aws:lambda/eventSourceMapping:EventSourceMapping event_source_mapping 12345kxodurf3443\n```\n", + "description": "Provides a Lambda event source mapping. This allows Lambda functions to get events from Kinesis, DynamoDB, SQS, Amazon MQ and Managed Streaming for Apache Kafka (MSK).\n\nFor information about Lambda and how to use it, see [What is AWS Lambda?](http://docs.aws.amazon.com/lambda/latest/dg/welcome.html).\nFor information about event source mappings, see [CreateEventSourceMapping](http://docs.aws.amazon.com/lambda/latest/dg/API_CreateEventSourceMapping.html) in the API docs.\n\n## Example Usage\n\n### DynamoDB\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsDynamodbTable.streamArn,\n functionName: exampleAwsLambdaFunction.arn,\n startingPosition: \"LATEST\",\n tags: {\n Name: \"dynamodb\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_dynamodb_table[\"streamArn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n starting_position=\"LATEST\",\n tags={\n \"Name\": \"dynamodb\",\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsDynamodbTable.StreamArn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n StartingPosition = \"LATEST\",\n Tags = \n {\n { \"Name\", \"dynamodb\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsDynamodbTable.StreamArn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tStartingPosition: pulumi.String(\"LATEST\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"dynamodb\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsDynamodbTable.streamArn())\n .functionName(exampleAwsLambdaFunction.arn())\n .startingPosition(\"LATEST\")\n .tags(Map.of(\"Name\", \"dynamodb\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsDynamodbTable.streamArn}\n functionName: ${exampleAwsLambdaFunction.arn}\n startingPosition: LATEST\n tags:\n Name: dynamodb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Kinesis\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsKinesisStream.arn,\n functionName: exampleAwsLambdaFunction.arn,\n startingPosition: \"LATEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_kinesis_stream[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n starting_position=\"LATEST\")\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsKinesisStream.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n StartingPosition = \"LATEST\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsKinesisStream.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tStartingPosition: pulumi.String(\"LATEST\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsKinesisStream.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .startingPosition(\"LATEST\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsKinesisStream.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n startingPosition: LATEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managed Streaming for Apache Kafka (MSK)\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: exampleAwsMskCluster.arn,\n functionName: exampleAwsLambdaFunction.arn,\n topics: [\"Example\"],\n startingPosition: \"TRIM_HORIZON\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=example_aws_msk_cluster[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n topics=[\"Example\"],\n starting_position=\"TRIM_HORIZON\")\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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = exampleAwsMskCluster.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Topics = new[]\n {\n \"Example\",\n },\n StartingPosition = \"TRIM_HORIZON\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMskCluster.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Example\"),\n\t\t\t},\n\t\t\tStartingPosition: pulumi.String(\"TRIM_HORIZON\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(exampleAwsMskCluster.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .topics(\"Example\")\n .startingPosition(\"TRIM_HORIZON\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${exampleAwsMskCluster.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n topics:\n - Example\n startingPosition: TRIM_HORIZON\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Self Managed Apache Kafka\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.lambda.EventSourceMapping(\"example\", {\n functionName: exampleAwsLambdaFunction.arn,\n topics: [\"Example\"],\n startingPosition: \"TRIM_HORIZON\",\n selfManagedEventSource: {\n endpoints: {\n KAFKA_BOOTSTRAP_SERVERS: \"kafka1.example.com:9092,kafka2.example.com:9092\",\n },\n },\n sourceAccessConfigurations: [\n {\n type: \"VPC_SUBNET\",\n uri: \"subnet:subnet-example1\",\n },\n {\n type: \"VPC_SUBNET\",\n uri: \"subnet:subnet-example2\",\n },\n {\n type: \"VPC_SECURITY_GROUP\",\n uri: \"security_group:sg-example\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n function_name=example_aws_lambda_function[\"arn\"],\n topics=[\"Example\"],\n starting_position=\"TRIM_HORIZON\",\n self_managed_event_source={\n \"endpoints\": {\n \"kafk_a__bootstra_p__servers\": \"kafka1.example.com:9092,kafka2.example.com:9092\",\n },\n },\n source_access_configurations=[\n {\n \"type\": \"VPC_SUBNET\",\n \"uri\": \"subnet:subnet-example1\",\n },\n {\n \"type\": \"VPC_SUBNET\",\n \"uri\": \"subnet:subnet-example2\",\n },\n {\n \"type\": \"VPC_SECURITY_GROUP\",\n \"uri\": \"security_group:sg-example\",\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n FunctionName = exampleAwsLambdaFunction.Arn,\n Topics = new[]\n {\n \"Example\",\n },\n StartingPosition = \"TRIM_HORIZON\",\n SelfManagedEventSource = new Aws.Lambda.Inputs.EventSourceMappingSelfManagedEventSourceArgs\n {\n Endpoints = \n {\n { \"KAFKA_BOOTSTRAP_SERVERS\", \"kafka1.example.com:9092,kafka2.example.com:9092\" },\n },\n },\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SUBNET\",\n Uri = \"subnet:subnet-example1\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SUBNET\",\n Uri = \"subnet:subnet-example2\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VPC_SECURITY_GROUP\",\n Uri = \"security_group:sg-example\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Example\"),\n\t\t\t},\n\t\t\tStartingPosition: pulumi.String(\"TRIM_HORIZON\"),\n\t\t\tSelfManagedEventSource: \u0026lambda.EventSourceMappingSelfManagedEventSourceArgs{\n\t\t\t\tEndpoints: pulumi.StringMap{\n\t\t\t\t\t\"KAFKA_BOOTSTRAP_SERVERS\": pulumi.String(\"kafka1.example.com:9092,kafka2.example.com:9092\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SUBNET\"),\n\t\t\t\t\tUri: pulumi.String(\"subnet:subnet-example1\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SUBNET\"),\n\t\t\t\t\tUri: pulumi.String(\"subnet:subnet-example2\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VPC_SECURITY_GROUP\"),\n\t\t\t\t\tUri: pulumi.String(\"security_group:sg-example\"),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSelfManagedEventSourceArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .functionName(exampleAwsLambdaFunction.arn())\n .topics(\"Example\")\n .startingPosition(\"TRIM_HORIZON\")\n .selfManagedEventSource(EventSourceMappingSelfManagedEventSourceArgs.builder()\n .endpoints(Map.of(\"KAFKA_BOOTSTRAP_SERVERS\", \"kafka1.example.com:9092,kafka2.example.com:9092\"))\n .build())\n .sourceAccessConfigurations( \n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SUBNET\")\n .uri(\"subnet:subnet-example1\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SUBNET\")\n .uri(\"subnet:subnet-example2\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VPC_SECURITY_GROUP\")\n .uri(\"security_group:sg-example\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n functionName: ${exampleAwsLambdaFunction.arn}\n topics:\n - Example\n startingPosition: TRIM_HORIZON\n selfManagedEventSource:\n endpoints:\n KAFKA_BOOTSTRAP_SERVERS: kafka1.example.com:9092,kafka2.example.com:9092\n sourceAccessConfigurations:\n - type: VPC_SUBNET\n uri: subnet:subnet-example1\n - type: VPC_SUBNET\n uri: subnet:subnet-example2\n - type: VPC_SECURITY_GROUP\n uri: security_group:sg-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: sqsQueueTest.arn,\n functionName: exampleAwsLambdaFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=sqs_queue_test[\"arn\"],\n function_name=example_aws_lambda_function[\"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.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = sqsQueueTest.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(sqsQueueTest.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(sqsQueueTest.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${sqsQueueTest.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS with event filter\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.lambda.EventSourceMapping(\"example\", {\n eventSourceArn: sqsQueueTest.arn,\n functionName: exampleAwsLambdaFunction.arn,\n filterCriteria: {\n filters: [{\n pattern: JSON.stringify({\n body: {\n Temperature: [{\n numeric: [\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n ],\n }],\n Location: [\"New York\"],\n },\n }),\n }],\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n event_source_arn=sqs_queue_test[\"arn\"],\n function_name=example_aws_lambda_function[\"arn\"],\n filter_criteria={\n \"filters\": [{\n \"pattern\": json.dumps({\n \"body\": {\n \"temperature\": [{\n \"numeric\": [\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n ],\n }],\n \"location\": [\"New York\"],\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n EventSourceArn = sqsQueueTest.Arn,\n FunctionName = exampleAwsLambdaFunction.Arn,\n FilterCriteria = new Aws.Lambda.Inputs.EventSourceMappingFilterCriteriaArgs\n {\n Filters = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingFilterCriteriaFilterArgs\n {\n Pattern = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"body\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Temperature\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"numeric\"] = new object?[]\n {\n \"\u003e\",\n 0,\n \"\u003c=\",\n 100,\n },\n },\n },\n [\"Location\"] = new[]\n {\n \"New York\",\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/lambda\"\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\"body\": map[string]interface{}{\n\t\t\t\t\"Temperature\": []map[string]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"numeric\": []interface{}{\n\t\t\t\t\t\t\t\"\u003e\",\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\"\u003c=\",\n\t\t\t\t\t\t\t100,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"Location\": []string{\n\t\t\t\t\t\"New York\",\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 = lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tEventSourceArn: pulumi.Any(sqsQueueTest.Arn),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tFilterCriteria: \u0026lambda.EventSourceMappingFilterCriteriaArgs{\n\t\t\t\tFilters: lambda.EventSourceMappingFilterCriteriaFilterArray{\n\t\t\t\t\t\u0026lambda.EventSourceMappingFilterCriteriaFilterArgs{\n\t\t\t\t\t\tPattern: pulumi.String(json0),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingFilterCriteriaArgs;\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 example = new EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .eventSourceArn(sqsQueueTest.arn())\n .functionName(exampleAwsLambdaFunction.arn())\n .filterCriteria(EventSourceMappingFilterCriteriaArgs.builder()\n .filters(EventSourceMappingFilterCriteriaFilterArgs.builder()\n .pattern(serializeJson(\n jsonObject(\n jsonProperty(\"body\", jsonObject(\n jsonProperty(\"Temperature\", jsonArray(jsonObject(\n jsonProperty(\"numeric\", jsonArray(\n \"\u003e\", \n 0, \n \"\u003c=\", \n 100\n ))\n ))),\n jsonProperty(\"Location\", jsonArray(\"New York\"))\n ))\n )))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n eventSourceArn: ${sqsQueueTest.arn}\n functionName: ${exampleAwsLambdaFunction.arn}\n filterCriteria:\n filters:\n - pattern:\n fn::toJSON:\n body:\n Temperature:\n - numeric:\n - '\u003e'\n - 0\n - \u003c=\n - 100\n Location:\n - New York\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Amazon MQ (ActiveMQ)\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.lambda.EventSourceMapping(\"example\", {\n batchSize: 10,\n eventSourceArn: exampleAwsMqBroker.arn,\n enabled: true,\n functionName: exampleAwsLambdaFunction.arn,\n queues: \"example\",\n sourceAccessConfigurations: [{\n type: \"BASIC_AUTH\",\n uri: exampleAwsSecretsmanagerSecretVersion.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n batch_size=10,\n event_source_arn=example_aws_mq_broker[\"arn\"],\n enabled=True,\n function_name=example_aws_lambda_function[\"arn\"],\n queues=\"example\",\n source_access_configurations=[{\n \"type\": \"BASIC_AUTH\",\n \"uri\": example_aws_secretsmanager_secret_version[\"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.Lambda.EventSourceMapping(\"example\", new()\n {\n BatchSize = 10,\n EventSourceArn = exampleAwsMqBroker.Arn,\n Enabled = true,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Queues = \"example\",\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"BASIC_AUTH\",\n Uri = exampleAwsSecretsmanagerSecretVersion.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tBatchSize: pulumi.Int(10),\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMqBroker.Arn),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tQueues: pulumi.String(\"example\"),\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"BASIC_AUTH\"),\n\t\t\t\t\tUri: pulumi.Any(exampleAwsSecretsmanagerSecretVersion.Arn),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .batchSize(10)\n .eventSourceArn(exampleAwsMqBroker.arn())\n .enabled(true)\n .functionName(exampleAwsLambdaFunction.arn())\n .queues(\"example\")\n .sourceAccessConfigurations(EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"BASIC_AUTH\")\n .uri(exampleAwsSecretsmanagerSecretVersion.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n batchSize: 10\n eventSourceArn: ${exampleAwsMqBroker.arn}\n enabled: true\n functionName: ${exampleAwsLambdaFunction.arn}\n queues: example\n sourceAccessConfigurations:\n - type: BASIC_AUTH\n uri: ${exampleAwsSecretsmanagerSecretVersion.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Amazon MQ (RabbitMQ)\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.lambda.EventSourceMapping(\"example\", {\n batchSize: 1,\n eventSourceArn: exampleAwsMqBroker.arn,\n enabled: true,\n functionName: exampleAwsLambdaFunction.arn,\n queues: \"example\",\n sourceAccessConfigurations: [\n {\n type: \"VIRTUAL_HOST\",\n uri: \"/example\",\n },\n {\n type: \"BASIC_AUTH\",\n uri: exampleAwsSecretsmanagerSecretVersion.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lambda_.EventSourceMapping(\"example\",\n batch_size=1,\n event_source_arn=example_aws_mq_broker[\"arn\"],\n enabled=True,\n function_name=example_aws_lambda_function[\"arn\"],\n queues=\"example\",\n source_access_configurations=[\n {\n \"type\": \"VIRTUAL_HOST\",\n \"uri\": \"/example\",\n },\n {\n \"type\": \"BASIC_AUTH\",\n \"uri\": example_aws_secretsmanager_secret_version[\"arn\"],\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 example = new Aws.Lambda.EventSourceMapping(\"example\", new()\n {\n BatchSize = 1,\n EventSourceArn = exampleAwsMqBroker.Arn,\n Enabled = true,\n FunctionName = exampleAwsLambdaFunction.Arn,\n Queues = \"example\",\n SourceAccessConfigurations = new[]\n {\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"VIRTUAL_HOST\",\n Uri = \"/example\",\n },\n new Aws.Lambda.Inputs.EventSourceMappingSourceAccessConfigurationArgs\n {\n Type = \"BASIC_AUTH\",\n Uri = exampleAwsSecretsmanagerSecretVersion.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewEventSourceMapping(ctx, \"example\", \u0026lambda.EventSourceMappingArgs{\n\t\t\tBatchSize: pulumi.Int(1),\n\t\t\tEventSourceArn: pulumi.Any(exampleAwsMqBroker.Arn),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tFunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn),\n\t\t\tQueues: pulumi.String(\"example\"),\n\t\t\tSourceAccessConfigurations: lambda.EventSourceMappingSourceAccessConfigurationArray{\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"VIRTUAL_HOST\"),\n\t\t\t\t\tUri: pulumi.String(\"/example\"),\n\t\t\t\t},\n\t\t\t\t\u0026lambda.EventSourceMappingSourceAccessConfigurationArgs{\n\t\t\t\t\tType: pulumi.String(\"BASIC_AUTH\"),\n\t\t\t\t\tUri: pulumi.Any(exampleAwsSecretsmanagerSecretVersion.Arn),\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.lambda.EventSourceMapping;\nimport com.pulumi.aws.lambda.EventSourceMappingArgs;\nimport com.pulumi.aws.lambda.inputs.EventSourceMappingSourceAccessConfigurationArgs;\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 EventSourceMapping(\"example\", EventSourceMappingArgs.builder()\n .batchSize(1)\n .eventSourceArn(exampleAwsMqBroker.arn())\n .enabled(true)\n .functionName(exampleAwsLambdaFunction.arn())\n .queues(\"example\")\n .sourceAccessConfigurations( \n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"VIRTUAL_HOST\")\n .uri(\"/example\")\n .build(),\n EventSourceMappingSourceAccessConfigurationArgs.builder()\n .type(\"BASIC_AUTH\")\n .uri(exampleAwsSecretsmanagerSecretVersion.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lambda:EventSourceMapping\n properties:\n batchSize: 1\n eventSourceArn: ${exampleAwsMqBroker.arn}\n enabled: true\n functionName: ${exampleAwsLambdaFunction.arn}\n queues: example\n sourceAccessConfigurations:\n - type: VIRTUAL_HOST\n uri: /example\n - type: BASIC_AUTH\n uri: ${exampleAwsSecretsmanagerSecretVersion.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Lambda event source mappings using the `UUID` (event source mapping identifier). For example:\n\n```sh\n$ pulumi import aws:lambda/eventSourceMapping:EventSourceMapping event_source_mapping 12345kxodurf3443\n```\n", "properties": { "amazonManagedKafkaEventSourceConfig": { "$ref": "#/types/aws:lambda/EventSourceMappingAmazonManagedKafkaEventSourceConfig:EventSourceMappingAmazonManagedKafkaEventSourceConfig", "description": "Additional configuration block for Amazon Managed Kafka sources. Incompatible with \"self_managed_event_source\" and \"self_managed_kafka_event_source_config\". Detailed below.\n" }, + "arn": { + "type": "string", + "description": "The event source mapping ARN.\n" + }, "batchSize": { "type": "integer", "description": "The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS.\n" @@ -287972,7 +288604,7 @@ }, "functionArn": { "type": "string", - "description": "The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.)\n" + "description": "The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.)\n" }, "functionName": { "type": "string", @@ -288052,6 +288684,21 @@ "type": "string", "description": "The reason the event source mapping is in its current state.\n" }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. 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." + }, "topics": { "type": "array", "items": { @@ -288070,6 +288717,7 @@ }, "required": [ "amazonManagedKafkaEventSourceConfig", + "arn", "functionArn", "functionName", "lastModified", @@ -288080,6 +288728,7 @@ "selfManagedKafkaEventSourceConfig", "state", "stateTransitionReason", + "tagsAll", "uuid" ], "inputProperties": { @@ -288184,6 +288833,13 @@ "description": "A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `starting_position` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen.\n", "willReplaceOnChanges": true }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, "topics": { "type": "array", "items": { @@ -288208,6 +288864,10 @@ "description": "Additional configuration block for Amazon Managed Kafka sources. Incompatible with \"self_managed_event_source\" and \"self_managed_kafka_event_source_config\". Detailed below.\n", "willReplaceOnChanges": true }, + "arn": { + "type": "string", + "description": "The event source mapping ARN.\n" + }, "batchSize": { "type": "integer", "description": "The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS.\n" @@ -288239,7 +288899,7 @@ }, "functionArn": { "type": "string", - "description": "The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.)\n" + "description": "The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.)\n" }, "functionName": { "type": "string", @@ -288324,6 +288984,21 @@ "type": "string", "description": "The reason the event source mapping is in its current state.\n" }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the object. 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." + }, "topics": { "type": "array", "items": { @@ -289298,7 +289973,7 @@ } }, "aws:lambda/layerVersion:LayerVersion": { - "description": "Provides a Lambda Layer Version resource. Lambda Layers allow you to reuse shared bits of code across multiple lambda functions.\n\nFor information about Lambda Layers and how to use them, see [AWS Lambda Layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).\n\n\u003e **NOTE:** Setting `skip_destroy` to `true` means that the AWS Provider will _not_ destroy any layer version, even when running destroy. Layer versions are thus intentional dangling resources that are _not_ managed by the provider and may incur extra expense in your AWS account.\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 lambdaLayer = new aws.lambda.LayerVersion(\"lambda_layer\", {\n code: new pulumi.asset.FileArchive(\"lambda_layer_payload.zip\"),\n layerName: \"lambda_layer_name\",\n compatibleRuntimes: [\"nodejs16.x\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_layer = aws.lambda_.LayerVersion(\"lambda_layer\",\n code=pulumi.FileArchive(\"lambda_layer_payload.zip\"),\n layer_name=\"lambda_layer_name\",\n compatible_runtimes=[\"nodejs16.x\"])\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 lambdaLayer = new Aws.Lambda.LayerVersion(\"lambda_layer\", new()\n {\n Code = new FileArchive(\"lambda_layer_payload.zip\"),\n LayerName = \"lambda_layer_name\",\n CompatibleRuntimes = new[]\n {\n \"nodejs16.x\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewLayerVersion(ctx, \"lambda_layer\", \u0026lambda.LayerVersionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda_layer_payload.zip\"),\n\t\t\tLayerName: pulumi.String(\"lambda_layer_name\"),\n\t\t\tCompatibleRuntimes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nodejs16.x\"),\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.lambda.LayerVersion;\nimport com.pulumi.aws.lambda.LayerVersionArgs;\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 var lambdaLayer = new LayerVersion(\"lambdaLayer\", LayerVersionArgs.builder()\n .code(new FileArchive(\"lambda_layer_payload.zip\"))\n .layerName(\"lambda_layer_name\")\n .compatibleRuntimes(\"nodejs16.x\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambdaLayer:\n type: aws:lambda:LayerVersion\n name: lambda_layer\n properties:\n code:\n fn::FileArchive: lambda_layer_payload.zip\n layerName: lambda_layer_name\n compatibleRuntimes:\n - nodejs16.x\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Specifying the Deployment Package\n\nAWS Lambda Layers expect source code to be provided as a deployment package whose structure varies depending on which `compatible_runtimes` this layer specifies.\nSee [Runtimes](https://docs.aws.amazon.com/lambda/latest/dg/API_PublishLayerVersion.html#SSS-PublishLayerVersion-request-CompatibleRuntimes) for the valid values of `compatible_runtimes`.\n\nOnce you have created your deployment package you can specify it either directly as a local file (using the `filename` argument) or\nindirectly via Amazon S3 (using the `s3_bucket`, `s3_key` and `s3_object_version` arguments). When providing the deployment\npackage via S3 it may be useful to use the `aws.s3.BucketObjectv2` resource to upload it.\n\nFor larger deployment packages it is recommended by Amazon to upload via S3, since the S3 API has better support for uploading large files efficiently.\n\n## Import\n\nUsing `pulumi import`, import Lambda Layers using `arn`. For example:\n\n```sh\n$ pulumi import aws:lambda/layerVersion:LayerVersion test_layer arn:aws:lambda:_REGION_:_ACCOUNT_ID_:layer:_LAYER_NAME_:_LAYER_VERSION_\n```\n", + "description": "Provides a Lambda Layer Version resource. Lambda Layers allow you to reuse shared bits of code across multiple lambda functions.\n\nFor information about Lambda Layers and how to use them, see [AWS Lambda Layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).\n\n\u003e **NOTE:** Setting `skip_destroy` to `true` means that the AWS Provider will _not_ destroy any layer version, even when running destroy. Layer versions are thus intentional dangling resources that are _not_ managed by the provider and may incur extra expense in your AWS account.\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 lambdaLayer = new aws.lambda.LayerVersion(\"lambda_layer\", {\n code: new pulumi.asset.FileArchive(\"lambda_layer_payload.zip\"),\n layerName: \"lambda_layer_name\",\n compatibleRuntimes: [\"nodejs20.x\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_layer = aws.lambda_.LayerVersion(\"lambda_layer\",\n code=pulumi.FileArchive(\"lambda_layer_payload.zip\"),\n layer_name=\"lambda_layer_name\",\n compatible_runtimes=[\"nodejs20.x\"])\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 lambdaLayer = new Aws.Lambda.LayerVersion(\"lambda_layer\", new()\n {\n Code = new FileArchive(\"lambda_layer_payload.zip\"),\n LayerName = \"lambda_layer_name\",\n CompatibleRuntimes = new[]\n {\n \"nodejs20.x\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewLayerVersion(ctx, \"lambda_layer\", \u0026lambda.LayerVersionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambda_layer_payload.zip\"),\n\t\t\tLayerName: pulumi.String(\"lambda_layer_name\"),\n\t\t\tCompatibleRuntimes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"nodejs20.x\"),\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.lambda.LayerVersion;\nimport com.pulumi.aws.lambda.LayerVersionArgs;\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 var lambdaLayer = new LayerVersion(\"lambdaLayer\", LayerVersionArgs.builder()\n .code(new FileArchive(\"lambda_layer_payload.zip\"))\n .layerName(\"lambda_layer_name\")\n .compatibleRuntimes(\"nodejs20.x\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambdaLayer:\n type: aws:lambda:LayerVersion\n name: lambda_layer\n properties:\n code:\n fn::FileArchive: lambda_layer_payload.zip\n layerName: lambda_layer_name\n compatibleRuntimes:\n - nodejs20.x\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Specifying the Deployment Package\n\nAWS Lambda Layers expect source code to be provided as a deployment package whose structure varies depending on which `compatible_runtimes` this layer specifies.\nSee [Runtimes](https://docs.aws.amazon.com/lambda/latest/dg/API_PublishLayerVersion.html#SSS-PublishLayerVersion-request-CompatibleRuntimes) for the valid values of `compatible_runtimes`.\n\nOnce you have created your deployment package you can specify it either directly as a local file (using the `filename` argument) or\nindirectly via Amazon S3 (using the `s3_bucket`, `s3_key` and `s3_object_version` arguments). When providing the deployment\npackage via S3 it may be useful to use the `aws.s3.BucketObjectv2` resource to upload it.\n\nFor larger deployment packages it is recommended by Amazon to upload via S3, since the S3 API has better support for uploading large files efficiently.\n\n## Import\n\nUsing `pulumi import`, import Lambda Layers using `arn`. For example:\n\n```sh\n$ pulumi import aws:lambda/layerVersion:LayerVersion test_layer arn:aws:lambda:_REGION_:_ACCOUNT_ID_:layer:_LAYER_NAME_:_LAYER_VERSION_\n```\n", "properties": { "arn": { "type": "string", @@ -289705,7 +290380,7 @@ } }, "aws:lambda/permission:Permission": { - "description": "Gives an external source (like an EventBridge Rule, SNS, or S3) permission to access the Lambda function.\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"lambda.amazonaws.com\",\n },\n }],\n }),\n});\nconst testLambda = new aws.lambda.Function(\"test_lambda\", {\n code: new pulumi.asset.FileArchive(\"lambdatest.zip\"),\n name: \"lambda_function_name\",\n role: iamForLambda.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.NodeJS16dX,\n});\nconst testAlias = new aws.lambda.Alias(\"test_alias\", {\n name: \"testalias\",\n description: \"a sample description\",\n functionName: testLambda.name,\n functionVersion: \"$LATEST\",\n});\nconst allowCloudwatch = new aws.lambda.Permission(\"allow_cloudwatch\", {\n statementId: \"AllowExecutionFromCloudWatch\",\n action: \"lambda:InvokeFunction\",\n \"function\": testLambda.name,\n principal: \"events.amazonaws.com\",\n sourceArn: \"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n qualifier: testAlias.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\",\n },\n }],\n }))\ntest_lambda = aws.lambda_.Function(\"test_lambda\",\n code=pulumi.FileArchive(\"lambdatest.zip\"),\n name=\"lambda_function_name\",\n role=iam_for_lambda.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS16D_X)\ntest_alias = aws.lambda_.Alias(\"test_alias\",\n name=\"testalias\",\n description=\"a sample description\",\n function_name=test_lambda.name,\n function_version=\"$LATEST\")\nallow_cloudwatch = aws.lambda_.Permission(\"allow_cloudwatch\",\n statement_id=\"AllowExecutionFromCloudWatch\",\n action=\"lambda:InvokeFunction\",\n function=test_lambda.name,\n principal=\"events.amazonaws.com\",\n source_arn=\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n qualifier=test_alias.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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"lambda.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var testLambda = new Aws.Lambda.Function(\"test_lambda\", new()\n {\n Code = new FileArchive(\"lambdatest.zip\"),\n Name = \"lambda_function_name\",\n Role = iamForLambda.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS16dX,\n });\n\n var testAlias = new Aws.Lambda.Alias(\"test_alias\", new()\n {\n Name = \"testalias\",\n Description = \"a sample description\",\n FunctionName = testLambda.Name,\n FunctionVersion = \"$LATEST\",\n });\n\n var allowCloudwatch = new Aws.Lambda.Permission(\"allow_cloudwatch\", new()\n {\n StatementId = \"AllowExecutionFromCloudWatch\",\n Action = \"lambda:InvokeFunction\",\n Function = testLambda.Name,\n Principal = \"events.amazonaws.com\",\n SourceArn = \"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n Qualifier = testAlias.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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"lambda.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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\ttestLambda, err := lambda.NewFunction(ctx, \"test_lambda\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambdatest.zip\"),\n\t\t\tName: pulumi.String(\"lambda_function_name\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS16dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAlias, err := lambda.NewAlias(ctx, \"test_alias\", \u0026lambda.AliasArgs{\n\t\t\tName: pulumi.String(\"testalias\"),\n\t\t\tDescription: pulumi.String(\"a sample description\"),\n\t\t\tFunctionName: testLambda.Name,\n\t\t\tFunctionVersion: pulumi.String(\"$LATEST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"allow_cloudwatch\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromCloudWatch\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testLambda.Name,\n\t\t\tPrincipal: pulumi.String(\"events.amazonaws.com\"),\n\t\t\tSourceArn: pulumi.String(\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\"),\n\t\t\tQualifier: testAlias.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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.lambda.Alias;\nimport com.pulumi.aws.lambda.AliasArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 var iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"lambda.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var testLambda = new Function(\"testLambda\", FunctionArgs.builder()\n .code(new FileArchive(\"lambdatest.zip\"))\n .name(\"lambda_function_name\")\n .role(iamForLambda.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs16.x\")\n .build());\n\n var testAlias = new Alias(\"testAlias\", AliasArgs.builder()\n .name(\"testalias\")\n .description(\"a sample description\")\n .functionName(testLambda.name())\n .functionVersion(\"$LATEST\")\n .build());\n\n var allowCloudwatch = new Permission(\"allowCloudwatch\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromCloudWatch\")\n .action(\"lambda:InvokeFunction\")\n .function(testLambda.name())\n .principal(\"events.amazonaws.com\")\n .sourceArn(\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\")\n .qualifier(testAlias.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n allowCloudwatch:\n type: aws:lambda:Permission\n name: allow_cloudwatch\n properties:\n statementId: AllowExecutionFromCloudWatch\n action: lambda:InvokeFunction\n function: ${testLambda.name}\n principal: events.amazonaws.com\n sourceArn: arn:aws:events:eu-west-1:111122223333:rule/RunDaily\n qualifier: ${testAlias.name}\n testAlias:\n type: aws:lambda:Alias\n name: test_alias\n properties:\n name: testalias\n description: a sample description\n functionName: ${testLambda.name}\n functionVersion: $LATEST\n testLambda:\n type: aws:lambda:Function\n name: test_lambda\n properties:\n code:\n fn::FileArchive: lambdatest.zip\n name: lambda_function_name\n role: ${iamForLambda.arn}\n handler: exports.handler\n runtime: nodejs16.x\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: lambda.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With SNS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.sns.Topic(\"default\", {name: \"call-lambda-maybe\"});\nconst defaultRole = new aws.iam.Role(\"default\", {\n name: \"iam_for_lambda_with_sns\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"lambda.amazonaws.com\",\n },\n }],\n }),\n});\nconst func = new aws.lambda.Function(\"func\", {\n code: new pulumi.asset.FileArchive(\"lambdatest.zip\"),\n name: \"lambda_called_from_sns\",\n role: defaultRole.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.Python3d7,\n});\nconst withSns = new aws.lambda.Permission(\"with_sns\", {\n statementId: \"AllowExecutionFromSNS\",\n action: \"lambda:InvokeFunction\",\n \"function\": func.name,\n principal: \"sns.amazonaws.com\",\n sourceArn: _default.arn,\n});\nconst lambda = new aws.sns.TopicSubscription(\"lambda\", {\n topic: _default.arn,\n protocol: \"lambda\",\n endpoint: func.arn,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndefault = aws.sns.Topic(\"default\", name=\"call-lambda-maybe\")\ndefault_role = aws.iam.Role(\"default\",\n name=\"iam_for_lambda_with_sns\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\",\n },\n }],\n }))\nfunc = aws.lambda_.Function(\"func\",\n code=pulumi.FileArchive(\"lambdatest.zip\"),\n name=\"lambda_called_from_sns\",\n role=default_role.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.PYTHON3D7)\nwith_sns = aws.lambda_.Permission(\"with_sns\",\n statement_id=\"AllowExecutionFromSNS\",\n action=\"lambda:InvokeFunction\",\n function=func.name,\n principal=\"sns.amazonaws.com\",\n source_arn=default.arn)\nlambda_ = aws.sns.TopicSubscription(\"lambda\",\n topic=default.arn,\n protocol=\"lambda\",\n endpoint=func.arn)\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 @default = new Aws.Sns.Topic(\"default\", new()\n {\n Name = \"call-lambda-maybe\",\n });\n\n var defaultRole = new Aws.Iam.Role(\"default\", new()\n {\n Name = \"iam_for_lambda_with_sns\",\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"lambda.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var func = new Aws.Lambda.Function(\"func\", new()\n {\n Code = new FileArchive(\"lambdatest.zip\"),\n Name = \"lambda_called_from_sns\",\n Role = defaultRole.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.Python3d7,\n });\n\n var withSns = new Aws.Lambda.Permission(\"with_sns\", new()\n {\n StatementId = \"AllowExecutionFromSNS\",\n Action = \"lambda:InvokeFunction\",\n Function = func.Name,\n Principal = \"sns.amazonaws.com\",\n SourceArn = @default.Arn,\n });\n\n var lambda = new Aws.Sns.TopicSubscription(\"lambda\", new()\n {\n Topic = @default.Arn,\n Protocol = \"lambda\",\n Endpoint = func.Arn,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\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 := sns.NewTopic(ctx, \"default\", \u0026sns.TopicArgs{\n\t\t\tName: pulumi.String(\"call-lambda-maybe\"),\n\t\t})\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"lambda.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\tdefaultRole, err := iam.NewRole(ctx, \"default\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda_with_sns\"),\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\t_, err = lambda.NewFunction(ctx, \"func\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambdatest.zip\"),\n\t\t\tName: pulumi.String(\"lambda_called_from_sns\"),\n\t\t\tRole: defaultRole.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_sns\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromSNS\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: _func.Name,\n\t\t\tPrincipal: pulumi.String(\"sns.amazonaws.com\"),\n\t\t\tSourceArn: _default.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sns.NewTopicSubscription(ctx, \"lambda\", \u0026sns.TopicSubscriptionArgs{\n\t\t\tTopic: _default.Arn,\n\t\t\tProtocol: pulumi.String(\"lambda\"),\n\t\t\tEndpoint: _func.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.sns.Topic;\nimport com.pulumi.aws.sns.TopicArgs;\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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.sns.TopicSubscription;\nimport com.pulumi.aws.sns.TopicSubscriptionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 var default_ = new Topic(\"default\", TopicArgs.builder()\n .name(\"call-lambda-maybe\")\n .build());\n\n var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n .name(\"iam_for_lambda_with_sns\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"lambda.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var func = new Function(\"func\", FunctionArgs.builder()\n .code(new FileArchive(\"lambdatest.zip\"))\n .name(\"lambda_called_from_sns\")\n .role(defaultRole.arn())\n .handler(\"exports.handler\")\n .runtime(\"python3.7\")\n .build());\n\n var withSns = new Permission(\"withSns\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromSNS\")\n .action(\"lambda:InvokeFunction\")\n .function(func.name())\n .principal(\"sns.amazonaws.com\")\n .sourceArn(default_.arn())\n .build());\n\n var lambda = new TopicSubscription(\"lambda\", TopicSubscriptionArgs.builder()\n .topic(default_.arn())\n .protocol(\"lambda\")\n .endpoint(func.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withSns:\n type: aws:lambda:Permission\n name: with_sns\n properties:\n statementId: AllowExecutionFromSNS\n action: lambda:InvokeFunction\n function: ${func.name}\n principal: sns.amazonaws.com\n sourceArn: ${default.arn}\n default:\n type: aws:sns:Topic\n properties:\n name: call-lambda-maybe\n lambda:\n type: aws:sns:TopicSubscription\n properties:\n topic: ${default.arn}\n protocol: lambda\n endpoint: ${func.arn}\n func:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambdatest.zip\n name: lambda_called_from_sns\n role: ${defaultRole.arn}\n handler: exports.handler\n runtime: python3.7\n defaultRole:\n type: aws:iam:Role\n name: default\n properties:\n name: iam_for_lambda_with_sns\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: lambda.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With API Gateway REST API\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 lambdaPermission = new aws.lambda.Permission(\"lambda_permission\", {\n statementId: \"AllowMyDemoAPIInvoke\",\n action: \"lambda:InvokeFunction\",\n \"function\": \"MyDemoFunction\",\n principal: \"apigateway.amazonaws.com\",\n sourceArn: pulumi.interpolate`${myDemoAPI.executionArn}/*`,\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\")\nlambda_permission = aws.lambda_.Permission(\"lambda_permission\",\n statement_id=\"AllowMyDemoAPIInvoke\",\n action=\"lambda:InvokeFunction\",\n function=\"MyDemoFunction\",\n principal=\"apigateway.amazonaws.com\",\n source_arn=my_demo_api.execution_arn.apply(lambda execution_arn: f\"{execution_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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var lambdaPermission = new Aws.Lambda.Permission(\"lambda_permission\", new()\n {\n StatementId = \"AllowMyDemoAPIInvoke\",\n Action = \"lambda:InvokeFunction\",\n Function = \"MyDemoFunction\",\n Principal = \"apigateway.amazonaws.com\",\n SourceArn = myDemoAPI.ExecutionArn.Apply(executionArn =\u003e $\"{executionArn}/*\"),\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/lambda\"\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\t_, err = lambda.NewPermission(ctx, \"lambda_permission\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowMyDemoAPIInvoke\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: pulumi.Any(\"MyDemoFunction\"),\n\t\t\tPrincipal: pulumi.String(\"apigateway.amazonaws.com\"),\n\t\t\tSourceArn: myDemoAPI.ExecutionArn.ApplyT(func(executionArn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/*\", executionArn), 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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\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 lambdaPermission = new Permission(\"lambdaPermission\", PermissionArgs.builder()\n .statementId(\"AllowMyDemoAPIInvoke\")\n .action(\"lambda:InvokeFunction\")\n .function(\"MyDemoFunction\")\n .principal(\"apigateway.amazonaws.com\")\n .sourceArn(myDemoAPI.executionArn().applyValue(executionArn -\u003e String.format(\"%s/*\", executionArn)))\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 lambdaPermission:\n type: aws:lambda:Permission\n name: lambda_permission\n properties:\n statementId: AllowMyDemoAPIInvoke\n action: lambda:InvokeFunction\n function: MyDemoFunction\n principal: apigateway.amazonaws.com\n sourceArn: ${myDemoAPI.executionArn}/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With CloudWatch Log Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.cloudwatch.LogGroup(\"default\", {name: \"/default\"});\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 defaultRole = new aws.iam.Role(\"default\", {\n name: \"iam_for_lambda_called_from_cloudwatch_logs\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst loggingFunction = new aws.lambda.Function(\"logging\", {\n code: new pulumi.asset.FileArchive(\"lamba_logging.zip\"),\n name: \"lambda_called_from_cloudwatch_logs\",\n handler: \"exports.handler\",\n role: defaultRole.arn,\n runtime: aws.lambda.Runtime.Python3d7,\n});\nconst logging = new aws.lambda.Permission(\"logging\", {\n action: \"lambda:InvokeFunction\",\n \"function\": loggingFunction.name,\n principal: \"logs.eu-west-1.amazonaws.com\",\n sourceArn: pulumi.interpolate`${_default.arn}:*`,\n});\nconst loggingLogSubscriptionFilter = new aws.cloudwatch.LogSubscriptionFilter(\"logging\", {\n destinationArn: loggingFunction.arn,\n filterPattern: \"\",\n logGroup: _default.name,\n name: \"logging_default\",\n}, {\n dependsOn: [logging],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.cloudwatch.LogGroup(\"default\", name=\"/default\")\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}])\ndefault_role = aws.iam.Role(\"default\",\n name=\"iam_for_lambda_called_from_cloudwatch_logs\",\n assume_role_policy=assume_role.json)\nlogging_function = aws.lambda_.Function(\"logging\",\n code=pulumi.FileArchive(\"lamba_logging.zip\"),\n name=\"lambda_called_from_cloudwatch_logs\",\n handler=\"exports.handler\",\n role=default_role.arn,\n runtime=aws.lambda_.Runtime.PYTHON3D7)\nlogging = aws.lambda_.Permission(\"logging\",\n action=\"lambda:InvokeFunction\",\n function=logging_function.name,\n principal=\"logs.eu-west-1.amazonaws.com\",\n source_arn=default.arn.apply(lambda arn: f\"{arn}:*\"))\nlogging_log_subscription_filter = aws.cloudwatch.LogSubscriptionFilter(\"logging\",\n destination_arn=logging_function.arn,\n filter_pattern=\"\",\n log_group=default.name,\n name=\"logging_default\",\n opts = pulumi.ResourceOptions(depends_on=[logging]))\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 @default = new Aws.CloudWatch.LogGroup(\"default\", new()\n {\n Name = \"/default\",\n });\n\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 defaultRole = new Aws.Iam.Role(\"default\", new()\n {\n Name = \"iam_for_lambda_called_from_cloudwatch_logs\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var loggingFunction = new Aws.Lambda.Function(\"logging\", new()\n {\n Code = new FileArchive(\"lamba_logging.zip\"),\n Name = \"lambda_called_from_cloudwatch_logs\",\n Handler = \"exports.handler\",\n Role = defaultRole.Arn,\n Runtime = Aws.Lambda.Runtime.Python3d7,\n });\n\n var logging = new Aws.Lambda.Permission(\"logging\", new()\n {\n Action = \"lambda:InvokeFunction\",\n Function = loggingFunction.Name,\n Principal = \"logs.eu-west-1.amazonaws.com\",\n SourceArn = @default.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n });\n\n var loggingLogSubscriptionFilter = new Aws.CloudWatch.LogSubscriptionFilter(\"logging\", new()\n {\n DestinationArn = loggingFunction.Arn,\n FilterPattern = \"\",\n LogGroup = @default.Name,\n Name = \"logging_default\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n logging,\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/cloudwatch\"\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/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewLogGroup(ctx, \"default\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"/default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\tdefaultRole, err := iam.NewRole(ctx, \"default\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda_called_from_cloudwatch_logs\"),\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\tloggingFunction, err := lambda.NewFunction(ctx, \"logging\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lamba_logging.zip\"),\n\t\t\tName: pulumi.String(\"lambda_called_from_cloudwatch_logs\"),\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRole: defaultRole.Arn,\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogging, err := lambda.NewPermission(ctx, \"logging\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: loggingFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"logs.eu-west-1.amazonaws.com\"),\n\t\t\tSourceArn: _default.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), 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\t_, err = cloudwatch.NewLogSubscriptionFilter(ctx, \"logging\", \u0026cloudwatch.LogSubscriptionFilterArgs{\n\t\t\tDestinationArn: loggingFunction.Arn,\n\t\t\tFilterPattern: pulumi.String(\"\"),\n\t\t\tLogGroup: _default.Name,\n\t\t\tName: pulumi.String(\"logging_default\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tlogging,\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.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.cloudwatch.LogSubscriptionFilter;\nimport com.pulumi.aws.cloudwatch.LogSubscriptionFilterArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 var default_ = new LogGroup(\"default\", LogGroupArgs.builder()\n .name(\"/default\")\n .build());\n\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 defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n .name(\"iam_for_lambda_called_from_cloudwatch_logs\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var loggingFunction = new Function(\"loggingFunction\", FunctionArgs.builder()\n .code(new FileArchive(\"lamba_logging.zip\"))\n .name(\"lambda_called_from_cloudwatch_logs\")\n .handler(\"exports.handler\")\n .role(defaultRole.arn())\n .runtime(\"python3.7\")\n .build());\n\n var logging = new Permission(\"logging\", PermissionArgs.builder()\n .action(\"lambda:InvokeFunction\")\n .function(loggingFunction.name())\n .principal(\"logs.eu-west-1.amazonaws.com\")\n .sourceArn(default_.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n var loggingLogSubscriptionFilter = new LogSubscriptionFilter(\"loggingLogSubscriptionFilter\", LogSubscriptionFilterArgs.builder()\n .destinationArn(loggingFunction.arn())\n .filterPattern(\"\")\n .logGroup(default_.name())\n .name(\"logging_default\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(logging)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n logging:\n type: aws:lambda:Permission\n properties:\n action: lambda:InvokeFunction\n function: ${loggingFunction.name}\n principal: logs.eu-west-1.amazonaws.com\n sourceArn: ${default.arn}:*\n default:\n type: aws:cloudwatch:LogGroup\n properties:\n name: /default\n loggingLogSubscriptionFilter:\n type: aws:cloudwatch:LogSubscriptionFilter\n name: logging\n properties:\n destinationArn: ${loggingFunction.arn}\n filterPattern:\n logGroup: ${default.name}\n name: logging_default\n options:\n dependson:\n - ${logging}\n loggingFunction:\n type: aws:lambda:Function\n name: logging\n properties:\n code:\n fn::FileArchive: lamba_logging.zip\n name: lambda_called_from_cloudwatch_logs\n handler: exports.handler\n role: ${defaultRole.arn}\n runtime: python3.7\n defaultRole:\n type: aws:iam:Role\n name: default\n properties:\n name: iam_for_lambda_called_from_cloudwatch_logs\n assumeRolePolicy: ${assumeRole.json}\nvariables:\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### With Cross-Account Invocation Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst url = new aws.lambda.FunctionUrl(\"url\", {\n functionName: example.functionName,\n authorizationType: \"AWS_IAM\",\n});\nconst urlPermission = new aws.lambda.Permission(\"url\", {\n action: \"lambda:InvokeFunctionUrl\",\n \"function\": example.functionName,\n principal: \"arn:aws:iam::444455556666:role/example\",\n sourceAccount: \"444455556666\",\n functionUrlAuthType: \"AWS_IAM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nurl = aws.lambda_.FunctionUrl(\"url\",\n function_name=example[\"functionName\"],\n authorization_type=\"AWS_IAM\")\nurl_permission = aws.lambda_.Permission(\"url\",\n action=\"lambda:InvokeFunctionUrl\",\n function=example[\"functionName\"],\n principal=\"arn:aws:iam::444455556666:role/example\",\n source_account=\"444455556666\",\n function_url_auth_type=\"AWS_IAM\")\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 url = new Aws.Lambda.FunctionUrl(\"url\", new()\n {\n FunctionName = example.FunctionName,\n AuthorizationType = \"AWS_IAM\",\n });\n\n var urlPermission = new Aws.Lambda.Permission(\"url\", new()\n {\n Action = \"lambda:InvokeFunctionUrl\",\n Function = example.FunctionName,\n Principal = \"arn:aws:iam::444455556666:role/example\",\n SourceAccount = \"444455556666\",\n FunctionUrlAuthType = \"AWS_IAM\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewFunctionUrl(ctx, \"url\", \u0026lambda.FunctionUrlArgs{\n\t\t\tFunctionName: pulumi.Any(example.FunctionName),\n\t\t\tAuthorizationType: pulumi.String(\"AWS_IAM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"url\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunctionUrl\"),\n\t\t\tFunction: pulumi.Any(example.FunctionName),\n\t\t\tPrincipal: pulumi.String(\"arn:aws:iam::444455556666:role/example\"),\n\t\t\tSourceAccount: pulumi.String(\"444455556666\"),\n\t\t\tFunctionUrlAuthType: pulumi.String(\"AWS_IAM\"),\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.lambda.FunctionUrl;\nimport com.pulumi.aws.lambda.FunctionUrlArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\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 url = new FunctionUrl(\"url\", FunctionUrlArgs.builder()\n .functionName(example.functionName())\n .authorizationType(\"AWS_IAM\")\n .build());\n\n var urlPermission = new Permission(\"urlPermission\", PermissionArgs.builder()\n .action(\"lambda:InvokeFunctionUrl\")\n .function(example.functionName())\n .principal(\"arn:aws:iam::444455556666:role/example\")\n .sourceAccount(\"444455556666\")\n .functionUrlAuthType(\"AWS_IAM\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n url:\n type: aws:lambda:FunctionUrl\n properties:\n functionName: ${example.functionName}\n authorizationType: AWS_IAM\n urlPermission:\n type: aws:lambda:Permission\n name: url\n properties:\n action: lambda:InvokeFunctionUrl\n function: ${example.functionName}\n principal: arn:aws:iam::444455556666:role/example\n sourceAccount: '444455556666'\n functionUrlAuthType: AWS_IAM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Lambda permission statements using function_name/statement_id with an optional qualifier. For example:\n\n```sh\n$ pulumi import aws:lambda/permission:Permission test_lambda_permission my_test_lambda_function/AllowExecutionFromCloudWatch\n```\n```sh\n$ pulumi import aws:lambda/permission:Permission test_lambda_permission my_test_lambda_function:qualifier_name/AllowExecutionFromCloudWatch\n```\n", + "description": "Gives an external source (like an EventBridge Rule, SNS, or S3) permission to access the Lambda function.\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"lambda.amazonaws.com\",\n },\n }],\n }),\n});\nconst testLambda = new aws.lambda.Function(\"test_lambda\", {\n code: new pulumi.asset.FileArchive(\"lambdatest.zip\"),\n name: \"lambda_function_name\",\n role: iamForLambda.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.NodeJS20dX,\n});\nconst testAlias = new aws.lambda.Alias(\"test_alias\", {\n name: \"testalias\",\n description: \"a sample description\",\n functionName: testLambda.name,\n functionVersion: \"$LATEST\",\n});\nconst allowCloudwatch = new aws.lambda.Permission(\"allow_cloudwatch\", {\n statementId: \"AllowExecutionFromCloudWatch\",\n action: \"lambda:InvokeFunction\",\n \"function\": testLambda.name,\n principal: \"events.amazonaws.com\",\n sourceArn: \"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n qualifier: testAlias.name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\",\n },\n }],\n }))\ntest_lambda = aws.lambda_.Function(\"test_lambda\",\n code=pulumi.FileArchive(\"lambdatest.zip\"),\n name=\"lambda_function_name\",\n role=iam_for_lambda.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.NODE_JS20D_X)\ntest_alias = aws.lambda_.Alias(\"test_alias\",\n name=\"testalias\",\n description=\"a sample description\",\n function_name=test_lambda.name,\n function_version=\"$LATEST\")\nallow_cloudwatch = aws.lambda_.Permission(\"allow_cloudwatch\",\n statement_id=\"AllowExecutionFromCloudWatch\",\n action=\"lambda:InvokeFunction\",\n function=test_lambda.name,\n principal=\"events.amazonaws.com\",\n source_arn=\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n qualifier=test_alias.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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"lambda.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var testLambda = new Aws.Lambda.Function(\"test_lambda\", new()\n {\n Code = new FileArchive(\"lambdatest.zip\"),\n Name = \"lambda_function_name\",\n Role = iamForLambda.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.NodeJS20dX,\n });\n\n var testAlias = new Aws.Lambda.Alias(\"test_alias\", new()\n {\n Name = \"testalias\",\n Description = \"a sample description\",\n FunctionName = testLambda.Name,\n FunctionVersion = \"$LATEST\",\n });\n\n var allowCloudwatch = new Aws.Lambda.Permission(\"allow_cloudwatch\", new()\n {\n StatementId = \"AllowExecutionFromCloudWatch\",\n Action = \"lambda:InvokeFunction\",\n Function = testLambda.Name,\n Principal = \"events.amazonaws.com\",\n SourceArn = \"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\",\n Qualifier = testAlias.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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"lambda.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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\ttestLambda, err := lambda.NewFunction(ctx, \"test_lambda\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambdatest.zip\"),\n\t\t\tName: pulumi.String(\"lambda_function_name\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS20dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAlias, err := lambda.NewAlias(ctx, \"test_alias\", \u0026lambda.AliasArgs{\n\t\t\tName: pulumi.String(\"testalias\"),\n\t\t\tDescription: pulumi.String(\"a sample description\"),\n\t\t\tFunctionName: testLambda.Name,\n\t\t\tFunctionVersion: pulumi.String(\"$LATEST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"allow_cloudwatch\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromCloudWatch\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testLambda.Name,\n\t\t\tPrincipal: pulumi.String(\"events.amazonaws.com\"),\n\t\t\tSourceArn: pulumi.String(\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\"),\n\t\t\tQualifier: testAlias.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.lambda.Function;\nimport com.pulumi.aws.lambda.FunctionArgs;\nimport com.pulumi.aws.lambda.Alias;\nimport com.pulumi.aws.lambda.AliasArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 var iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"lambda.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var testLambda = new Function(\"testLambda\", FunctionArgs.builder()\n .code(new FileArchive(\"lambdatest.zip\"))\n .name(\"lambda_function_name\")\n .role(iamForLambda.arn())\n .handler(\"exports.handler\")\n .runtime(\"nodejs20.x\")\n .build());\n\n var testAlias = new Alias(\"testAlias\", AliasArgs.builder()\n .name(\"testalias\")\n .description(\"a sample description\")\n .functionName(testLambda.name())\n .functionVersion(\"$LATEST\")\n .build());\n\n var allowCloudwatch = new Permission(\"allowCloudwatch\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromCloudWatch\")\n .action(\"lambda:InvokeFunction\")\n .function(testLambda.name())\n .principal(\"events.amazonaws.com\")\n .sourceArn(\"arn:aws:events:eu-west-1:111122223333:rule/RunDaily\")\n .qualifier(testAlias.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n allowCloudwatch:\n type: aws:lambda:Permission\n name: allow_cloudwatch\n properties:\n statementId: AllowExecutionFromCloudWatch\n action: lambda:InvokeFunction\n function: ${testLambda.name}\n principal: events.amazonaws.com\n sourceArn: arn:aws:events:eu-west-1:111122223333:rule/RunDaily\n qualifier: ${testAlias.name}\n testAlias:\n type: aws:lambda:Alias\n name: test_alias\n properties:\n name: testalias\n description: a sample description\n functionName: ${testLambda.name}\n functionVersion: $LATEST\n testLambda:\n type: aws:lambda:Function\n name: test_lambda\n properties:\n code:\n fn::FileArchive: lambdatest.zip\n name: lambda_function_name\n role: ${iamForLambda.arn}\n handler: exports.handler\n runtime: nodejs20.x\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: lambda.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With SNS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.sns.Topic(\"default\", {name: \"call-lambda-maybe\"});\nconst defaultRole = new aws.iam.Role(\"default\", {\n name: \"iam_for_lambda_with_sns\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"lambda.amazonaws.com\",\n },\n }],\n }),\n});\nconst func = new aws.lambda.Function(\"func\", {\n code: new pulumi.asset.FileArchive(\"lambdatest.zip\"),\n name: \"lambda_called_from_sns\",\n role: defaultRole.arn,\n handler: \"exports.handler\",\n runtime: aws.lambda.Runtime.Python3d12,\n});\nconst withSns = new aws.lambda.Permission(\"with_sns\", {\n statementId: \"AllowExecutionFromSNS\",\n action: \"lambda:InvokeFunction\",\n \"function\": func.name,\n principal: \"sns.amazonaws.com\",\n sourceArn: _default.arn,\n});\nconst lambda = new aws.sns.TopicSubscription(\"lambda\", {\n topic: _default.arn,\n protocol: \"lambda\",\n endpoint: func.arn,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndefault = aws.sns.Topic(\"default\", name=\"call-lambda-maybe\")\ndefault_role = aws.iam.Role(\"default\",\n name=\"iam_for_lambda_with_sns\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\",\n },\n }],\n }))\nfunc = aws.lambda_.Function(\"func\",\n code=pulumi.FileArchive(\"lambdatest.zip\"),\n name=\"lambda_called_from_sns\",\n role=default_role.arn,\n handler=\"exports.handler\",\n runtime=aws.lambda_.Runtime.PYTHON3D12)\nwith_sns = aws.lambda_.Permission(\"with_sns\",\n statement_id=\"AllowExecutionFromSNS\",\n action=\"lambda:InvokeFunction\",\n function=func.name,\n principal=\"sns.amazonaws.com\",\n source_arn=default.arn)\nlambda_ = aws.sns.TopicSubscription(\"lambda\",\n topic=default.arn,\n protocol=\"lambda\",\n endpoint=func.arn)\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 @default = new Aws.Sns.Topic(\"default\", new()\n {\n Name = \"call-lambda-maybe\",\n });\n\n var defaultRole = new Aws.Iam.Role(\"default\", new()\n {\n Name = \"iam_for_lambda_with_sns\",\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\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"lambda.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var func = new Aws.Lambda.Function(\"func\", new()\n {\n Code = new FileArchive(\"lambdatest.zip\"),\n Name = \"lambda_called_from_sns\",\n Role = defaultRole.Arn,\n Handler = \"exports.handler\",\n Runtime = Aws.Lambda.Runtime.Python3d12,\n });\n\n var withSns = new Aws.Lambda.Permission(\"with_sns\", new()\n {\n StatementId = \"AllowExecutionFromSNS\",\n Action = \"lambda:InvokeFunction\",\n Function = func.Name,\n Principal = \"sns.amazonaws.com\",\n SourceArn = @default.Arn,\n });\n\n var lambda = new Aws.Sns.TopicSubscription(\"lambda\", new()\n {\n Topic = @default.Arn,\n Protocol = \"lambda\",\n Endpoint = func.Arn,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\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 := sns.NewTopic(ctx, \"default\", \u0026sns.TopicArgs{\n\t\t\tName: pulumi.String(\"call-lambda-maybe\"),\n\t\t})\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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"lambda.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\tdefaultRole, err := iam.NewRole(ctx, \"default\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda_with_sns\"),\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\t_, err = lambda.NewFunction(ctx, \"func\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lambdatest.zip\"),\n\t\t\tName: pulumi.String(\"lambda_called_from_sns\"),\n\t\t\tRole: defaultRole.Arn,\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d12),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_sns\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromSNS\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: _func.Name,\n\t\t\tPrincipal: pulumi.String(\"sns.amazonaws.com\"),\n\t\t\tSourceArn: _default.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sns.NewTopicSubscription(ctx, \"lambda\", \u0026sns.TopicSubscriptionArgs{\n\t\t\tTopic: _default.Arn,\n\t\t\tProtocol: pulumi.String(\"lambda\"),\n\t\t\tEndpoint: _func.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.sns.Topic;\nimport com.pulumi.aws.sns.TopicArgs;\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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.sns.TopicSubscription;\nimport com.pulumi.aws.sns.TopicSubscriptionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 var default_ = new Topic(\"default\", TopicArgs.builder()\n .name(\"call-lambda-maybe\")\n .build());\n\n var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n .name(\"iam_for_lambda_with_sns\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"lambda.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var func = new Function(\"func\", FunctionArgs.builder()\n .code(new FileArchive(\"lambdatest.zip\"))\n .name(\"lambda_called_from_sns\")\n .role(defaultRole.arn())\n .handler(\"exports.handler\")\n .runtime(\"python3.12\")\n .build());\n\n var withSns = new Permission(\"withSns\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromSNS\")\n .action(\"lambda:InvokeFunction\")\n .function(func.name())\n .principal(\"sns.amazonaws.com\")\n .sourceArn(default_.arn())\n .build());\n\n var lambda = new TopicSubscription(\"lambda\", TopicSubscriptionArgs.builder()\n .topic(default_.arn())\n .protocol(\"lambda\")\n .endpoint(func.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withSns:\n type: aws:lambda:Permission\n name: with_sns\n properties:\n statementId: AllowExecutionFromSNS\n action: lambda:InvokeFunction\n function: ${func.name}\n principal: sns.amazonaws.com\n sourceArn: ${default.arn}\n default:\n type: aws:sns:Topic\n properties:\n name: call-lambda-maybe\n lambda:\n type: aws:sns:TopicSubscription\n properties:\n topic: ${default.arn}\n protocol: lambda\n endpoint: ${func.arn}\n func:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: lambdatest.zip\n name: lambda_called_from_sns\n role: ${defaultRole.arn}\n handler: exports.handler\n runtime: python3.12\n defaultRole:\n type: aws:iam:Role\n name: default\n properties:\n name: iam_for_lambda_with_sns\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: lambda.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With API Gateway REST API\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 lambdaPermission = new aws.lambda.Permission(\"lambda_permission\", {\n statementId: \"AllowMyDemoAPIInvoke\",\n action: \"lambda:InvokeFunction\",\n \"function\": \"MyDemoFunction\",\n principal: \"apigateway.amazonaws.com\",\n sourceArn: pulumi.interpolate`${myDemoAPI.executionArn}/*`,\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\")\nlambda_permission = aws.lambda_.Permission(\"lambda_permission\",\n statement_id=\"AllowMyDemoAPIInvoke\",\n action=\"lambda:InvokeFunction\",\n function=\"MyDemoFunction\",\n principal=\"apigateway.amazonaws.com\",\n source_arn=my_demo_api.execution_arn.apply(lambda execution_arn: f\"{execution_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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var lambdaPermission = new Aws.Lambda.Permission(\"lambda_permission\", new()\n {\n StatementId = \"AllowMyDemoAPIInvoke\",\n Action = \"lambda:InvokeFunction\",\n Function = \"MyDemoFunction\",\n Principal = \"apigateway.amazonaws.com\",\n SourceArn = myDemoAPI.ExecutionArn.Apply(executionArn =\u003e $\"{executionArn}/*\"),\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/lambda\"\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\t_, err = lambda.NewPermission(ctx, \"lambda_permission\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowMyDemoAPIInvoke\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: pulumi.Any(\"MyDemoFunction\"),\n\t\t\tPrincipal: pulumi.String(\"apigateway.amazonaws.com\"),\n\t\t\tSourceArn: myDemoAPI.ExecutionArn.ApplyT(func(executionArn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/*\", executionArn), 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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\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 lambdaPermission = new Permission(\"lambdaPermission\", PermissionArgs.builder()\n .statementId(\"AllowMyDemoAPIInvoke\")\n .action(\"lambda:InvokeFunction\")\n .function(\"MyDemoFunction\")\n .principal(\"apigateway.amazonaws.com\")\n .sourceArn(myDemoAPI.executionArn().applyValue(executionArn -\u003e String.format(\"%s/*\", executionArn)))\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 lambdaPermission:\n type: aws:lambda:Permission\n name: lambda_permission\n properties:\n statementId: AllowMyDemoAPIInvoke\n action: lambda:InvokeFunction\n function: MyDemoFunction\n principal: apigateway.amazonaws.com\n sourceArn: ${myDemoAPI.executionArn}/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With CloudWatch Log Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.cloudwatch.LogGroup(\"default\", {name: \"/default\"});\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 defaultRole = new aws.iam.Role(\"default\", {\n name: \"iam_for_lambda_called_from_cloudwatch_logs\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst loggingFunction = new aws.lambda.Function(\"logging\", {\n code: new pulumi.asset.FileArchive(\"lamba_logging.zip\"),\n name: \"lambda_called_from_cloudwatch_logs\",\n handler: \"exports.handler\",\n role: defaultRole.arn,\n runtime: aws.lambda.Runtime.Python3d12,\n});\nconst logging = new aws.lambda.Permission(\"logging\", {\n action: \"lambda:InvokeFunction\",\n \"function\": loggingFunction.name,\n principal: \"logs.eu-west-1.amazonaws.com\",\n sourceArn: pulumi.interpolate`${_default.arn}:*`,\n});\nconst loggingLogSubscriptionFilter = new aws.cloudwatch.LogSubscriptionFilter(\"logging\", {\n destinationArn: loggingFunction.arn,\n filterPattern: \"\",\n logGroup: _default.name,\n name: \"logging_default\",\n}, {\n dependsOn: [logging],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.cloudwatch.LogGroup(\"default\", name=\"/default\")\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}])\ndefault_role = aws.iam.Role(\"default\",\n name=\"iam_for_lambda_called_from_cloudwatch_logs\",\n assume_role_policy=assume_role.json)\nlogging_function = aws.lambda_.Function(\"logging\",\n code=pulumi.FileArchive(\"lamba_logging.zip\"),\n name=\"lambda_called_from_cloudwatch_logs\",\n handler=\"exports.handler\",\n role=default_role.arn,\n runtime=aws.lambda_.Runtime.PYTHON3D12)\nlogging = aws.lambda_.Permission(\"logging\",\n action=\"lambda:InvokeFunction\",\n function=logging_function.name,\n principal=\"logs.eu-west-1.amazonaws.com\",\n source_arn=default.arn.apply(lambda arn: f\"{arn}:*\"))\nlogging_log_subscription_filter = aws.cloudwatch.LogSubscriptionFilter(\"logging\",\n destination_arn=logging_function.arn,\n filter_pattern=\"\",\n log_group=default.name,\n name=\"logging_default\",\n opts = pulumi.ResourceOptions(depends_on=[logging]))\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 @default = new Aws.CloudWatch.LogGroup(\"default\", new()\n {\n Name = \"/default\",\n });\n\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 defaultRole = new Aws.Iam.Role(\"default\", new()\n {\n Name = \"iam_for_lambda_called_from_cloudwatch_logs\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var loggingFunction = new Aws.Lambda.Function(\"logging\", new()\n {\n Code = new FileArchive(\"lamba_logging.zip\"),\n Name = \"lambda_called_from_cloudwatch_logs\",\n Handler = \"exports.handler\",\n Role = defaultRole.Arn,\n Runtime = Aws.Lambda.Runtime.Python3d12,\n });\n\n var logging = new Aws.Lambda.Permission(\"logging\", new()\n {\n Action = \"lambda:InvokeFunction\",\n Function = loggingFunction.Name,\n Principal = \"logs.eu-west-1.amazonaws.com\",\n SourceArn = @default.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n });\n\n var loggingLogSubscriptionFilter = new Aws.CloudWatch.LogSubscriptionFilter(\"logging\", new()\n {\n DestinationArn = loggingFunction.Arn,\n FilterPattern = \"\",\n LogGroup = @default.Name,\n Name = \"logging_default\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n logging,\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/cloudwatch\"\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/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewLogGroup(ctx, \"default\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"/default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\tdefaultRole, err := iam.NewRole(ctx, \"default\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda_called_from_cloudwatch_logs\"),\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\tloggingFunction, err := lambda.NewFunction(ctx, \"logging\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"lamba_logging.zip\"),\n\t\t\tName: pulumi.String(\"lambda_called_from_cloudwatch_logs\"),\n\t\t\tHandler: pulumi.String(\"exports.handler\"),\n\t\t\tRole: defaultRole.Arn,\n\t\t\tRuntime: pulumi.String(lambda.RuntimePython3d12),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogging, err := lambda.NewPermission(ctx, \"logging\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: loggingFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"logs.eu-west-1.amazonaws.com\"),\n\t\t\tSourceArn: _default.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), 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\t_, err = cloudwatch.NewLogSubscriptionFilter(ctx, \"logging\", \u0026cloudwatch.LogSubscriptionFilterArgs{\n\t\t\tDestinationArn: loggingFunction.Arn,\n\t\t\tFilterPattern: pulumi.String(\"\"),\n\t\t\tLogGroup: _default.Name,\n\t\t\tName: pulumi.String(\"logging_default\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tlogging,\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.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\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.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.cloudwatch.LogSubscriptionFilter;\nimport com.pulumi.aws.cloudwatch.LogSubscriptionFilterArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 var default_ = new LogGroup(\"default\", LogGroupArgs.builder()\n .name(\"/default\")\n .build());\n\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 defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n .name(\"iam_for_lambda_called_from_cloudwatch_logs\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var loggingFunction = new Function(\"loggingFunction\", FunctionArgs.builder()\n .code(new FileArchive(\"lamba_logging.zip\"))\n .name(\"lambda_called_from_cloudwatch_logs\")\n .handler(\"exports.handler\")\n .role(defaultRole.arn())\n .runtime(\"python3.12\")\n .build());\n\n var logging = new Permission(\"logging\", PermissionArgs.builder()\n .action(\"lambda:InvokeFunction\")\n .function(loggingFunction.name())\n .principal(\"logs.eu-west-1.amazonaws.com\")\n .sourceArn(default_.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n var loggingLogSubscriptionFilter = new LogSubscriptionFilter(\"loggingLogSubscriptionFilter\", LogSubscriptionFilterArgs.builder()\n .destinationArn(loggingFunction.arn())\n .filterPattern(\"\")\n .logGroup(default_.name())\n .name(\"logging_default\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(logging)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n logging:\n type: aws:lambda:Permission\n properties:\n action: lambda:InvokeFunction\n function: ${loggingFunction.name}\n principal: logs.eu-west-1.amazonaws.com\n sourceArn: ${default.arn}:*\n default:\n type: aws:cloudwatch:LogGroup\n properties:\n name: /default\n loggingLogSubscriptionFilter:\n type: aws:cloudwatch:LogSubscriptionFilter\n name: logging\n properties:\n destinationArn: ${loggingFunction.arn}\n filterPattern:\n logGroup: ${default.name}\n name: logging_default\n options:\n dependson:\n - ${logging}\n loggingFunction:\n type: aws:lambda:Function\n name: logging\n properties:\n code:\n fn::FileArchive: lamba_logging.zip\n name: lambda_called_from_cloudwatch_logs\n handler: exports.handler\n role: ${defaultRole.arn}\n runtime: python3.12\n defaultRole:\n type: aws:iam:Role\n name: default\n properties:\n name: iam_for_lambda_called_from_cloudwatch_logs\n assumeRolePolicy: ${assumeRole.json}\nvariables:\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### With Cross-Account Invocation Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst url = new aws.lambda.FunctionUrl(\"url\", {\n functionName: example.functionName,\n authorizationType: \"AWS_IAM\",\n});\nconst urlPermission = new aws.lambda.Permission(\"url\", {\n action: \"lambda:InvokeFunctionUrl\",\n \"function\": example.functionName,\n principal: \"arn:aws:iam::444455556666:role/example\",\n sourceAccount: \"444455556666\",\n functionUrlAuthType: \"AWS_IAM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nurl = aws.lambda_.FunctionUrl(\"url\",\n function_name=example[\"functionName\"],\n authorization_type=\"AWS_IAM\")\nurl_permission = aws.lambda_.Permission(\"url\",\n action=\"lambda:InvokeFunctionUrl\",\n function=example[\"functionName\"],\n principal=\"arn:aws:iam::444455556666:role/example\",\n source_account=\"444455556666\",\n function_url_auth_type=\"AWS_IAM\")\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 url = new Aws.Lambda.FunctionUrl(\"url\", new()\n {\n FunctionName = example.FunctionName,\n AuthorizationType = \"AWS_IAM\",\n });\n\n var urlPermission = new Aws.Lambda.Permission(\"url\", new()\n {\n Action = \"lambda:InvokeFunctionUrl\",\n Function = example.FunctionName,\n Principal = \"arn:aws:iam::444455556666:role/example\",\n SourceAccount = \"444455556666\",\n FunctionUrlAuthType = \"AWS_IAM\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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 := lambda.NewFunctionUrl(ctx, \"url\", \u0026lambda.FunctionUrlArgs{\n\t\t\tFunctionName: pulumi.Any(example.FunctionName),\n\t\t\tAuthorizationType: pulumi.String(\"AWS_IAM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"url\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunctionUrl\"),\n\t\t\tFunction: pulumi.Any(example.FunctionName),\n\t\t\tPrincipal: pulumi.String(\"arn:aws:iam::444455556666:role/example\"),\n\t\t\tSourceAccount: pulumi.String(\"444455556666\"),\n\t\t\tFunctionUrlAuthType: pulumi.String(\"AWS_IAM\"),\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.lambda.FunctionUrl;\nimport com.pulumi.aws.lambda.FunctionUrlArgs;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\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 url = new FunctionUrl(\"url\", FunctionUrlArgs.builder()\n .functionName(example.functionName())\n .authorizationType(\"AWS_IAM\")\n .build());\n\n var urlPermission = new Permission(\"urlPermission\", PermissionArgs.builder()\n .action(\"lambda:InvokeFunctionUrl\")\n .function(example.functionName())\n .principal(\"arn:aws:iam::444455556666:role/example\")\n .sourceAccount(\"444455556666\")\n .functionUrlAuthType(\"AWS_IAM\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n url:\n type: aws:lambda:FunctionUrl\n properties:\n functionName: ${example.functionName}\n authorizationType: AWS_IAM\n urlPermission:\n type: aws:lambda:Permission\n name: url\n properties:\n action: lambda:InvokeFunctionUrl\n function: ${example.functionName}\n principal: arn:aws:iam::444455556666:role/example\n sourceAccount: '444455556666'\n functionUrlAuthType: AWS_IAM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Lambda permission statements using function_name/statement_id with an optional qualifier. For example:\n\n```sh\n$ pulumi import aws:lambda/permission:Permission test_lambda_permission my_test_lambda_function/AllowExecutionFromCloudWatch\n```\n```sh\n$ pulumi import aws:lambda/permission:Permission test_lambda_permission my_test_lambda_function:qualifier_name/AllowExecutionFromCloudWatch\n```\n", "properties": { "action": { "type": "string", @@ -339330,7 +340005,7 @@ } }, "aws:s3/analyticsConfiguration:AnalyticsConfiguration": { - "description": "Provides a S3 bucket [analytics configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) resource.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Add analytics configuration for entire S3 bucket and export results to a second S3 bucket\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.s3.BucketV2(\"example\", {bucket: \"example\"});\nconst analytics = new aws.s3.BucketV2(\"analytics\", {bucket: \"analytics destination\"});\nconst example_entire_bucket = new aws.s3.AnalyticsConfiguration(\"example-entire-bucket\", {\n bucket: example.id,\n name: \"EntireBucket\",\n storageClassAnalysis: {\n dataExport: {\n destination: {\n s3BucketDestination: {\n bucketArn: analytics.arn,\n },\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"example\")\nanalytics = aws.s3.BucketV2(\"analytics\", bucket=\"analytics destination\")\nexample_entire_bucket = aws.s3.AnalyticsConfiguration(\"example-entire-bucket\",\n bucket=example.id,\n name=\"EntireBucket\",\n storage_class_analysis={\n \"data_export\": {\n \"destination\": {\n \"s3_bucket_destination\": {\n \"bucket_arn\": analytics.arn,\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example\",\n });\n\n var analytics = new Aws.S3.BucketV2(\"analytics\", new()\n {\n Bucket = \"analytics destination\",\n });\n\n var example_entire_bucket = new Aws.S3.AnalyticsConfiguration(\"example-entire-bucket\", new()\n {\n Bucket = example.Id,\n Name = \"EntireBucket\",\n StorageClassAnalysis = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisArgs\n {\n DataExport = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportArgs\n {\n Destination = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs\n {\n S3BucketDestination = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs\n {\n BucketArn = analytics.Arn,\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/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tanalytics, err := s3.NewBucketV2(ctx, \"analytics\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"analytics destination\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewAnalyticsConfiguration(ctx, \"example-entire-bucket\", \u0026s3.AnalyticsConfigurationArgs{\n\t\t\tBucket: example.ID(),\n\t\t\tName: pulumi.String(\"EntireBucket\"),\n\t\t\tStorageClassAnalysis: \u0026s3.AnalyticsConfigurationStorageClassAnalysisArgs{\n\t\t\t\tDataExport: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportArgs{\n\t\t\t\t\tDestination: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{\n\t\t\t\t\t\tS3BucketDestination: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{\n\t\t\t\t\t\t\tBucketArn: analytics.Arn,\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.AnalyticsConfiguration;\nimport com.pulumi.aws.s3.AnalyticsConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"example\")\n .build());\n\n var analytics = new BucketV2(\"analytics\", BucketV2Args.builder()\n .bucket(\"analytics destination\")\n .build());\n\n var example_entire_bucket = new AnalyticsConfiguration(\"example-entire-bucket\", AnalyticsConfigurationArgs.builder()\n .bucket(example.id())\n .name(\"EntireBucket\")\n .storageClassAnalysis(AnalyticsConfigurationStorageClassAnalysisArgs.builder()\n .dataExport(AnalyticsConfigurationStorageClassAnalysisDataExportArgs.builder()\n .destination(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs.builder()\n .s3BucketDestination(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.builder()\n .bucketArn(analytics.arn())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example-entire-bucket:\n type: aws:s3:AnalyticsConfiguration\n properties:\n bucket: ${example.id}\n name: EntireBucket\n storageClassAnalysis:\n dataExport:\n destination:\n s3BucketDestination:\n bucketArn: ${analytics.arn}\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: example\n analytics:\n type: aws:s3:BucketV2\n properties:\n bucket: analytics destination\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add analytics configuration with S3 object filter\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.s3.BucketV2(\"example\", {bucket: \"example\"});\nconst example_filtered = new aws.s3.AnalyticsConfiguration(\"example-filtered\", {\n bucket: example.id,\n name: \"ImportantBlueDocuments\",\n filter: {\n prefix: \"documents/\",\n tags: {\n priority: \"high\",\n \"class\": \"blue\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"example\")\nexample_filtered = aws.s3.AnalyticsConfiguration(\"example-filtered\",\n bucket=example.id,\n name=\"ImportantBlueDocuments\",\n filter={\n \"prefix\": \"documents/\",\n \"tags\": {\n \"priority\": \"high\",\n \"class_\": \"blue\",\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example\",\n });\n\n var example_filtered = new Aws.S3.AnalyticsConfiguration(\"example-filtered\", new()\n {\n Bucket = example.Id,\n Name = \"ImportantBlueDocuments\",\n Filter = new Aws.S3.Inputs.AnalyticsConfigurationFilterArgs\n {\n Prefix = \"documents/\",\n Tags = \n {\n { \"priority\", \"high\" },\n { \"class\", \"blue\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewAnalyticsConfiguration(ctx, \"example-filtered\", \u0026s3.AnalyticsConfigurationArgs{\n\t\t\tBucket: example.ID(),\n\t\t\tName: pulumi.String(\"ImportantBlueDocuments\"),\n\t\t\tFilter: \u0026s3.AnalyticsConfigurationFilterArgs{\n\t\t\t\tPrefix: pulumi.String(\"documents/\"),\n\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\"priority\": pulumi.String(\"high\"),\n\t\t\t\t\t\"class\": pulumi.String(\"blue\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.AnalyticsConfiguration;\nimport com.pulumi.aws.s3.AnalyticsConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationFilterArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"example\")\n .build());\n\n var example_filtered = new AnalyticsConfiguration(\"example-filtered\", AnalyticsConfigurationArgs.builder()\n .bucket(example.id())\n .name(\"ImportantBlueDocuments\")\n .filter(AnalyticsConfigurationFilterArgs.builder()\n .prefix(\"documents/\")\n .tags(Map.ofEntries(\n Map.entry(\"priority\", \"high\"),\n Map.entry(\"class\", \"blue\")\n ))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example-filtered:\n type: aws:s3:AnalyticsConfiguration\n properties:\n bucket: ${example.id}\n name: ImportantBlueDocuments\n filter:\n prefix: documents/\n tags:\n priority: high\n class: blue\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import S3 bucket analytics configurations using `bucket:analytics`. For example:\n\n```sh\n$ pulumi import aws:s3/analyticsConfiguration:AnalyticsConfiguration my-bucket-entire-bucket my-bucket:EntireBucket\n```\n", + "description": "Provides a S3 bucket [analytics configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) resource.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Add analytics configuration for entire S3 bucket and export results to a second S3 bucket\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.s3.BucketV2(\"example\", {bucket: \"example\"});\nconst analytics = new aws.s3.BucketV2(\"analytics\", {bucket: \"analytics-destination\"});\nconst example_entire_bucket = new aws.s3.AnalyticsConfiguration(\"example-entire-bucket\", {\n bucket: example.id,\n name: \"EntireBucket\",\n storageClassAnalysis: {\n dataExport: {\n destination: {\n s3BucketDestination: {\n bucketArn: analytics.arn,\n },\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"example\")\nanalytics = aws.s3.BucketV2(\"analytics\", bucket=\"analytics-destination\")\nexample_entire_bucket = aws.s3.AnalyticsConfiguration(\"example-entire-bucket\",\n bucket=example.id,\n name=\"EntireBucket\",\n storage_class_analysis={\n \"data_export\": {\n \"destination\": {\n \"s3_bucket_destination\": {\n \"bucket_arn\": analytics.arn,\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example\",\n });\n\n var analytics = new Aws.S3.BucketV2(\"analytics\", new()\n {\n Bucket = \"analytics-destination\",\n });\n\n var example_entire_bucket = new Aws.S3.AnalyticsConfiguration(\"example-entire-bucket\", new()\n {\n Bucket = example.Id,\n Name = \"EntireBucket\",\n StorageClassAnalysis = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisArgs\n {\n DataExport = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportArgs\n {\n Destination = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs\n {\n S3BucketDestination = new Aws.S3.Inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs\n {\n BucketArn = analytics.Arn,\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/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tanalytics, err := s3.NewBucketV2(ctx, \"analytics\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"analytics-destination\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewAnalyticsConfiguration(ctx, \"example-entire-bucket\", \u0026s3.AnalyticsConfigurationArgs{\n\t\t\tBucket: example.ID(),\n\t\t\tName: pulumi.String(\"EntireBucket\"),\n\t\t\tStorageClassAnalysis: \u0026s3.AnalyticsConfigurationStorageClassAnalysisArgs{\n\t\t\t\tDataExport: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportArgs{\n\t\t\t\t\tDestination: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{\n\t\t\t\t\t\tS3BucketDestination: \u0026s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{\n\t\t\t\t\t\t\tBucketArn: analytics.Arn,\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.AnalyticsConfiguration;\nimport com.pulumi.aws.s3.AnalyticsConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"example\")\n .build());\n\n var analytics = new BucketV2(\"analytics\", BucketV2Args.builder()\n .bucket(\"analytics-destination\")\n .build());\n\n var example_entire_bucket = new AnalyticsConfiguration(\"example-entire-bucket\", AnalyticsConfigurationArgs.builder()\n .bucket(example.id())\n .name(\"EntireBucket\")\n .storageClassAnalysis(AnalyticsConfigurationStorageClassAnalysisArgs.builder()\n .dataExport(AnalyticsConfigurationStorageClassAnalysisDataExportArgs.builder()\n .destination(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs.builder()\n .s3BucketDestination(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs.builder()\n .bucketArn(analytics.arn())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example-entire-bucket:\n type: aws:s3:AnalyticsConfiguration\n properties:\n bucket: ${example.id}\n name: EntireBucket\n storageClassAnalysis:\n dataExport:\n destination:\n s3BucketDestination:\n bucketArn: ${analytics.arn}\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: example\n analytics:\n type: aws:s3:BucketV2\n properties:\n bucket: analytics-destination\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add analytics configuration with S3 object filter\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.s3.BucketV2(\"example\", {bucket: \"example\"});\nconst example_filtered = new aws.s3.AnalyticsConfiguration(\"example-filtered\", {\n bucket: example.id,\n name: \"ImportantBlueDocuments\",\n filter: {\n prefix: \"documents/\",\n tags: {\n priority: \"high\",\n \"class\": \"blue\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"example\")\nexample_filtered = aws.s3.AnalyticsConfiguration(\"example-filtered\",\n bucket=example.id,\n name=\"ImportantBlueDocuments\",\n filter={\n \"prefix\": \"documents/\",\n \"tags\": {\n \"priority\": \"high\",\n \"class_\": \"blue\",\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"example\",\n });\n\n var example_filtered = new Aws.S3.AnalyticsConfiguration(\"example-filtered\", new()\n {\n Bucket = example.Id,\n Name = \"ImportantBlueDocuments\",\n Filter = new Aws.S3.Inputs.AnalyticsConfigurationFilterArgs\n {\n Prefix = \"documents/\",\n Tags = \n {\n { \"priority\", \"high\" },\n { \"class\", \"blue\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewAnalyticsConfiguration(ctx, \"example-filtered\", \u0026s3.AnalyticsConfigurationArgs{\n\t\t\tBucket: example.ID(),\n\t\t\tName: pulumi.String(\"ImportantBlueDocuments\"),\n\t\t\tFilter: \u0026s3.AnalyticsConfigurationFilterArgs{\n\t\t\t\tPrefix: pulumi.String(\"documents/\"),\n\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\"priority\": pulumi.String(\"high\"),\n\t\t\t\t\t\"class\": pulumi.String(\"blue\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.AnalyticsConfiguration;\nimport com.pulumi.aws.s3.AnalyticsConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.AnalyticsConfigurationFilterArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"example\")\n .build());\n\n var example_filtered = new AnalyticsConfiguration(\"example-filtered\", AnalyticsConfigurationArgs.builder()\n .bucket(example.id())\n .name(\"ImportantBlueDocuments\")\n .filter(AnalyticsConfigurationFilterArgs.builder()\n .prefix(\"documents/\")\n .tags(Map.ofEntries(\n Map.entry(\"priority\", \"high\"),\n Map.entry(\"class\", \"blue\")\n ))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example-filtered:\n type: aws:s3:AnalyticsConfiguration\n properties:\n bucket: ${example.id}\n name: ImportantBlueDocuments\n filter:\n prefix: documents/\n tags:\n priority: high\n class: blue\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import S3 bucket analytics configurations using `bucket:analytics`. For example:\n\n```sh\n$ pulumi import aws:s3/analyticsConfiguration:AnalyticsConfiguration my-bucket-entire-bucket my-bucket:EntireBucket\n```\n", "properties": { "bucket": { "type": "string", @@ -340120,7 +340795,7 @@ } }, "aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2": { - "description": "Provides an independent configuration resource for S3 bucket [lifecycle configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html).\n\nAn S3 Lifecycle configuration consists of one or more Lifecycle rules. Each rule consists of the following:\n\n* Rule metadata (`id` and `status`)\n* Filter identifying objects to which the rule applies\n* One or more transition or expiration actions\n\nFor more information see the Amazon S3 User Guide on [`Lifecycle Configuration Elements`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html).\n\n\u003e **NOTE:** S3 Buckets only support a single lifecycle configuration. Declaring multiple `aws.s3.BucketLifecycleConfigurationV2` resources to the same S3 Bucket will cause a perpetual difference in configuration.\n\n\u003e **NOTE:** Lifecycle configurations may take some time to fully propagate to all AWS S3 systems.\nRunning Pulumi operations shortly after creating a lifecycle configuration may result in changes that affect configuration idempotence.\nSee the Amazon S3 User Guide on [setting lifecycle configuration on a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### With neither a filter nor prefix specified\n\nThe Lifecycle rule applies to a subset of objects based on the key name prefix (`\"\"`).\n\nThis configuration is intended to replicate the default behavior of the `lifecycle_rule`\nparameter in the AWS Provider `aws.s3.BucketV2` resource prior to `v4.0`.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying an empty filter\n\nThe Lifecycle rule applies to all objects in the bucket.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {},\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {},\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = null,\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: nil,\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter()\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter: {}\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter using key prefixes\n\nThe Lifecycle rule applies to a subset of objects based on the key name prefix (`logs/`).\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n prefix: \"logs/\",\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"prefix\": \"logs/\",\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"logs/\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"logs/\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n prefix: logs/\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIf you want to apply a Lifecycle action to a subset of objects based on different key name prefixes, specify separate rules.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [\n {\n id: \"rule-1\",\n filter: {\n prefix: \"logs/\",\n },\n status: \"Enabled\",\n },\n {\n id: \"rule-2\",\n filter: {\n prefix: \"tmp/\",\n },\n status: \"Enabled\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[\n {\n \"id\": \"rule-1\",\n \"filter\": {\n \"prefix\": \"logs/\",\n },\n \"status\": \"Enabled\",\n },\n {\n \"id\": \"rule-2\",\n \"filter\": {\n \"prefix\": \"tmp/\",\n },\n \"status\": \"Enabled\",\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 example = new Aws.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"logs/\",\n },\n Status = \"Enabled\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-2\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"tmp/\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-2\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules( \n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"logs/\")\n .build())\n .status(\"Enabled\")\n .build(),\n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-2\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"tmp/\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n prefix: logs/\n status: Enabled\n - id: rule-2\n filter:\n prefix: tmp/\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on an object tag\n\nThe Lifecycle rule specifies a filter based on a tag key and value. The rule then applies only to a subset of objects with the specific tag.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n tag: {\n key: \"Name\",\n value: \"Staging\",\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"tag\": {\n \"key\": \"Name\",\n \"value\": \"Staging\",\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Tag = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterTagArgs\n {\n Key = \"Name\",\n Value = \"Staging\",\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tTag: \u0026s3.BucketLifecycleConfigurationV2RuleFilterTagArgs{\n\t\t\t\t\t\t\tKey: pulumi.String(\"Name\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"Staging\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterTagArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .tag(BucketLifecycleConfigurationV2RuleFilterTagArgs.builder()\n .key(\"Name\")\n .value(\"Staging\")\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n tag:\n key: Name\n value: Staging\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on multiple tags\n\nThe Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with two tags (with the specific tag keys and values). Notice `tags` is wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n tags: {\n Key1: \"Value1\",\n Key2: \"Value2\",\n },\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"tags\": {\n \"key1\": \"Value1\",\n \"key2\": \"Value2\",\n },\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Tags = \n {\n { \"Key1\", \"Value1\" },\n { \"Key2\", \"Value2\" },\n },\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"Key1\": pulumi.String(\"Value1\"),\n\t\t\t\t\t\t\t\t\"Key2\": pulumi.String(\"Value2\"),\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\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .tags(Map.ofEntries(\n Map.entry(\"Key1\", \"Value1\"),\n Map.entry(\"Key2\", \"Value2\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n tags:\n Key1: Value1\n Key2: Value2\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on both prefix and one or more tags\n\nThe Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with the specified prefix and two tags (with the specific tag keys and values). Notice both `prefix` and `tags` are wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n prefix: \"logs/\",\n tags: {\n Key1: \"Value1\",\n Key2: \"Value2\",\n },\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"prefix\": \"logs/\",\n \"tags\": {\n \"key1\": \"Value1\",\n \"key2\": \"Value2\",\n },\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"logs/\",\n Tags = \n {\n { \"Key1\", \"Value1\" },\n { \"Key2\", \"Value2\" },\n },\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"Key1\": pulumi.String(\"Value1\"),\n\t\t\t\t\t\t\t\t\"Key2\": pulumi.String(\"Value2\"),\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\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"logs/\")\n .tags(Map.ofEntries(\n Map.entry(\"Key1\", \"Value1\"),\n Map.entry(\"Key2\", \"Value2\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n prefix: logs/\n tags:\n Key1: Value1\n Key2: Value2\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on object size\n\nObject size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare).\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n objectSizeGreaterThan: \"500\",\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"object_size_greater_than\": \"500\",\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n ObjectSizeGreaterThan = \"500\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tObjectSizeGreaterThan: pulumi.String(\"500\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .objectSizeGreaterThan(500)\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n objectSizeGreaterThan: 500\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on object size range and prefix\n\nThe `object_size_greater_than` must be less than the `object_size_less_than`. Notice both the object size range and prefix are wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n prefix: \"logs/\",\n objectSizeGreaterThan: 500,\n objectSizeLessThan: 64000,\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"prefix\": \"logs/\",\n \"object_size_greater_than\": 500,\n \"object_size_less_than\": 64000,\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"logs/\",\n ObjectSizeGreaterThan = 500,\n ObjectSizeLessThan = 64000,\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t\t\tObjectSizeGreaterThan: pulumi.Int(500),\n\t\t\t\t\t\t\tObjectSizeLessThan: pulumi.Int(64000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"logs/\")\n .objectSizeGreaterThan(500)\n .objectSizeLessThan(64000)\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n prefix: logs/\n objectSizeGreaterThan: 500\n objectSizeLessThan: 64000\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a Lifecycle Configuration for a bucket with versioning\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"my-bucket\"});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucket_acl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\nconst bucket_config = new aws.s3.BucketLifecycleConfigurationV2(\"bucket-config\", {\n bucket: bucket.id,\n rules: [\n {\n id: \"log\",\n expiration: {\n days: 90,\n },\n filter: {\n and: {\n prefix: \"log/\",\n tags: {\n rule: \"log\",\n autoclean: \"true\",\n },\n },\n },\n status: \"Enabled\",\n transitions: [\n {\n days: 30,\n storageClass: \"STANDARD_IA\",\n },\n {\n days: 60,\n storageClass: \"GLACIER\",\n },\n ],\n },\n {\n id: \"tmp\",\n filter: {\n prefix: \"tmp/\",\n },\n expiration: {\n date: \"2023-01-13T00:00:00Z\",\n },\n status: \"Enabled\",\n },\n ],\n});\nconst versioningBucket = new aws.s3.BucketV2(\"versioning_bucket\", {bucket: \"my-versioning-bucket\"});\nconst versioningBucketAcl = new aws.s3.BucketAclV2(\"versioning_bucket_acl\", {\n bucket: versioningBucket.id,\n acl: \"private\",\n});\nconst versioning = new aws.s3.BucketVersioningV2(\"versioning\", {\n bucket: versioningBucket.id,\n versioningConfiguration: {\n status: \"Enabled\",\n },\n});\nconst versioning_bucket_config = new aws.s3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\", {\n bucket: versioningBucket.id,\n rules: [{\n id: \"config\",\n filter: {\n prefix: \"config/\",\n },\n noncurrentVersionExpiration: {\n noncurrentDays: 90,\n },\n noncurrentVersionTransitions: [\n {\n noncurrentDays: 30,\n storageClass: \"STANDARD_IA\",\n },\n {\n noncurrentDays: 60,\n storageClass: \"GLACIER\",\n },\n ],\n status: \"Enabled\",\n }],\n}, {\n dependsOn: [versioning],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"my-bucket\")\nbucket_acl = aws.s3.BucketAclV2(\"bucket_acl\",\n bucket=bucket.id,\n acl=\"private\")\nbucket_config = aws.s3.BucketLifecycleConfigurationV2(\"bucket-config\",\n bucket=bucket.id,\n rules=[\n {\n \"id\": \"log\",\n \"expiration\": {\n \"days\": 90,\n },\n \"filter\": {\n \"and_\": {\n \"prefix\": \"log/\",\n \"tags\": {\n \"rule\": \"log\",\n \"autoclean\": \"true\",\n },\n },\n },\n \"status\": \"Enabled\",\n \"transitions\": [\n {\n \"days\": 30,\n \"storage_class\": \"STANDARD_IA\",\n },\n {\n \"days\": 60,\n \"storage_class\": \"GLACIER\",\n },\n ],\n },\n {\n \"id\": \"tmp\",\n \"filter\": {\n \"prefix\": \"tmp/\",\n },\n \"expiration\": {\n \"date\": \"2023-01-13T00:00:00Z\",\n },\n \"status\": \"Enabled\",\n },\n ])\nversioning_bucket = aws.s3.BucketV2(\"versioning_bucket\", bucket=\"my-versioning-bucket\")\nversioning_bucket_acl = aws.s3.BucketAclV2(\"versioning_bucket_acl\",\n bucket=versioning_bucket.id,\n acl=\"private\")\nversioning = aws.s3.BucketVersioningV2(\"versioning\",\n bucket=versioning_bucket.id,\n versioning_configuration={\n \"status\": \"Enabled\",\n })\nversioning_bucket_config = aws.s3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\",\n bucket=versioning_bucket.id,\n rules=[{\n \"id\": \"config\",\n \"filter\": {\n \"prefix\": \"config/\",\n },\n \"noncurrent_version_expiration\": {\n \"noncurrent_days\": 90,\n },\n \"noncurrent_version_transitions\": [\n {\n \"noncurrent_days\": 30,\n \"storage_class\": \"STANDARD_IA\",\n },\n {\n \"noncurrent_days\": 60,\n \"storage_class\": \"GLACIER\",\n },\n ],\n \"status\": \"Enabled\",\n }],\n opts = pulumi.ResourceOptions(depends_on=[versioning]))\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"my-bucket\",\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucket_acl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\n });\n\n var bucket_config = new Aws.S3.BucketLifecycleConfigurationV2(\"bucket-config\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"log\",\n Expiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleExpirationArgs\n {\n Days = 90,\n },\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"log/\",\n Tags = \n {\n { \"rule\", \"log\" },\n { \"autoclean\", \"true\" },\n },\n },\n },\n Status = \"Enabled\",\n Transitions = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs\n {\n Days = 30,\n StorageClass = \"STANDARD_IA\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs\n {\n Days = 60,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"tmp\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"tmp/\",\n },\n Expiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleExpirationArgs\n {\n Date = \"2023-01-13T00:00:00Z\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n var versioningBucket = new Aws.S3.BucketV2(\"versioning_bucket\", new()\n {\n Bucket = \"my-versioning-bucket\",\n });\n\n var versioningBucketAcl = new Aws.S3.BucketAclV2(\"versioning_bucket_acl\", new()\n {\n Bucket = versioningBucket.Id,\n Acl = \"private\",\n });\n\n var versioning = new Aws.S3.BucketVersioningV2(\"versioning\", new()\n {\n Bucket = versioningBucket.Id,\n VersioningConfiguration = new Aws.S3.Inputs.BucketVersioningV2VersioningConfigurationArgs\n {\n Status = \"Enabled\",\n },\n });\n\n var versioning_bucket_config = new Aws.S3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\", new()\n {\n Bucket = versioningBucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"config\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"config/\",\n },\n NoncurrentVersionExpiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs\n {\n NoncurrentDays = 90,\n },\n NoncurrentVersionTransitions = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs\n {\n NoncurrentDays = 30,\n StorageClass = \"STANDARD_IA\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs\n {\n NoncurrentDays = 60,\n StorageClass = \"GLACIER\",\n },\n },\n Status = \"Enabled\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n versioning,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketLifecycleConfigurationV2(ctx, \"bucket-config\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"log\"),\n\t\t\t\t\tExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"log/\"),\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rule\": pulumi.String(\"log\"),\n\t\t\t\t\t\t\t\t\"autoclean\": pulumi.String(\"true\"),\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\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t\tTransitions: s3.BucketLifecycleConfigurationV2RuleTransitionArray{\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"tmp\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\n\t\t\t\t\t},\n\t\t\t\t\tExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleExpirationArgs{\n\t\t\t\t\t\tDate: pulumi.String(\"2023-01-13T00:00:00Z\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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\tversioningBucket, err := s3.NewBucketV2(ctx, \"versioning_bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-versioning-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"versioning_bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tversioning, err := s3.NewBucketVersioningV2(ctx, \"versioning\", \u0026s3.BucketVersioningV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tVersioningConfiguration: \u0026s3.BucketVersioningV2VersioningConfigurationArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketLifecycleConfigurationV2(ctx, \"versioning-bucket-config\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"config\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"config/\"),\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\tNoncurrentDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tNoncurrentDays: pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tNoncurrentDays: pulumi.Int(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tversioning,\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleExpirationArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\nimport com.pulumi.aws.s3.BucketVersioningV2;\nimport com.pulumi.aws.s3.BucketVersioningV2Args;\nimport com.pulumi.aws.s3.inputs.BucketVersioningV2VersioningConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"my-bucket\")\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder()\n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n var bucket_config = new BucketLifecycleConfigurationV2(\"bucket-config\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules( \n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"log\")\n .expiration(BucketLifecycleConfigurationV2RuleExpirationArgs.builder()\n .days(90)\n .build())\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"log/\")\n .tags(Map.ofEntries(\n Map.entry(\"rule\", \"log\"),\n Map.entry(\"autoclean\", \"true\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .transitions( \n BucketLifecycleConfigurationV2RuleTransitionArgs.builder()\n .days(30)\n .storageClass(\"STANDARD_IA\")\n .build(),\n BucketLifecycleConfigurationV2RuleTransitionArgs.builder()\n .days(60)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"tmp\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"tmp/\")\n .build())\n .expiration(BucketLifecycleConfigurationV2RuleExpirationArgs.builder()\n .date(\"2023-01-13T00:00:00Z\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n var versioningBucket = new BucketV2(\"versioningBucket\", BucketV2Args.builder()\n .bucket(\"my-versioning-bucket\")\n .build());\n\n var versioningBucketAcl = new BucketAclV2(\"versioningBucketAcl\", BucketAclV2Args.builder()\n .bucket(versioningBucket.id())\n .acl(\"private\")\n .build());\n\n var versioning = new BucketVersioningV2(\"versioning\", BucketVersioningV2Args.builder()\n .bucket(versioningBucket.id())\n .versioningConfiguration(BucketVersioningV2VersioningConfigurationArgs.builder()\n .status(\"Enabled\")\n .build())\n .build());\n\n var versioning_bucket_config = new BucketLifecycleConfigurationV2(\"versioning-bucket-config\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(versioningBucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"config\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"config/\")\n .build())\n .noncurrentVersionExpiration(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs.builder()\n .noncurrentDays(90)\n .build())\n .noncurrentVersionTransitions( \n BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs.builder()\n .noncurrentDays(30)\n .storageClass(\"STANDARD_IA\")\n .build(),\n BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs.builder()\n .noncurrentDays(60)\n .storageClass(\"GLACIER\")\n .build())\n .status(\"Enabled\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(versioning)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: my-bucket\n bucketAcl:\n type: aws:s3:BucketAclV2\n name: bucket_acl\n properties:\n bucket: ${bucket.id}\n acl: private\n bucket-config:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: log\n expiration:\n days: 90\n filter:\n and:\n prefix: log/\n tags:\n rule: log\n autoclean: 'true'\n status: Enabled\n transitions:\n - days: 30\n storageClass: STANDARD_IA\n - days: 60\n storageClass: GLACIER\n - id: tmp\n filter:\n prefix: tmp/\n expiration:\n date: 2023-01-13T00:00:00Z\n status: Enabled\n versioningBucket:\n type: aws:s3:BucketV2\n name: versioning_bucket\n properties:\n bucket: my-versioning-bucket\n versioningBucketAcl:\n type: aws:s3:BucketAclV2\n name: versioning_bucket_acl\n properties:\n bucket: ${versioningBucket.id}\n acl: private\n versioning:\n type: aws:s3:BucketVersioningV2\n properties:\n bucket: ${versioningBucket.id}\n versioningConfiguration:\n status: Enabled\n versioning-bucket-config:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${versioningBucket.id}\n rules:\n - id: config\n filter:\n prefix: config/\n noncurrentVersionExpiration:\n noncurrentDays: 90\n noncurrentVersionTransitions:\n - noncurrentDays: 30\n storageClass: STANDARD_IA\n - noncurrentDays: 60\n storageClass: GLACIER\n status: Enabled\n options:\n dependson:\n - ${versioning}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\n__Using `pulumi import` to import__ S3 bucket lifecycle configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example:\n\nIf the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`:\n\n```sh\n$ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name\n```\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\n```sh\n$ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name,123456789012\n```\n", + "description": "Provides an independent configuration resource for S3 bucket [lifecycle configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html).\n\nAn S3 Lifecycle configuration consists of one or more Lifecycle rules. Each rule consists of the following:\n\n* Rule metadata (`id` and `status`)\n* Filter identifying objects to which the rule applies\n* One or more transition or expiration actions\n\nFor more information see the Amazon S3 User Guide on [`Lifecycle Configuration Elements`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html).\n\n\u003e **NOTE:** S3 Buckets only support a single lifecycle configuration. Declaring multiple `aws.s3.BucketLifecycleConfigurationV2` resources to the same S3 Bucket will cause a perpetual difference in configuration.\n\n\u003e **NOTE:** Lifecycle configurations may take some time to fully propagate to all AWS S3 systems.\nRunning Pulumi operations shortly after creating a lifecycle configuration may result in changes that affect configuration idempotence.\nSee the Amazon S3 User Guide on [setting lifecycle configuration on a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### With neither a filter nor prefix specified\n\nThe Lifecycle rule applies to a subset of objects based on the key name prefix (`\"\"`).\n\nThis configuration is intended to replicate the default behavior of the `lifecycle_rule`\nparameter in the AWS Provider `aws.s3.BucketV2` resource prior to `v4.0`.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying an empty filter\n\nThe Lifecycle rule applies to all objects in the bucket.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {},\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {},\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = null,\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: nil,\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter()\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter: {}\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter using key prefixes\n\nThe Lifecycle rule applies to a subset of objects based on the key name prefix (`logs/`).\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n prefix: \"logs/\",\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"prefix\": \"logs/\",\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"logs/\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"logs/\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n prefix: logs/\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIf you want to apply a Lifecycle action to a subset of objects based on different key name prefixes, specify separate rules.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [\n {\n id: \"rule-1\",\n filter: {\n prefix: \"logs/\",\n },\n status: \"Enabled\",\n },\n {\n id: \"rule-2\",\n filter: {\n prefix: \"tmp/\",\n },\n status: \"Enabled\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[\n {\n \"id\": \"rule-1\",\n \"filter\": {\n \"prefix\": \"logs/\",\n },\n \"status\": \"Enabled\",\n },\n {\n \"id\": \"rule-2\",\n \"filter\": {\n \"prefix\": \"tmp/\",\n },\n \"status\": \"Enabled\",\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 example = new Aws.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"logs/\",\n },\n Status = \"Enabled\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-2\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"tmp/\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-2\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules( \n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"logs/\")\n .build())\n .status(\"Enabled\")\n .build(),\n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-2\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"tmp/\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n prefix: logs/\n status: Enabled\n - id: rule-2\n filter:\n prefix: tmp/\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on an object tag\n\nThe Lifecycle rule specifies a filter based on a tag key and value. The rule then applies only to a subset of objects with the specific tag.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n tag: {\n key: \"Name\",\n value: \"Staging\",\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"tag\": {\n \"key\": \"Name\",\n \"value\": \"Staging\",\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Tag = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterTagArgs\n {\n Key = \"Name\",\n Value = \"Staging\",\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tTag: \u0026s3.BucketLifecycleConfigurationV2RuleFilterTagArgs{\n\t\t\t\t\t\t\tKey: pulumi.String(\"Name\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"Staging\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterTagArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .tag(BucketLifecycleConfigurationV2RuleFilterTagArgs.builder()\n .key(\"Name\")\n .value(\"Staging\")\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n tag:\n key: Name\n value: Staging\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on multiple tags\n\nThe Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with two tags (with the specific tag keys and values). Notice `tags` is wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n tags: {\n Key1: \"Value1\",\n Key2: \"Value2\",\n },\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"tags\": {\n \"key1\": \"Value1\",\n \"key2\": \"Value2\",\n },\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Tags = \n {\n { \"Key1\", \"Value1\" },\n { \"Key2\", \"Value2\" },\n },\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"Key1\": pulumi.String(\"Value1\"),\n\t\t\t\t\t\t\t\t\"Key2\": pulumi.String(\"Value2\"),\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\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .tags(Map.ofEntries(\n Map.entry(\"Key1\", \"Value1\"),\n Map.entry(\"Key2\", \"Value2\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n tags:\n Key1: Value1\n Key2: Value2\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on both prefix and one or more tags\n\nThe Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with the specified prefix and two tags (with the specific tag keys and values). Notice both `prefix` and `tags` are wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n prefix: \"logs/\",\n tags: {\n Key1: \"Value1\",\n Key2: \"Value2\",\n },\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"prefix\": \"logs/\",\n \"tags\": {\n \"key1\": \"Value1\",\n \"key2\": \"Value2\",\n },\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"logs/\",\n Tags = \n {\n { \"Key1\", \"Value1\" },\n { \"Key2\", \"Value2\" },\n },\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"Key1\": pulumi.String(\"Value1\"),\n\t\t\t\t\t\t\t\t\"Key2\": pulumi.String(\"Value2\"),\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\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"logs/\")\n .tags(Map.ofEntries(\n Map.entry(\"Key1\", \"Value1\"),\n Map.entry(\"Key2\", \"Value2\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n prefix: logs/\n tags:\n Key1: Value1\n Key2: Value2\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on object size\n\nObject size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`object_size_greater_than`) or a maximum size (`object_size_less_than`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class:\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"Allow small object transitions\",\n filter: {\n objectSizeGreaterThan: \"1\",\n },\n status: \"Enabled\",\n transitions: [{\n days: 365,\n storageClass: \"GLACIER_IR\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"Allow small object transitions\",\n \"filter\": {\n \"object_size_greater_than\": \"1\",\n },\n \"status\": \"Enabled\",\n \"transitions\": [{\n \"days\": 365,\n \"storage_class\": \"GLACIER_IR\",\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 example = new Aws.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"Allow small object transitions\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n ObjectSizeGreaterThan = \"1\",\n },\n Status = \"Enabled\",\n Transitions = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs\n {\n Days = 365,\n StorageClass = \"GLACIER_IR\",\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/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"Allow small object transitions\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tObjectSizeGreaterThan: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t\tTransitions: s3.BucketLifecycleConfigurationV2RuleTransitionArray{\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER_IR\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"Allow small object transitions\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .objectSizeGreaterThan(1)\n .build())\n .status(\"Enabled\")\n .transitions(BucketLifecycleConfigurationV2RuleTransitionArgs.builder()\n .days(365)\n .storageClass(\"GLACIER_IR\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: Allow small object transitions\n filter:\n objectSizeGreaterThan: 1\n status: Enabled\n transitions:\n - days: 365\n storageClass: GLACIER_IR\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Specifying a filter based on object size range and prefix\n\nThe `object_size_greater_than` must be less than the `object_size_less_than`. Notice both the object size range and prefix are wrapped in the `and` configuration block.\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.s3.BucketLifecycleConfigurationV2(\"example\", {\n bucket: bucket.id,\n rules: [{\n id: \"rule-1\",\n filter: {\n and: {\n prefix: \"logs/\",\n objectSizeGreaterThan: 500,\n objectSizeLessThan: 64000,\n },\n },\n status: \"Enabled\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketLifecycleConfigurationV2(\"example\",\n bucket=bucket[\"id\"],\n rules=[{\n \"id\": \"rule-1\",\n \"filter\": {\n \"and_\": {\n \"prefix\": \"logs/\",\n \"object_size_greater_than\": 500,\n \"object_size_less_than\": 64000,\n },\n },\n \"status\": \"Enabled\",\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.S3.BucketLifecycleConfigurationV2(\"example\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"rule-1\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"logs/\",\n ObjectSizeGreaterThan = 500,\n ObjectSizeLessThan = 64000,\n },\n },\n Status = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketLifecycleConfigurationV2(ctx, \"example\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: pulumi.Any(bucket.Id),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"rule-1\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"logs/\"),\n\t\t\t\t\t\t\tObjectSizeGreaterThan: pulumi.Int(500),\n\t\t\t\t\t\t\tObjectSizeLessThan: pulumi.Int(64000),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\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 BucketLifecycleConfigurationV2(\"example\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"rule-1\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"logs/\")\n .objectSizeGreaterThan(500)\n .objectSizeLessThan(64000)\n .build())\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: rule-1\n filter:\n and:\n prefix: logs/\n objectSizeGreaterThan: 500\n objectSizeLessThan: 64000\n status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a Lifecycle Configuration for a bucket with versioning\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"my-bucket\"});\nconst bucketAcl = new aws.s3.BucketAclV2(\"bucket_acl\", {\n bucket: bucket.id,\n acl: \"private\",\n});\nconst bucket_config = new aws.s3.BucketLifecycleConfigurationV2(\"bucket-config\", {\n bucket: bucket.id,\n rules: [\n {\n id: \"log\",\n expiration: {\n days: 90,\n },\n filter: {\n and: {\n prefix: \"log/\",\n tags: {\n rule: \"log\",\n autoclean: \"true\",\n },\n },\n },\n status: \"Enabled\",\n transitions: [\n {\n days: 30,\n storageClass: \"STANDARD_IA\",\n },\n {\n days: 60,\n storageClass: \"GLACIER\",\n },\n ],\n },\n {\n id: \"tmp\",\n filter: {\n prefix: \"tmp/\",\n },\n expiration: {\n date: \"2023-01-13T00:00:00Z\",\n },\n status: \"Enabled\",\n },\n ],\n});\nconst versioningBucket = new aws.s3.BucketV2(\"versioning_bucket\", {bucket: \"my-versioning-bucket\"});\nconst versioningBucketAcl = new aws.s3.BucketAclV2(\"versioning_bucket_acl\", {\n bucket: versioningBucket.id,\n acl: \"private\",\n});\nconst versioning = new aws.s3.BucketVersioningV2(\"versioning\", {\n bucket: versioningBucket.id,\n versioningConfiguration: {\n status: \"Enabled\",\n },\n});\nconst versioning_bucket_config = new aws.s3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\", {\n bucket: versioningBucket.id,\n rules: [{\n id: \"config\",\n filter: {\n prefix: \"config/\",\n },\n noncurrentVersionExpiration: {\n noncurrentDays: 90,\n },\n noncurrentVersionTransitions: [\n {\n noncurrentDays: 30,\n storageClass: \"STANDARD_IA\",\n },\n {\n noncurrentDays: 60,\n storageClass: \"GLACIER\",\n },\n ],\n status: \"Enabled\",\n }],\n}, {\n dependsOn: [versioning],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"my-bucket\")\nbucket_acl = aws.s3.BucketAclV2(\"bucket_acl\",\n bucket=bucket.id,\n acl=\"private\")\nbucket_config = aws.s3.BucketLifecycleConfigurationV2(\"bucket-config\",\n bucket=bucket.id,\n rules=[\n {\n \"id\": \"log\",\n \"expiration\": {\n \"days\": 90,\n },\n \"filter\": {\n \"and_\": {\n \"prefix\": \"log/\",\n \"tags\": {\n \"rule\": \"log\",\n \"autoclean\": \"true\",\n },\n },\n },\n \"status\": \"Enabled\",\n \"transitions\": [\n {\n \"days\": 30,\n \"storage_class\": \"STANDARD_IA\",\n },\n {\n \"days\": 60,\n \"storage_class\": \"GLACIER\",\n },\n ],\n },\n {\n \"id\": \"tmp\",\n \"filter\": {\n \"prefix\": \"tmp/\",\n },\n \"expiration\": {\n \"date\": \"2023-01-13T00:00:00Z\",\n },\n \"status\": \"Enabled\",\n },\n ])\nversioning_bucket = aws.s3.BucketV2(\"versioning_bucket\", bucket=\"my-versioning-bucket\")\nversioning_bucket_acl = aws.s3.BucketAclV2(\"versioning_bucket_acl\",\n bucket=versioning_bucket.id,\n acl=\"private\")\nversioning = aws.s3.BucketVersioningV2(\"versioning\",\n bucket=versioning_bucket.id,\n versioning_configuration={\n \"status\": \"Enabled\",\n })\nversioning_bucket_config = aws.s3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\",\n bucket=versioning_bucket.id,\n rules=[{\n \"id\": \"config\",\n \"filter\": {\n \"prefix\": \"config/\",\n },\n \"noncurrent_version_expiration\": {\n \"noncurrent_days\": 90,\n },\n \"noncurrent_version_transitions\": [\n {\n \"noncurrent_days\": 30,\n \"storage_class\": \"STANDARD_IA\",\n },\n {\n \"noncurrent_days\": 60,\n \"storage_class\": \"GLACIER\",\n },\n ],\n \"status\": \"Enabled\",\n }],\n opts = pulumi.ResourceOptions(depends_on=[versioning]))\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"my-bucket\",\n });\n\n var bucketAcl = new Aws.S3.BucketAclV2(\"bucket_acl\", new()\n {\n Bucket = bucket.Id,\n Acl = \"private\",\n });\n\n var bucket_config = new Aws.S3.BucketLifecycleConfigurationV2(\"bucket-config\", new()\n {\n Bucket = bucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"log\",\n Expiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleExpirationArgs\n {\n Days = 90,\n },\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n And = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs\n {\n Prefix = \"log/\",\n Tags = \n {\n { \"rule\", \"log\" },\n { \"autoclean\", \"true\" },\n },\n },\n },\n Status = \"Enabled\",\n Transitions = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs\n {\n Days = 30,\n StorageClass = \"STANDARD_IA\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs\n {\n Days = 60,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"tmp\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"tmp/\",\n },\n Expiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleExpirationArgs\n {\n Date = \"2023-01-13T00:00:00Z\",\n },\n Status = \"Enabled\",\n },\n },\n });\n\n var versioningBucket = new Aws.S3.BucketV2(\"versioning_bucket\", new()\n {\n Bucket = \"my-versioning-bucket\",\n });\n\n var versioningBucketAcl = new Aws.S3.BucketAclV2(\"versioning_bucket_acl\", new()\n {\n Bucket = versioningBucket.Id,\n Acl = \"private\",\n });\n\n var versioning = new Aws.S3.BucketVersioningV2(\"versioning\", new()\n {\n Bucket = versioningBucket.Id,\n VersioningConfiguration = new Aws.S3.Inputs.BucketVersioningV2VersioningConfigurationArgs\n {\n Status = \"Enabled\",\n },\n });\n\n var versioning_bucket_config = new Aws.S3.BucketLifecycleConfigurationV2(\"versioning-bucket-config\", new()\n {\n Bucket = versioningBucket.Id,\n Rules = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs\n {\n Id = \"config\",\n Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs\n {\n Prefix = \"config/\",\n },\n NoncurrentVersionExpiration = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs\n {\n NoncurrentDays = 90,\n },\n NoncurrentVersionTransitions = new[]\n {\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs\n {\n NoncurrentDays = 30,\n StorageClass = \"STANDARD_IA\",\n },\n new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs\n {\n NoncurrentDays = 60,\n StorageClass = \"GLACIER\",\n },\n },\n Status = \"Enabled\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n versioning,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketLifecycleConfigurationV2(ctx, \"bucket-config\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: bucket.ID(),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"log\"),\n\t\t\t\t\tExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tAnd: \u0026s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{\n\t\t\t\t\t\t\tPrefix: pulumi.String(\"log/\"),\n\t\t\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"rule\": pulumi.String(\"log\"),\n\t\t\t\t\t\t\t\t\"autoclean\": pulumi.String(\"true\"),\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\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t\tTransitions: s3.BucketLifecycleConfigurationV2RuleTransitionArray{\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"tmp\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"tmp/\"),\n\t\t\t\t\t},\n\t\t\t\t\tExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleExpirationArgs{\n\t\t\t\t\t\tDate: pulumi.String(\"2023-01-13T00:00:00Z\"),\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\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\tversioningBucket, err := s3.NewBucketV2(ctx, \"versioning_bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-versioning-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"versioning_bucket_acl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tversioning, err := s3.NewBucketVersioningV2(ctx, \"versioning\", \u0026s3.BucketVersioningV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tVersioningConfiguration: \u0026s3.BucketVersioningV2VersioningConfigurationArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketLifecycleConfigurationV2(ctx, \"versioning-bucket-config\", \u0026s3.BucketLifecycleConfigurationV2Args{\n\t\t\tBucket: versioningBucket.ID(),\n\t\t\tRules: s3.BucketLifecycleConfigurationV2RuleArray{\n\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleArgs{\n\t\t\t\t\tId: pulumi.String(\"config\"),\n\t\t\t\t\tFilter: \u0026s3.BucketLifecycleConfigurationV2RuleFilterArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"config/\"),\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionExpiration: \u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\tNoncurrentDays: pulumi.Int(90),\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tNoncurrentDays: pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"STANDARD_IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tNoncurrentDays: pulumi.Int(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tversioning,\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2;\nimport com.pulumi.aws.s3.BucketLifecycleConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleExpirationArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleFilterAndArgs;\nimport com.pulumi.aws.s3.BucketVersioningV2;\nimport com.pulumi.aws.s3.BucketVersioningV2Args;\nimport com.pulumi.aws.s3.inputs.BucketVersioningV2VersioningConfigurationArgs;\nimport com.pulumi.aws.s3.inputs.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"my-bucket\")\n .build());\n\n var bucketAcl = new BucketAclV2(\"bucketAcl\", BucketAclV2Args.builder()\n .bucket(bucket.id())\n .acl(\"private\")\n .build());\n\n var bucket_config = new BucketLifecycleConfigurationV2(\"bucket-config\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(bucket.id())\n .rules( \n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"log\")\n .expiration(BucketLifecycleConfigurationV2RuleExpirationArgs.builder()\n .days(90)\n .build())\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .and(BucketLifecycleConfigurationV2RuleFilterAndArgs.builder()\n .prefix(\"log/\")\n .tags(Map.ofEntries(\n Map.entry(\"rule\", \"log\"),\n Map.entry(\"autoclean\", \"true\")\n ))\n .build())\n .build())\n .status(\"Enabled\")\n .transitions( \n BucketLifecycleConfigurationV2RuleTransitionArgs.builder()\n .days(30)\n .storageClass(\"STANDARD_IA\")\n .build(),\n BucketLifecycleConfigurationV2RuleTransitionArgs.builder()\n .days(60)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"tmp\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"tmp/\")\n .build())\n .expiration(BucketLifecycleConfigurationV2RuleExpirationArgs.builder()\n .date(\"2023-01-13T00:00:00Z\")\n .build())\n .status(\"Enabled\")\n .build())\n .build());\n\n var versioningBucket = new BucketV2(\"versioningBucket\", BucketV2Args.builder()\n .bucket(\"my-versioning-bucket\")\n .build());\n\n var versioningBucketAcl = new BucketAclV2(\"versioningBucketAcl\", BucketAclV2Args.builder()\n .bucket(versioningBucket.id())\n .acl(\"private\")\n .build());\n\n var versioning = new BucketVersioningV2(\"versioning\", BucketVersioningV2Args.builder()\n .bucket(versioningBucket.id())\n .versioningConfiguration(BucketVersioningV2VersioningConfigurationArgs.builder()\n .status(\"Enabled\")\n .build())\n .build());\n\n var versioning_bucket_config = new BucketLifecycleConfigurationV2(\"versioning-bucket-config\", BucketLifecycleConfigurationV2Args.builder()\n .bucket(versioningBucket.id())\n .rules(BucketLifecycleConfigurationV2RuleArgs.builder()\n .id(\"config\")\n .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()\n .prefix(\"config/\")\n .build())\n .noncurrentVersionExpiration(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs.builder()\n .noncurrentDays(90)\n .build())\n .noncurrentVersionTransitions( \n BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs.builder()\n .noncurrentDays(30)\n .storageClass(\"STANDARD_IA\")\n .build(),\n BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs.builder()\n .noncurrentDays(60)\n .storageClass(\"GLACIER\")\n .build())\n .status(\"Enabled\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(versioning)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: my-bucket\n bucketAcl:\n type: aws:s3:BucketAclV2\n name: bucket_acl\n properties:\n bucket: ${bucket.id}\n acl: private\n bucket-config:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${bucket.id}\n rules:\n - id: log\n expiration:\n days: 90\n filter:\n and:\n prefix: log/\n tags:\n rule: log\n autoclean: 'true'\n status: Enabled\n transitions:\n - days: 30\n storageClass: STANDARD_IA\n - days: 60\n storageClass: GLACIER\n - id: tmp\n filter:\n prefix: tmp/\n expiration:\n date: 2023-01-13T00:00:00Z\n status: Enabled\n versioningBucket:\n type: aws:s3:BucketV2\n name: versioning_bucket\n properties:\n bucket: my-versioning-bucket\n versioningBucketAcl:\n type: aws:s3:BucketAclV2\n name: versioning_bucket_acl\n properties:\n bucket: ${versioningBucket.id}\n acl: private\n versioning:\n type: aws:s3:BucketVersioningV2\n properties:\n bucket: ${versioningBucket.id}\n versioningConfiguration:\n status: Enabled\n versioning-bucket-config:\n type: aws:s3:BucketLifecycleConfigurationV2\n properties:\n bucket: ${versioningBucket.id}\n rules:\n - id: config\n filter:\n prefix: config/\n noncurrentVersionExpiration:\n noncurrentDays: 90\n noncurrentVersionTransitions:\n - noncurrentDays: 30\n storageClass: STANDARD_IA\n - noncurrentDays: 60\n storageClass: GLACIER\n status: Enabled\n options:\n dependson:\n - ${versioning}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\n__Using `pulumi import` to import__ S3 bucket lifecycle configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example:\n\nIf the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`:\n\n```sh\n$ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name\n```\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\n```sh\n$ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name,123456789012\n```\n", "properties": { "bucket": { "type": "string", @@ -340136,11 +340811,16 @@ "$ref": "#/types/aws:s3/BucketLifecycleConfigurationV2Rule:BucketLifecycleConfigurationV2Rule" }, "description": "List of configuration blocks describing the rules managing the replication. See below.\n" + }, + "transitionDefaultMinimumObjectSize": { + "type": "string", + "description": "The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.\n" } }, "required": [ "bucket", - "rules" + "rules", + "transitionDefaultMinimumObjectSize" ], "inputProperties": { "bucket": { @@ -340159,6 +340839,10 @@ "$ref": "#/types/aws:s3/BucketLifecycleConfigurationV2Rule:BucketLifecycleConfigurationV2Rule" }, "description": "List of configuration blocks describing the rules managing the replication. See below.\n" + }, + "transitionDefaultMinimumObjectSize": { + "type": "string", + "description": "The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.\n" } }, "requiredInputs": [ @@ -340184,6 +340868,10 @@ "$ref": "#/types/aws:s3/BucketLifecycleConfigurationV2Rule:BucketLifecycleConfigurationV2Rule" }, "description": "List of configuration blocks describing the rules managing the replication. See below.\n" + }, + "transitionDefaultMinimumObjectSize": { + "type": "string", + "description": "The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.\n" } }, "type": "object" @@ -340358,7 +341046,7 @@ } }, "aws:s3/bucketNotification:BucketNotification": { - "description": "Manages a S3 Bucket Notification Configuration. For additional information, see the [Configuring S3 Event Notifications section in the Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html).\n\n\u003e **NOTE:** S3 Buckets only support a single notification configuration resource. Declaring multiple `aws.s3.BucketNotification` resources to the same S3 Bucket will cause a perpetual difference in configuration. This resource will overwrite any existing event notifications configured for the S3 bucket it's associated with. See the example \"Trigger multiple Lambda functions\" for an option of how to configure multiple triggers within this resource.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Add notification configuration to SNS Topic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst topic = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"s3.amazonaws.com\"],\n }],\n actions: [\"SNS:Publish\"],\n resources: [\"arn:aws:sns:*:*:s3-event-notification-topic\"],\n conditions: [{\n test: \"ArnLike\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst topicTopic = new aws.sns.Topic(\"topic\", {\n name: \"s3-event-notification-topic\",\n policy: topic.apply(topic =\u003e topic.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n topics: [{\n topicArn: topicTopic.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterSuffix: \".log\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\ntopic = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"s3.amazonaws.com\"],\n }],\n \"actions\": [\"SNS:Publish\"],\n \"resources\": [\"arn:aws:sns:*:*:s3-event-notification-topic\"],\n \"conditions\": [{\n \"test\": \"ArnLike\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\ntopic_topic = aws.sns.Topic(\"topic\",\n name=\"s3-event-notification-topic\",\n policy=topic.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n topics=[{\n \"topic_arn\": topic_topic.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_suffix\": \".log\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var topic = 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 \"s3.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"SNS:Publish\",\n },\n Resources = new[]\n {\n \"arn:aws:sns:*:*:s3-event-notification-topic\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnLike\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var topicTopic = new Aws.Sns.Topic(\"topic\", new()\n {\n Name = \"s3-event-notification-topic\",\n Policy = topic.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Topics = new[]\n {\n new Aws.S3.Inputs.BucketNotificationTopicArgs\n {\n TopicArn = topicTopic.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterSuffix = \".log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"s3.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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SNS:Publish\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sns:*:*:s3-event-notification-topic\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnLike\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\ttopicTopic, err := sns.NewTopic(ctx, \"topic\", \u0026sns.TopicArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-topic\"),\n\t\t\tPolicy: pulumi.String(topic.ApplyT(func(topic iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026topic.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tTopics: s3.BucketNotificationTopicArray{\n\t\t\t\t\u0026s3.BucketNotificationTopicArgs{\n\t\t\t\t\tTopicArn: topicTopic.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sns.Topic;\nimport com.pulumi.aws.sns.TopicArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationTopicArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var topic = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"s3.amazonaws.com\")\n .build())\n .actions(\"SNS:Publish\")\n .resources(\"arn:aws:sns:*:*:s3-event-notification-topic\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnLike\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var topicTopic = new Topic(\"topicTopic\", TopicArgs.builder()\n .name(\"s3-event-notification-topic\")\n .policy(topic.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(topic -\u003e topic.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .topics(BucketNotificationTopicArgs.builder()\n .topicArn(topicTopic.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterSuffix(\".log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topicTopic:\n type: aws:sns:Topic\n name: topic\n properties:\n name: s3-event-notification-topic\n policy: ${topic.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n topics:\n - topicArn: ${topicTopic.arn}\n events:\n - s3:ObjectCreated:*\n filterSuffix: .log\nvariables:\n topic:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - s3.amazonaws.com\n actions:\n - SNS:Publish\n resources:\n - arn:aws:sns:*:*:s3-event-notification-topic\n conditions:\n - test: ArnLike\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add notification configuration to SQS Queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst queue = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"*\",\n identifiers: [\"*\"],\n }],\n actions: [\"sqs:SendMessage\"],\n resources: [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n conditions: [{\n test: \"ArnEquals\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst queueQueue = new aws.sqs.Queue(\"queue\", {\n name: \"s3-event-notification-queue\",\n policy: queue.apply(queue =\u003e queue.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n queues: [{\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterSuffix: \".log\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nqueue = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"*\",\n \"identifiers\": [\"*\"],\n }],\n \"actions\": [\"sqs:SendMessage\"],\n \"resources\": [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n \"conditions\": [{\n \"test\": \"ArnEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\nqueue_queue = aws.sqs.Queue(\"queue\",\n name=\"s3-event-notification-queue\",\n policy=queue.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n queues=[{\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_suffix\": \".log\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var queue = 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 = \"*\",\n Identifiers = new[]\n {\n \"*\",\n },\n },\n },\n Actions = new[]\n {\n \"sqs:SendMessage\",\n },\n Resources = new[]\n {\n \"arn:aws:sqs:*:*:s3-event-notification-queue\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var queueQueue = new Aws.Sqs.Queue(\"queue\", new()\n {\n Name = \"s3-event-notification-queue\",\n Policy = queue.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Queues = new[]\n {\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterSuffix = \".log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueue := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"*\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"*\"),\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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sqs:SendMessage\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sqs:*:*:s3-event-notification-queue\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\tqueueQueue, err := sqs.NewQueue(ctx, \"queue\", \u0026sqs.QueueArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-queue\"),\n\t\t\tPolicy: pulumi.String(queue.ApplyT(func(queue iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026queue.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tQueues: s3.BucketNotificationQueueArray{\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.sqs.QueueArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationQueueArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var queue = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"*\")\n .identifiers(\"*\")\n .build())\n .actions(\"sqs:SendMessage\")\n .resources(\"arn:aws:sqs:*:*:s3-event-notification-queue\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnEquals\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var queueQueue = new Queue(\"queueQueue\", QueueArgs.builder()\n .name(\"s3-event-notification-queue\")\n .policy(queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(queue -\u003e queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .queues(BucketNotificationQueueArgs.builder()\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterSuffix(\".log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n queueQueue:\n type: aws:sqs:Queue\n name: queue\n properties:\n name: s3-event-notification-queue\n policy: ${queue.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n queues:\n - queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterSuffix: .log\nvariables:\n queue:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: '*'\n identifiers:\n - '*'\n actions:\n - sqs:SendMessage\n resources:\n - arn:aws:sqs:*:*:s3-event-notification-queue\n conditions:\n - test: ArnEquals\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add notification configuration to Lambda Function\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst func = new aws.lambda.Function(\"func\", {\n code: new pulumi.asset.FileArchive(\"your-function.zip\"),\n name: \"example_lambda_name\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n runtime: aws.lambda.Runtime.Go1dx,\n});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst allowBucket = new aws.lambda.Permission(\"allow_bucket\", {\n statementId: \"AllowExecutionFromS3Bucket\",\n action: \"lambda:InvokeFunction\",\n \"function\": func.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n lambdaFunctions: [{\n lambdaFunctionArn: func.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"AWSLogs/\",\n filterSuffix: \".log\",\n }],\n}, {\n dependsOn: [allowBucket],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\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}])\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=assume_role.json)\nfunc = aws.lambda_.Function(\"func\",\n code=pulumi.FileArchive(\"your-function.zip\"),\n name=\"example_lambda_name\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\",\n runtime=aws.lambda_.Runtime.GO1DX)\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nallow_bucket = aws.lambda_.Permission(\"allow_bucket\",\n statement_id=\"AllowExecutionFromS3Bucket\",\n action=\"lambda:InvokeFunction\",\n function=func.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n lambda_functions=[{\n \"lambda_function_arn\": func.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"AWSLogs/\",\n \"filter_suffix\": \".log\",\n }],\n opts = pulumi.ResourceOptions(depends_on=[allow_bucket]))\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 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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var func = new Aws.Lambda.Function(\"func\", new()\n {\n Code = new FileArchive(\"your-function.zip\"),\n Name = \"example_lambda_name\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n Runtime = Aws.Lambda.Runtime.Go1dx,\n });\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var allowBucket = new Aws.Lambda.Permission(\"allow_bucket\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket\",\n Action = \"lambda:InvokeFunction\",\n Function = func.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n LambdaFunctions = new[]\n {\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"AWSLogs/\",\n FilterSuffix = \".log\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n allowBucket,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\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-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\t_, err = lambda.NewFunction(ctx, \"func\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeGo1dx),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket, err := lambda.NewPermission(ctx, \"allow_bucket\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: _func.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tLambdaFunctions: s3.BucketNotificationLambdaFunctionArray{\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: _func.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"AWSLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tallowBucket,\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.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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 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 iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var func = new Function(\"func\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function.zip\"))\n .name(\"example_lambda_name\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .runtime(\"go1.x\")\n .build());\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var allowBucket = new Permission(\"allowBucket\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket\")\n .action(\"lambda:InvokeFunction\")\n .function(func.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"AWSLogs/\")\n .filterSuffix(\".log\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(allowBucket)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy: ${assumeRole.json}\n allowBucket:\n type: aws:lambda:Permission\n name: allow_bucket\n properties:\n statementId: AllowExecutionFromS3Bucket\n action: lambda:InvokeFunction\n function: ${func.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function.zip\n name: example_lambda_name\n role: ${iamForLambda.arn}\n handler: exports.example\n runtime: go1.x\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n lambdaFunctions:\n - lambdaFunctionArn: ${func.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: AWSLogs/\n filterSuffix: .log\n options:\n dependson:\n - ${allowBucket}\nvariables:\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### Trigger multiple Lambda functions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst func1 = new aws.lambda.Function(\"func1\", {\n code: new pulumi.asset.FileArchive(\"your-function1.zip\"),\n name: \"example_lambda_name1\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n runtime: aws.lambda.Runtime.Go1dx,\n});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst allowBucket1 = new aws.lambda.Permission(\"allow_bucket1\", {\n statementId: \"AllowExecutionFromS3Bucket1\",\n action: \"lambda:InvokeFunction\",\n \"function\": func1.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst func2 = new aws.lambda.Function(\"func2\", {\n code: new pulumi.asset.FileArchive(\"your-function2.zip\"),\n name: \"example_lambda_name2\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n});\nconst allowBucket2 = new aws.lambda.Permission(\"allow_bucket2\", {\n statementId: \"AllowExecutionFromS3Bucket2\",\n action: \"lambda:InvokeFunction\",\n \"function\": func2.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n lambdaFunctions: [\n {\n lambdaFunctionArn: func1.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"AWSLogs/\",\n filterSuffix: \".log\",\n },\n {\n lambdaFunctionArn: func2.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"OtherLogs/\",\n filterSuffix: \".log\",\n },\n ],\n}, {\n dependsOn: [\n allowBucket1,\n allowBucket2,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\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}])\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=assume_role.json)\nfunc1 = aws.lambda_.Function(\"func1\",\n code=pulumi.FileArchive(\"your-function1.zip\"),\n name=\"example_lambda_name1\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\",\n runtime=aws.lambda_.Runtime.GO1DX)\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nallow_bucket1 = aws.lambda_.Permission(\"allow_bucket1\",\n statement_id=\"AllowExecutionFromS3Bucket1\",\n action=\"lambda:InvokeFunction\",\n function=func1.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nfunc2 = aws.lambda_.Function(\"func2\",\n code=pulumi.FileArchive(\"your-function2.zip\"),\n name=\"example_lambda_name2\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\")\nallow_bucket2 = aws.lambda_.Permission(\"allow_bucket2\",\n statement_id=\"AllowExecutionFromS3Bucket2\",\n action=\"lambda:InvokeFunction\",\n function=func2.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n lambda_functions=[\n {\n \"lambda_function_arn\": func1.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"AWSLogs/\",\n \"filter_suffix\": \".log\",\n },\n {\n \"lambda_function_arn\": func2.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"OtherLogs/\",\n \"filter_suffix\": \".log\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n allow_bucket1,\n allow_bucket2,\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 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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var func1 = new Aws.Lambda.Function(\"func1\", new()\n {\n Code = new FileArchive(\"your-function1.zip\"),\n Name = \"example_lambda_name1\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n Runtime = Aws.Lambda.Runtime.Go1dx,\n });\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var allowBucket1 = new Aws.Lambda.Permission(\"allow_bucket1\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket1\",\n Action = \"lambda:InvokeFunction\",\n Function = func1.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var func2 = new Aws.Lambda.Function(\"func2\", new()\n {\n Code = new FileArchive(\"your-function2.zip\"),\n Name = \"example_lambda_name2\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n });\n\n var allowBucket2 = new Aws.Lambda.Permission(\"allow_bucket2\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket2\",\n Action = \"lambda:InvokeFunction\",\n Function = func2.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n LambdaFunctions = new[]\n {\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func1.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"AWSLogs/\",\n FilterSuffix = \".log\",\n },\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func2.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"OtherLogs/\",\n FilterSuffix = \".log\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n allowBucket1,\n allowBucket2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\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-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\tfunc1, err := lambda.NewFunction(ctx, \"func1\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function1.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name1\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeGo1dx),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket1, err := lambda.NewPermission(ctx, \"allow_bucket1\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket1\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: func1.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunc2, err := lambda.NewFunction(ctx, \"func2\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function2.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name2\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket2, err := lambda.NewPermission(ctx, \"allow_bucket2\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket2\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: func2.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tLambdaFunctions: s3.BucketNotificationLambdaFunctionArray{\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: func1.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"AWSLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: func2.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"OtherLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tallowBucket1,\n\t\t\tallowBucket2,\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.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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 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 iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var func1 = new Function(\"func1\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function1.zip\"))\n .name(\"example_lambda_name1\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .runtime(\"go1.x\")\n .build());\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var allowBucket1 = new Permission(\"allowBucket1\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket1\")\n .action(\"lambda:InvokeFunction\")\n .function(func1.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var func2 = new Function(\"func2\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function2.zip\"))\n .name(\"example_lambda_name2\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .build());\n\n var allowBucket2 = new Permission(\"allowBucket2\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket2\")\n .action(\"lambda:InvokeFunction\")\n .function(func2.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .lambdaFunctions( \n BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func1.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"AWSLogs/\")\n .filterSuffix(\".log\")\n .build(),\n BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func2.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"OtherLogs/\")\n .filterSuffix(\".log\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n allowBucket1,\n allowBucket2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy: ${assumeRole.json}\n allowBucket1:\n type: aws:lambda:Permission\n name: allow_bucket1\n properties:\n statementId: AllowExecutionFromS3Bucket1\n action: lambda:InvokeFunction\n function: ${func1.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func1:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function1.zip\n name: example_lambda_name1\n role: ${iamForLambda.arn}\n handler: exports.example\n runtime: go1.x\n allowBucket2:\n type: aws:lambda:Permission\n name: allow_bucket2\n properties:\n statementId: AllowExecutionFromS3Bucket2\n action: lambda:InvokeFunction\n function: ${func2.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func2:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function2.zip\n name: example_lambda_name2\n role: ${iamForLambda.arn}\n handler: exports.example\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n lambdaFunctions:\n - lambdaFunctionArn: ${func1.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: AWSLogs/\n filterSuffix: .log\n - lambdaFunctionArn: ${func2.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: OtherLogs/\n filterSuffix: .log\n options:\n dependson:\n - ${allowBucket1}\n - ${allowBucket2}\nvariables:\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### Add multiple notification configurations to SQS Queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst queue = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"*\",\n identifiers: [\"*\"],\n }],\n actions: [\"sqs:SendMessage\"],\n resources: [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n conditions: [{\n test: \"ArnEquals\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst queueQueue = new aws.sqs.Queue(\"queue\", {\n name: \"s3-event-notification-queue\",\n policy: queue.apply(queue =\u003e queue.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n queues: [\n {\n id: \"image-upload-event\",\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"images/\",\n },\n {\n id: \"video-upload-event\",\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"videos/\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nqueue = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"*\",\n \"identifiers\": [\"*\"],\n }],\n \"actions\": [\"sqs:SendMessage\"],\n \"resources\": [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n \"conditions\": [{\n \"test\": \"ArnEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\nqueue_queue = aws.sqs.Queue(\"queue\",\n name=\"s3-event-notification-queue\",\n policy=queue.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n queues=[\n {\n \"id\": \"image-upload-event\",\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"images/\",\n },\n {\n \"id\": \"video-upload-event\",\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"videos/\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var queue = 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 = \"*\",\n Identifiers = new[]\n {\n \"*\",\n },\n },\n },\n Actions = new[]\n {\n \"sqs:SendMessage\",\n },\n Resources = new[]\n {\n \"arn:aws:sqs:*:*:s3-event-notification-queue\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var queueQueue = new Aws.Sqs.Queue(\"queue\", new()\n {\n Name = \"s3-event-notification-queue\",\n Policy = queue.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Queues = new[]\n {\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n Id = \"image-upload-event\",\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"images/\",\n },\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n Id = \"video-upload-event\",\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"videos/\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueue := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"*\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"*\"),\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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sqs:SendMessage\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sqs:*:*:s3-event-notification-queue\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\tqueueQueue, err := sqs.NewQueue(ctx, \"queue\", \u0026sqs.QueueArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-queue\"),\n\t\t\tPolicy: pulumi.String(queue.ApplyT(func(queue iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026queue.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tQueues: s3.BucketNotificationQueueArray{\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tId: pulumi.String(\"image-upload-event\"),\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"images/\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tId: pulumi.String(\"video-upload-event\"),\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"videos/\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.sqs.QueueArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationQueueArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var queue = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"*\")\n .identifiers(\"*\")\n .build())\n .actions(\"sqs:SendMessage\")\n .resources(\"arn:aws:sqs:*:*:s3-event-notification-queue\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnEquals\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var queueQueue = new Queue(\"queueQueue\", QueueArgs.builder()\n .name(\"s3-event-notification-queue\")\n .policy(queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(queue -\u003e queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .queues( \n BucketNotificationQueueArgs.builder()\n .id(\"image-upload-event\")\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"images/\")\n .build(),\n BucketNotificationQueueArgs.builder()\n .id(\"video-upload-event\")\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"videos/\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n queueQueue:\n type: aws:sqs:Queue\n name: queue\n properties:\n name: s3-event-notification-queue\n policy: ${queue.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n queues:\n - id: image-upload-event\n queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: images/\n - id: video-upload-event\n queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: videos/\nvariables:\n queue:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: '*'\n identifiers:\n - '*'\n actions:\n - sqs:SendMessage\n resources:\n - arn:aws:sqs:*:*:s3-event-notification-queue\n conditions:\n - test: ArnEquals\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor JSON syntax, use an array instead of defining the `queue` key twice.\n\n```json\n{\n\t\"bucket\": \"${aws_s3_bucket.bucket.id}\",\n\t\"queue\": [\n\t\t{\n\t\t\t\"id\": \"image-upload-event\",\n\t\t\t\"queue_arn\": \"${aws_sqs_queue.queue.arn}\",\n\t\t\t\"events\": [\"s3:ObjectCreated:*\"],\n\t\t\t\"filter_prefix\": \"images/\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"video-upload-event\",\n\t\t\t\"queue_arn\": \"${aws_sqs_queue.queue.arn}\",\n\t\t\t\"events\": [\"s3:ObjectCreated:*\"],\n\t\t\t\"filter_prefix\": \"videos/\"\n\t\t}\n\t]\n}\n```\n\n### Emit events to EventBridge\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n eventbridge: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n eventbridge=True)\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Eventbridge = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tEventbridge: pulumi.Bool(true),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .eventbridge(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n eventbridge: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import S3 bucket notification using the `bucket`. For example:\n\n```sh\n$ pulumi import aws:s3/bucketNotification:BucketNotification bucket_notification bucket-name\n```\n", + "description": "Manages a S3 Bucket Notification Configuration. For additional information, see the [Configuring S3 Event Notifications section in the Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html).\n\n\u003e **NOTE:** S3 Buckets only support a single notification configuration resource. Declaring multiple `aws.s3.BucketNotification` resources to the same S3 Bucket will cause a perpetual difference in configuration. This resource will overwrite any existing event notifications configured for the S3 bucket it's associated with. See the example \"Trigger multiple Lambda functions\" for an option of how to configure multiple triggers within this resource.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Add notification configuration to SNS Topic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst topic = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"s3.amazonaws.com\"],\n }],\n actions: [\"SNS:Publish\"],\n resources: [\"arn:aws:sns:*:*:s3-event-notification-topic\"],\n conditions: [{\n test: \"ArnLike\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst topicTopic = new aws.sns.Topic(\"topic\", {\n name: \"s3-event-notification-topic\",\n policy: topic.apply(topic =\u003e topic.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n topics: [{\n topicArn: topicTopic.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterSuffix: \".log\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\ntopic = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"s3.amazonaws.com\"],\n }],\n \"actions\": [\"SNS:Publish\"],\n \"resources\": [\"arn:aws:sns:*:*:s3-event-notification-topic\"],\n \"conditions\": [{\n \"test\": \"ArnLike\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\ntopic_topic = aws.sns.Topic(\"topic\",\n name=\"s3-event-notification-topic\",\n policy=topic.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n topics=[{\n \"topic_arn\": topic_topic.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_suffix\": \".log\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var topic = 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 \"s3.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"SNS:Publish\",\n },\n Resources = new[]\n {\n \"arn:aws:sns:*:*:s3-event-notification-topic\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnLike\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var topicTopic = new Aws.Sns.Topic(\"topic\", new()\n {\n Name = \"s3-event-notification-topic\",\n Policy = topic.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Topics = new[]\n {\n new Aws.S3.Inputs.BucketNotificationTopicArgs\n {\n TopicArn = topicTopic.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterSuffix = \".log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"s3.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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SNS:Publish\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sns:*:*:s3-event-notification-topic\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnLike\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\ttopicTopic, err := sns.NewTopic(ctx, \"topic\", \u0026sns.TopicArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-topic\"),\n\t\t\tPolicy: pulumi.String(topic.ApplyT(func(topic iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026topic.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tTopics: s3.BucketNotificationTopicArray{\n\t\t\t\t\u0026s3.BucketNotificationTopicArgs{\n\t\t\t\t\tTopicArn: topicTopic.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sns.Topic;\nimport com.pulumi.aws.sns.TopicArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationTopicArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var topic = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"s3.amazonaws.com\")\n .build())\n .actions(\"SNS:Publish\")\n .resources(\"arn:aws:sns:*:*:s3-event-notification-topic\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnLike\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var topicTopic = new Topic(\"topicTopic\", TopicArgs.builder()\n .name(\"s3-event-notification-topic\")\n .policy(topic.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(topic -\u003e topic.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .topics(BucketNotificationTopicArgs.builder()\n .topicArn(topicTopic.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterSuffix(\".log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n topicTopic:\n type: aws:sns:Topic\n name: topic\n properties:\n name: s3-event-notification-topic\n policy: ${topic.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n topics:\n - topicArn: ${topicTopic.arn}\n events:\n - s3:ObjectCreated:*\n filterSuffix: .log\nvariables:\n topic:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - s3.amazonaws.com\n actions:\n - SNS:Publish\n resources:\n - arn:aws:sns:*:*:s3-event-notification-topic\n conditions:\n - test: ArnLike\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add notification configuration to SQS Queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst queue = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"*\",\n identifiers: [\"*\"],\n }],\n actions: [\"sqs:SendMessage\"],\n resources: [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n conditions: [{\n test: \"ArnEquals\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst queueQueue = new aws.sqs.Queue(\"queue\", {\n name: \"s3-event-notification-queue\",\n policy: queue.apply(queue =\u003e queue.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n queues: [{\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterSuffix: \".log\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nqueue = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"*\",\n \"identifiers\": [\"*\"],\n }],\n \"actions\": [\"sqs:SendMessage\"],\n \"resources\": [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n \"conditions\": [{\n \"test\": \"ArnEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\nqueue_queue = aws.sqs.Queue(\"queue\",\n name=\"s3-event-notification-queue\",\n policy=queue.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n queues=[{\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_suffix\": \".log\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var queue = 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 = \"*\",\n Identifiers = new[]\n {\n \"*\",\n },\n },\n },\n Actions = new[]\n {\n \"sqs:SendMessage\",\n },\n Resources = new[]\n {\n \"arn:aws:sqs:*:*:s3-event-notification-queue\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var queueQueue = new Aws.Sqs.Queue(\"queue\", new()\n {\n Name = \"s3-event-notification-queue\",\n Policy = queue.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Queues = new[]\n {\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterSuffix = \".log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueue := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"*\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"*\"),\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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sqs:SendMessage\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sqs:*:*:s3-event-notification-queue\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\tqueueQueue, err := sqs.NewQueue(ctx, \"queue\", \u0026sqs.QueueArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-queue\"),\n\t\t\tPolicy: pulumi.String(queue.ApplyT(func(queue iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026queue.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tQueues: s3.BucketNotificationQueueArray{\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.sqs.QueueArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationQueueArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var queue = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"*\")\n .identifiers(\"*\")\n .build())\n .actions(\"sqs:SendMessage\")\n .resources(\"arn:aws:sqs:*:*:s3-event-notification-queue\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnEquals\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var queueQueue = new Queue(\"queueQueue\", QueueArgs.builder()\n .name(\"s3-event-notification-queue\")\n .policy(queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(queue -\u003e queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .queues(BucketNotificationQueueArgs.builder()\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterSuffix(\".log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n queueQueue:\n type: aws:sqs:Queue\n name: queue\n properties:\n name: s3-event-notification-queue\n policy: ${queue.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n queues:\n - queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterSuffix: .log\nvariables:\n queue:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: '*'\n identifiers:\n - '*'\n actions:\n - sqs:SendMessage\n resources:\n - arn:aws:sqs:*:*:s3-event-notification-queue\n conditions:\n - test: ArnEquals\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add notification configuration to Lambda Function\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst func = new aws.lambda.Function(\"func\", {\n code: new pulumi.asset.FileArchive(\"your-function.zip\"),\n name: \"example_lambda_name\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n runtime: aws.lambda.Runtime.NodeJS20dX,\n});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst allowBucket = new aws.lambda.Permission(\"allow_bucket\", {\n statementId: \"AllowExecutionFromS3Bucket\",\n action: \"lambda:InvokeFunction\",\n \"function\": func.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n lambdaFunctions: [{\n lambdaFunctionArn: func.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"AWSLogs/\",\n filterSuffix: \".log\",\n }],\n}, {\n dependsOn: [allowBucket],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\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}])\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=assume_role.json)\nfunc = aws.lambda_.Function(\"func\",\n code=pulumi.FileArchive(\"your-function.zip\"),\n name=\"example_lambda_name\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\",\n runtime=aws.lambda_.Runtime.NODE_JS20D_X)\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nallow_bucket = aws.lambda_.Permission(\"allow_bucket\",\n statement_id=\"AllowExecutionFromS3Bucket\",\n action=\"lambda:InvokeFunction\",\n function=func.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n lambda_functions=[{\n \"lambda_function_arn\": func.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"AWSLogs/\",\n \"filter_suffix\": \".log\",\n }],\n opts = pulumi.ResourceOptions(depends_on=[allow_bucket]))\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 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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var func = new Aws.Lambda.Function(\"func\", new()\n {\n Code = new FileArchive(\"your-function.zip\"),\n Name = \"example_lambda_name\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n Runtime = Aws.Lambda.Runtime.NodeJS20dX,\n });\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var allowBucket = new Aws.Lambda.Permission(\"allow_bucket\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket\",\n Action = \"lambda:InvokeFunction\",\n Function = func.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n LambdaFunctions = new[]\n {\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"AWSLogs/\",\n FilterSuffix = \".log\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n allowBucket,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\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-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\t_, err = lambda.NewFunction(ctx, \"func\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS20dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket, err := lambda.NewPermission(ctx, \"allow_bucket\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: _func.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tLambdaFunctions: s3.BucketNotificationLambdaFunctionArray{\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: _func.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"AWSLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tallowBucket,\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.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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 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 iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var func = new Function(\"func\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function.zip\"))\n .name(\"example_lambda_name\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .runtime(\"nodejs20.x\")\n .build());\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var allowBucket = new Permission(\"allowBucket\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket\")\n .action(\"lambda:InvokeFunction\")\n .function(func.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"AWSLogs/\")\n .filterSuffix(\".log\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(allowBucket)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy: ${assumeRole.json}\n allowBucket:\n type: aws:lambda:Permission\n name: allow_bucket\n properties:\n statementId: AllowExecutionFromS3Bucket\n action: lambda:InvokeFunction\n function: ${func.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function.zip\n name: example_lambda_name\n role: ${iamForLambda.arn}\n handler: exports.example\n runtime: nodejs20.x\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n lambdaFunctions:\n - lambdaFunctionArn: ${func.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: AWSLogs/\n filterSuffix: .log\n options:\n dependson:\n - ${allowBucket}\nvariables:\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### Trigger multiple Lambda functions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\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 iamForLambda = new aws.iam.Role(\"iam_for_lambda\", {\n name: \"iam_for_lambda\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst func1 = new aws.lambda.Function(\"func1\", {\n code: new pulumi.asset.FileArchive(\"your-function1.zip\"),\n name: \"example_lambda_name1\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n runtime: aws.lambda.Runtime.NodeJS20dX,\n});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst allowBucket1 = new aws.lambda.Permission(\"allow_bucket1\", {\n statementId: \"AllowExecutionFromS3Bucket1\",\n action: \"lambda:InvokeFunction\",\n \"function\": func1.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst func2 = new aws.lambda.Function(\"func2\", {\n code: new pulumi.asset.FileArchive(\"your-function2.zip\"),\n name: \"example_lambda_name2\",\n role: iamForLambda.arn,\n handler: \"exports.example\",\n});\nconst allowBucket2 = new aws.lambda.Permission(\"allow_bucket2\", {\n statementId: \"AllowExecutionFromS3Bucket2\",\n action: \"lambda:InvokeFunction\",\n \"function\": func2.arn,\n principal: \"s3.amazonaws.com\",\n sourceArn: bucket.arn,\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n lambdaFunctions: [\n {\n lambdaFunctionArn: func1.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"AWSLogs/\",\n filterSuffix: \".log\",\n },\n {\n lambdaFunctionArn: func2.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"OtherLogs/\",\n filterSuffix: \".log\",\n },\n ],\n}, {\n dependsOn: [\n allowBucket1,\n allowBucket2,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\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}])\niam_for_lambda = aws.iam.Role(\"iam_for_lambda\",\n name=\"iam_for_lambda\",\n assume_role_policy=assume_role.json)\nfunc1 = aws.lambda_.Function(\"func1\",\n code=pulumi.FileArchive(\"your-function1.zip\"),\n name=\"example_lambda_name1\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\",\n runtime=aws.lambda_.Runtime.NODE_JS20D_X)\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nallow_bucket1 = aws.lambda_.Permission(\"allow_bucket1\",\n statement_id=\"AllowExecutionFromS3Bucket1\",\n action=\"lambda:InvokeFunction\",\n function=func1.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nfunc2 = aws.lambda_.Function(\"func2\",\n code=pulumi.FileArchive(\"your-function2.zip\"),\n name=\"example_lambda_name2\",\n role=iam_for_lambda.arn,\n handler=\"exports.example\")\nallow_bucket2 = aws.lambda_.Permission(\"allow_bucket2\",\n statement_id=\"AllowExecutionFromS3Bucket2\",\n action=\"lambda:InvokeFunction\",\n function=func2.arn,\n principal=\"s3.amazonaws.com\",\n source_arn=bucket.arn)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n lambda_functions=[\n {\n \"lambda_function_arn\": func1.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"AWSLogs/\",\n \"filter_suffix\": \".log\",\n },\n {\n \"lambda_function_arn\": func2.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"OtherLogs/\",\n \"filter_suffix\": \".log\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n allow_bucket1,\n allow_bucket2,\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 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 iamForLambda = new Aws.Iam.Role(\"iam_for_lambda\", new()\n {\n Name = \"iam_for_lambda\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var func1 = new Aws.Lambda.Function(\"func1\", new()\n {\n Code = new FileArchive(\"your-function1.zip\"),\n Name = \"example_lambda_name1\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n Runtime = Aws.Lambda.Runtime.NodeJS20dX,\n });\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var allowBucket1 = new Aws.Lambda.Permission(\"allow_bucket1\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket1\",\n Action = \"lambda:InvokeFunction\",\n Function = func1.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var func2 = new Aws.Lambda.Function(\"func2\", new()\n {\n Code = new FileArchive(\"your-function2.zip\"),\n Name = \"example_lambda_name2\",\n Role = iamForLambda.Arn,\n Handler = \"exports.example\",\n });\n\n var allowBucket2 = new Aws.Lambda.Permission(\"allow_bucket2\", new()\n {\n StatementId = \"AllowExecutionFromS3Bucket2\",\n Action = \"lambda:InvokeFunction\",\n Function = func2.Arn,\n Principal = \"s3.amazonaws.com\",\n SourceArn = bucket.Arn,\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n LambdaFunctions = new[]\n {\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func1.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"AWSLogs/\",\n FilterSuffix = \".log\",\n },\n new Aws.S3.Inputs.BucketNotificationLambdaFunctionArgs\n {\n LambdaFunctionArn = func2.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"OtherLogs/\",\n FilterSuffix = \".log\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n allowBucket1,\n allowBucket2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\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-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\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\tiamForLambda, err := iam.NewRole(ctx, \"iam_for_lambda\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"iam_for_lambda\"),\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\tfunc1, err := lambda.NewFunction(ctx, \"func1\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function1.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name1\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t\tRuntime: pulumi.String(lambda.RuntimeNodeJS20dX),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket1, err := lambda.NewPermission(ctx, \"allow_bucket1\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket1\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: func1.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunc2, err := lambda.NewFunction(ctx, \"func2\", \u0026lambda.FunctionArgs{\n\t\t\tCode: pulumi.NewFileArchive(\"your-function2.zip\"),\n\t\t\tName: pulumi.String(\"example_lambda_name2\"),\n\t\t\tRole: iamForLambda.Arn,\n\t\t\tHandler: pulumi.String(\"exports.example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallowBucket2, err := lambda.NewPermission(ctx, \"allow_bucket2\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromS3Bucket2\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: func2.Arn,\n\t\t\tPrincipal: pulumi.String(\"s3.amazonaws.com\"),\n\t\t\tSourceArn: bucket.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tLambdaFunctions: s3.BucketNotificationLambdaFunctionArray{\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: func1.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"AWSLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketNotificationLambdaFunctionArgs{\n\t\t\t\t\tLambdaFunctionArn: func2.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"OtherLogs/\"),\n\t\t\t\t\tFilterSuffix: pulumi.String(\".log\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tallowBucket1,\n\t\t\tallowBucket2,\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.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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\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 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 iamForLambda = new Role(\"iamForLambda\", RoleArgs.builder()\n .name(\"iam_for_lambda\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var func1 = new Function(\"func1\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function1.zip\"))\n .name(\"example_lambda_name1\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .runtime(\"nodejs20.x\")\n .build());\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var allowBucket1 = new Permission(\"allowBucket1\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket1\")\n .action(\"lambda:InvokeFunction\")\n .function(func1.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var func2 = new Function(\"func2\", FunctionArgs.builder()\n .code(new FileArchive(\"your-function2.zip\"))\n .name(\"example_lambda_name2\")\n .role(iamForLambda.arn())\n .handler(\"exports.example\")\n .build());\n\n var allowBucket2 = new Permission(\"allowBucket2\", PermissionArgs.builder()\n .statementId(\"AllowExecutionFromS3Bucket2\")\n .action(\"lambda:InvokeFunction\")\n .function(func2.arn())\n .principal(\"s3.amazonaws.com\")\n .sourceArn(bucket.arn())\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .lambdaFunctions( \n BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func1.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"AWSLogs/\")\n .filterSuffix(\".log\")\n .build(),\n BucketNotificationLambdaFunctionArgs.builder()\n .lambdaFunctionArn(func2.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"OtherLogs/\")\n .filterSuffix(\".log\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n allowBucket1,\n allowBucket2)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iamForLambda:\n type: aws:iam:Role\n name: iam_for_lambda\n properties:\n name: iam_for_lambda\n assumeRolePolicy: ${assumeRole.json}\n allowBucket1:\n type: aws:lambda:Permission\n name: allow_bucket1\n properties:\n statementId: AllowExecutionFromS3Bucket1\n action: lambda:InvokeFunction\n function: ${func1.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func1:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function1.zip\n name: example_lambda_name1\n role: ${iamForLambda.arn}\n handler: exports.example\n runtime: nodejs20.x\n allowBucket2:\n type: aws:lambda:Permission\n name: allow_bucket2\n properties:\n statementId: AllowExecutionFromS3Bucket2\n action: lambda:InvokeFunction\n function: ${func2.arn}\n principal: s3.amazonaws.com\n sourceArn: ${bucket.arn}\n func2:\n type: aws:lambda:Function\n properties:\n code:\n fn::FileArchive: your-function2.zip\n name: example_lambda_name2\n role: ${iamForLambda.arn}\n handler: exports.example\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n lambdaFunctions:\n - lambdaFunctionArn: ${func1.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: AWSLogs/\n filterSuffix: .log\n - lambdaFunctionArn: ${func2.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: OtherLogs/\n filterSuffix: .log\n options:\n dependson:\n - ${allowBucket1}\n - ${allowBucket2}\nvariables:\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### Add multiple notification configurations to SQS Queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst queue = aws.iam.getPolicyDocumentOutput({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"*\",\n identifiers: [\"*\"],\n }],\n actions: [\"sqs:SendMessage\"],\n resources: [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n conditions: [{\n test: \"ArnEquals\",\n variable: \"aws:SourceArn\",\n values: [bucket.arn],\n }],\n }],\n});\nconst queueQueue = new aws.sqs.Queue(\"queue\", {\n name: \"s3-event-notification-queue\",\n policy: queue.apply(queue =\u003e queue.json),\n});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n queues: [\n {\n id: \"image-upload-event\",\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"images/\",\n },\n {\n id: \"video-upload-event\",\n queueArn: queueQueue.arn,\n events: [\"s3:ObjectCreated:*\"],\n filterPrefix: \"videos/\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nqueue = aws.iam.get_policy_document_output(statements=[{\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"*\",\n \"identifiers\": [\"*\"],\n }],\n \"actions\": [\"sqs:SendMessage\"],\n \"resources\": [\"arn:aws:sqs:*:*:s3-event-notification-queue\"],\n \"conditions\": [{\n \"test\": \"ArnEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [bucket.arn],\n }],\n}])\nqueue_queue = aws.sqs.Queue(\"queue\",\n name=\"s3-event-notification-queue\",\n policy=queue.json)\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n queues=[\n {\n \"id\": \"image-upload-event\",\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"images/\",\n },\n {\n \"id\": \"video-upload-event\",\n \"queue_arn\": queue_queue.arn,\n \"events\": [\"s3:ObjectCreated:*\"],\n \"filter_prefix\": \"videos/\",\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var queue = 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 = \"*\",\n Identifiers = new[]\n {\n \"*\",\n },\n },\n },\n Actions = new[]\n {\n \"sqs:SendMessage\",\n },\n Resources = new[]\n {\n \"arn:aws:sqs:*:*:s3-event-notification-queue\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"ArnEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n bucket.Arn,\n },\n },\n },\n },\n },\n });\n\n var queueQueue = new Aws.Sqs.Queue(\"queue\", new()\n {\n Name = \"s3-event-notification-queue\",\n Policy = queue.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Queues = new[]\n {\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n Id = \"image-upload-event\",\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"images/\",\n },\n new Aws.S3.Inputs.BucketNotificationQueueArgs\n {\n Id = \"video-upload-event\",\n QueueArn = queueQueue.Arn,\n Events = new[]\n {\n \"s3:ObjectCreated:*\",\n },\n FilterPrefix = \"videos/\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueue := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"*\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"*\"),\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: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sqs:SendMessage\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"arn:aws:sqs:*:*:s3-event-notification-queue\"),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"ArnEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tbucket.Arn,\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},\n\t\t\t},\n\t\t}, nil)\n\t\tqueueQueue, err := sqs.NewQueue(ctx, \"queue\", \u0026sqs.QueueArgs{\n\t\t\tName: pulumi.String(\"s3-event-notification-queue\"),\n\t\t\tPolicy: pulumi.String(queue.ApplyT(func(queue iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026queue.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tQueues: s3.BucketNotificationQueueArray{\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tId: pulumi.String(\"image-upload-event\"),\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"images/\"),\n\t\t\t\t},\n\t\t\t\t\u0026s3.BucketNotificationQueueArgs{\n\t\t\t\t\tId: pulumi.String(\"video-upload-event\"),\n\t\t\t\t\tQueueArn: queueQueue.Arn,\n\t\t\t\t\tEvents: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:ObjectCreated:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterPrefix: pulumi.String(\"videos/\"),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.sqs.QueueArgs;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\nimport com.pulumi.aws.s3.inputs.BucketNotificationQueueArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n final var queue = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"*\")\n .identifiers(\"*\")\n .build())\n .actions(\"sqs:SendMessage\")\n .resources(\"arn:aws:sqs:*:*:s3-event-notification-queue\")\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"ArnEquals\")\n .variable(\"aws:SourceArn\")\n .values(bucket.arn())\n .build())\n .build())\n .build());\n\n var queueQueue = new Queue(\"queueQueue\", QueueArgs.builder()\n .name(\"s3-event-notification-queue\")\n .policy(queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(queue -\u003e queue.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .queues( \n BucketNotificationQueueArgs.builder()\n .id(\"image-upload-event\")\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"images/\")\n .build(),\n BucketNotificationQueueArgs.builder()\n .id(\"video-upload-event\")\n .queueArn(queueQueue.arn())\n .events(\"s3:ObjectCreated:*\")\n .filterPrefix(\"videos/\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n queueQueue:\n type: aws:sqs:Queue\n name: queue\n properties:\n name: s3-event-notification-queue\n policy: ${queue.json}\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n queues:\n - id: image-upload-event\n queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: images/\n - id: video-upload-event\n queueArn: ${queueQueue.arn}\n events:\n - s3:ObjectCreated:*\n filterPrefix: videos/\nvariables:\n queue:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: '*'\n identifiers:\n - '*'\n actions:\n - sqs:SendMessage\n resources:\n - arn:aws:sqs:*:*:s3-event-notification-queue\n conditions:\n - test: ArnEquals\n variable: aws:SourceArn\n values:\n - ${bucket.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor JSON syntax, use an array instead of defining the `queue` key twice.\n\n```json\n{\n\t\"bucket\": \"${aws_s3_bucket.bucket.id}\",\n\t\"queue\": [\n\t\t{\n\t\t\t\"id\": \"image-upload-event\",\n\t\t\t\"queue_arn\": \"${aws_sqs_queue.queue.arn}\",\n\t\t\t\"events\": [\"s3:ObjectCreated:*\"],\n\t\t\t\"filter_prefix\": \"images/\"\n\t\t},\n\t\t{\n\t\t\t\"id\": \"video-upload-event\",\n\t\t\t\"queue_arn\": \"${aws_sqs_queue.queue.arn}\",\n\t\t\t\"events\": [\"s3:ObjectCreated:*\"],\n\t\t\t\"filter_prefix\": \"videos/\"\n\t\t}\n\t]\n}\n```\n\n### Emit events to EventBridge\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucket = new aws.s3.BucketV2(\"bucket\", {bucket: \"your-bucket-name\"});\nconst bucketNotification = new aws.s3.BucketNotification(\"bucket_notification\", {\n bucket: bucket.id,\n eventbridge: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket = aws.s3.BucketV2(\"bucket\", bucket=\"your-bucket-name\")\nbucket_notification = aws.s3.BucketNotification(\"bucket_notification\",\n bucket=bucket.id,\n eventbridge=True)\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 bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"your-bucket-name\",\n });\n\n var bucketNotification = new Aws.S3.BucketNotification(\"bucket_notification\", new()\n {\n Bucket = bucket.Id,\n Eventbridge = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"your-bucket-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketNotification(ctx, \"bucket_notification\", \u0026s3.BucketNotificationArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tEventbridge: pulumi.Bool(true),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketNotification;\nimport com.pulumi.aws.s3.BucketNotificationArgs;\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 bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"your-bucket-name\")\n .build());\n\n var bucketNotification = new BucketNotification(\"bucketNotification\", BucketNotificationArgs.builder()\n .bucket(bucket.id())\n .eventbridge(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: your-bucket-name\n bucketNotification:\n type: aws:s3:BucketNotification\n name: bucket_notification\n properties:\n bucket: ${bucket.id}\n eventbridge: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import S3 bucket notification using the `bucket`. For example:\n\n```sh\n$ pulumi import aws:s3/bucketNotification:BucketNotification bucket_notification bucket-name\n```\n", "properties": { "bucket": { "type": "string", @@ -340855,7 +341543,7 @@ } }, "aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2": { - "description": "Provides an S3 bucket Object Lock configuration resource. For more information about Object Locking, go to [Using S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) in the Amazon S3 User Guide.\n\n\u003e This resource can be used enable Object Lock for **new** and **existing** buckets.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Object Lock configuration for new or existing buckets\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.s3.BucketV2(\"example\", {bucket: \"mybucket\"});\nconst exampleBucketVersioningV2 = new aws.s3.BucketVersioningV2(\"example\", {\n bucket: example.id,\n versioningConfiguration: {\n status: \"Enabled\",\n },\n});\nconst exampleBucketObjectLockConfigurationV2 = new aws.s3.BucketObjectLockConfigurationV2(\"example\", {\n bucket: example.id,\n rule: {\n defaultRetention: {\n mode: \"COMPLIANCE\",\n days: 5,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"mybucket\")\nexample_bucket_versioning_v2 = aws.s3.BucketVersioningV2(\"example\",\n bucket=example.id,\n versioning_configuration={\n \"status\": \"Enabled\",\n })\nexample_bucket_object_lock_configuration_v2 = aws.s3.BucketObjectLockConfigurationV2(\"example\",\n bucket=example.id,\n rule={\n \"default_retention\": {\n \"mode\": \"COMPLIANCE\",\n \"days\": 5,\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"mybucket\",\n });\n\n var exampleBucketVersioningV2 = new Aws.S3.BucketVersioningV2(\"example\", new()\n {\n Bucket = example.Id,\n VersioningConfiguration = new Aws.S3.Inputs.BucketVersioningV2VersioningConfigurationArgs\n {\n Status = \"Enabled\",\n },\n });\n\n var exampleBucketObjectLockConfigurationV2 = new Aws.S3.BucketObjectLockConfigurationV2(\"example\", new()\n {\n Bucket = example.Id,\n Rule = new Aws.S3.Inputs.BucketObjectLockConfigurationV2RuleArgs\n {\n DefaultRetention = new Aws.S3.Inputs.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs\n {\n Mode = \"COMPLIANCE\",\n Days = 5,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"mybucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketVersioningV2(ctx, \"example\", \u0026s3.BucketVersioningV2Args{\n\t\t\tBucket: example.ID(),\n\t\t\tVersioningConfiguration: \u0026s3.BucketVersioningV2VersioningConfigurationArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketObjectLockConfigurationV2(ctx, \"example\", \u0026s3.BucketObjectLockConfigurationV2Args{\n\t\t\tBucket: example.ID(),\n\t\t\tRule: \u0026s3.BucketObjectLockConfigurationV2RuleArgs{\n\t\t\t\tDefaultRetention: \u0026s3.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{\n\t\t\t\t\tMode: pulumi.String(\"COMPLIANCE\"),\n\t\t\t\t\tDays: pulumi.Int(5),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketVersioningV2;\nimport com.pulumi.aws.s3.BucketVersioningV2Args;\nimport com.pulumi.aws.s3.inputs.BucketVersioningV2VersioningConfigurationArgs;\nimport com.pulumi.aws.s3.BucketObjectLockConfigurationV2;\nimport com.pulumi.aws.s3.BucketObjectLockConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"mybucket\")\n .build());\n\n var exampleBucketVersioningV2 = new BucketVersioningV2(\"exampleBucketVersioningV2\", BucketVersioningV2Args.builder()\n .bucket(example.id())\n .versioningConfiguration(BucketVersioningV2VersioningConfigurationArgs.builder()\n .status(\"Enabled\")\n .build())\n .build());\n\n var exampleBucketObjectLockConfigurationV2 = new BucketObjectLockConfigurationV2(\"exampleBucketObjectLockConfigurationV2\", BucketObjectLockConfigurationV2Args.builder()\n .bucket(example.id())\n .rule(BucketObjectLockConfigurationV2RuleArgs.builder()\n .defaultRetention(BucketObjectLockConfigurationV2RuleDefaultRetentionArgs.builder()\n .mode(\"COMPLIANCE\")\n .days(5)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: mybucket\n exampleBucketVersioningV2:\n type: aws:s3:BucketVersioningV2\n name: example\n properties:\n bucket: ${example.id}\n versioningConfiguration:\n status: Enabled\n exampleBucketObjectLockConfigurationV2:\n type: aws:s3:BucketObjectLockConfigurationV2\n name: example\n properties:\n bucket: ${example.id}\n rule:\n defaultRetention:\n mode: COMPLIANCE\n days: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\nimport {\n to = aws_s3_bucket_object_lock_configuration.example\n id = \"bucket-name,123456789012\"\n}\n\n__Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example:\n\nIf the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`:\n\n```sh\n$ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name\n```\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):\n\n```sh\n$ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012\n```\n", + "description": "Provides an S3 bucket Object Lock configuration resource. For more information about Object Locking, go to [Using S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) in the Amazon S3 User Guide.\n\n\u003e This resource can be used enable Object Lock for **new** and **existing** buckets.\n\n\u003e This resource cannot be used with S3 directory buckets.\n\n## Example Usage\n\n### Object Lock configuration for new or existing buckets\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.s3.BucketV2(\"example\", {bucket: \"mybucket\"});\nconst exampleBucketVersioningV2 = new aws.s3.BucketVersioningV2(\"example\", {\n bucket: example.id,\n versioningConfiguration: {\n status: \"Enabled\",\n },\n});\nconst exampleBucketObjectLockConfigurationV2 = new aws.s3.BucketObjectLockConfigurationV2(\"example\", {\n bucket: example.id,\n rule: {\n defaultRetention: {\n mode: \"COMPLIANCE\",\n days: 5,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3.BucketV2(\"example\", bucket=\"mybucket\")\nexample_bucket_versioning_v2 = aws.s3.BucketVersioningV2(\"example\",\n bucket=example.id,\n versioning_configuration={\n \"status\": \"Enabled\",\n })\nexample_bucket_object_lock_configuration_v2 = aws.s3.BucketObjectLockConfigurationV2(\"example\",\n bucket=example.id,\n rule={\n \"default_retention\": {\n \"mode\": \"COMPLIANCE\",\n \"days\": 5,\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 example = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"mybucket\",\n });\n\n var exampleBucketVersioningV2 = new Aws.S3.BucketVersioningV2(\"example\", new()\n {\n Bucket = example.Id,\n VersioningConfiguration = new Aws.S3.Inputs.BucketVersioningV2VersioningConfigurationArgs\n {\n Status = \"Enabled\",\n },\n });\n\n var exampleBucketObjectLockConfigurationV2 = new Aws.S3.BucketObjectLockConfigurationV2(\"example\", new()\n {\n Bucket = example.Id,\n Rule = new Aws.S3.Inputs.BucketObjectLockConfigurationV2RuleArgs\n {\n DefaultRetention = new Aws.S3.Inputs.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs\n {\n Mode = \"COMPLIANCE\",\n Days = 5,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\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 := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"mybucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketVersioningV2(ctx, \"example\", \u0026s3.BucketVersioningV2Args{\n\t\t\tBucket: example.ID(),\n\t\t\tVersioningConfiguration: \u0026s3.BucketVersioningV2VersioningConfigurationArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketObjectLockConfigurationV2(ctx, \"example\", \u0026s3.BucketObjectLockConfigurationV2Args{\n\t\t\tBucket: example.ID(),\n\t\t\tRule: \u0026s3.BucketObjectLockConfigurationV2RuleArgs{\n\t\t\t\tDefaultRetention: \u0026s3.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{\n\t\t\t\t\tMode: pulumi.String(\"COMPLIANCE\"),\n\t\t\t\t\tDays: pulumi.Int(5),\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.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketVersioningV2;\nimport com.pulumi.aws.s3.BucketVersioningV2Args;\nimport com.pulumi.aws.s3.inputs.BucketVersioningV2VersioningConfigurationArgs;\nimport com.pulumi.aws.s3.BucketObjectLockConfigurationV2;\nimport com.pulumi.aws.s3.BucketObjectLockConfigurationV2Args;\nimport com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationV2RuleArgs;\nimport com.pulumi.aws.s3.inputs.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs;\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 BucketV2(\"example\", BucketV2Args.builder()\n .bucket(\"mybucket\")\n .build());\n\n var exampleBucketVersioningV2 = new BucketVersioningV2(\"exampleBucketVersioningV2\", BucketVersioningV2Args.builder()\n .bucket(example.id())\n .versioningConfiguration(BucketVersioningV2VersioningConfigurationArgs.builder()\n .status(\"Enabled\")\n .build())\n .build());\n\n var exampleBucketObjectLockConfigurationV2 = new BucketObjectLockConfigurationV2(\"exampleBucketObjectLockConfigurationV2\", BucketObjectLockConfigurationV2Args.builder()\n .bucket(example.id())\n .rule(BucketObjectLockConfigurationV2RuleArgs.builder()\n .defaultRetention(BucketObjectLockConfigurationV2RuleDefaultRetentionArgs.builder()\n .mode(\"COMPLIANCE\")\n .days(5)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3:BucketV2\n properties:\n bucket: mybucket\n exampleBucketVersioningV2:\n type: aws:s3:BucketVersioningV2\n name: example\n properties:\n bucket: ${example.id}\n versioningConfiguration:\n status: Enabled\n exampleBucketObjectLockConfigurationV2:\n type: aws:s3:BucketObjectLockConfigurationV2\n name: example\n properties:\n bucket: ${example.id}\n rule:\n defaultRetention:\n mode: COMPLIANCE\n days: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example:\n\n__Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example:\n\n```sh\n$ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name\n```\nIf the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example:\n\n```sh\n$ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012\n```\n", "properties": { "bucket": { "type": "string", @@ -350427,6 +351115,77 @@ "type": "object" } }, + "aws:securityhub/standardsControlAssociation:StandardsControlAssociation": { + "description": "## 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.securityhub.Account(\"example\", {});\nconst cisAwsFoundationsBenchmark = new aws.securityhub.StandardsSubscription(\"cis_aws_foundations_benchmark\", {standardsArn: \"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\"}, {\n dependsOn: [example],\n});\nconst cisAwsFoundationsBenchmarkDisableIam1 = new aws.index.StandardsControlAssociation(\"cis_aws_foundations_benchmark_disable_iam_1\", {\n standardsArn: cisAwsFoundationsBenchmark.standardsArn,\n securityControlId: \"IAM.1\",\n associationStatus: \"DISABLED\",\n updatedReason: \"Not needed\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.securityhub.Account(\"example\")\ncis_aws_foundations_benchmark = aws.securityhub.StandardsSubscription(\"cis_aws_foundations_benchmark\", standards_arn=\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\",\nopts = pulumi.ResourceOptions(depends_on=[example]))\ncis_aws_foundations_benchmark_disable_iam1 = aws.index.StandardsControlAssociation(\"cis_aws_foundations_benchmark_disable_iam_1\",\n standards_arn=cis_aws_foundations_benchmark.standards_arn,\n security_control_id=IAM.1,\n association_status=DISABLED,\n updated_reason=Not needed)\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.SecurityHub.Account(\"example\");\n\n var cisAwsFoundationsBenchmark = new Aws.SecurityHub.StandardsSubscription(\"cis_aws_foundations_benchmark\", new()\n {\n StandardsArn = \"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n },\n });\n\n var cisAwsFoundationsBenchmarkDisableIam1 = new Aws.Index.StandardsControlAssociation(\"cis_aws_foundations_benchmark_disable_iam_1\", new()\n {\n StandardsArn = cisAwsFoundationsBenchmark.StandardsArn,\n SecurityControlId = \"IAM.1\",\n AssociationStatus = \"DISABLED\",\n UpdatedReason = \"Not needed\",\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/securityhub\"\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 := securityhub.NewAccount(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcisAwsFoundationsBenchmark, err := securityhub.NewStandardsSubscription(ctx, \"cis_aws_foundations_benchmark\", \u0026securityhub.StandardsSubscriptionArgs{\n\t\t\tStandardsArn: pulumi.String(\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewStandardsControlAssociation(ctx, \"cis_aws_foundations_benchmark_disable_iam_1\", \u0026aws.StandardsControlAssociationArgs{\n\t\t\tStandardsArn: cisAwsFoundationsBenchmark.StandardsArn,\n\t\t\tSecurityControlId: \"IAM.1\",\n\t\t\tAssociationStatus: \"DISABLED\",\n\t\t\tUpdatedReason: \"Not needed\",\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.securityhub.Account;\nimport com.pulumi.aws.securityhub.StandardsSubscription;\nimport com.pulumi.aws.securityhub.StandardsSubscriptionArgs;\nimport com.pulumi.aws.standardsControlAssociation;\nimport com.pulumi.aws.StandardsControlAssociationArgs;\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 example = new Account(\"example\");\n\n var cisAwsFoundationsBenchmark = new StandardsSubscription(\"cisAwsFoundationsBenchmark\", StandardsSubscriptionArgs.builder()\n .standardsArn(\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(example)\n .build());\n\n var cisAwsFoundationsBenchmarkDisableIam1 = new StandardsControlAssociation(\"cisAwsFoundationsBenchmarkDisableIam1\", StandardsControlAssociationArgs.builder()\n .standardsArn(cisAwsFoundationsBenchmark.standardsArn())\n .securityControlId(\"IAM.1\")\n .associationStatus(\"DISABLED\")\n .updatedReason(\"Not needed\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:securityhub:Account\n cisAwsFoundationsBenchmark:\n type: aws:securityhub:StandardsSubscription\n name: cis_aws_foundations_benchmark\n properties:\n standardsArn: arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\n options:\n dependson:\n - ${example}\n cisAwsFoundationsBenchmarkDisableIam1:\n type: aws:standardsControlAssociation\n name: cis_aws_foundations_benchmark_disable_iam_1\n properties:\n standardsArn: ${cisAwsFoundationsBenchmark.standardsArn}\n securityControlId: IAM.1\n associationStatus: DISABLED\n updatedReason: Not needed\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n", + "properties": { + "associationStatus": { + "type": "string", + "description": "The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`.\n" + }, + "securityControlId": { + "type": "string", + "description": "The unique identifier for the security control whose enablement status you want to update.\n" + }, + "standardsArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status.\n\nThe following arguments are optional:\n" + }, + "updatedReason": { + "type": "string", + "description": "The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`.\n" + } + }, + "required": [ + "associationStatus", + "securityControlId", + "standardsArn" + ], + "inputProperties": { + "associationStatus": { + "type": "string", + "description": "The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`.\n" + }, + "securityControlId": { + "type": "string", + "description": "The unique identifier for the security control whose enablement status you want to update.\n" + }, + "standardsArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status.\n\nThe following arguments are optional:\n" + }, + "updatedReason": { + "type": "string", + "description": "The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`.\n" + } + }, + "requiredInputs": [ + "associationStatus", + "securityControlId", + "standardsArn" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering StandardsControlAssociation resources.\n", + "properties": { + "associationStatus": { + "type": "string", + "description": "The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`.\n" + }, + "securityControlId": { + "type": "string", + "description": "The unique identifier for the security control whose enablement status you want to update.\n" + }, + "standardsArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status.\n\nThe following arguments are optional:\n" + }, + "updatedReason": { + "type": "string", + "description": "The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`.\n" + } + }, + "type": "object" + } + }, "aws:securityhub/standardsSubscription:StandardsSubscription": { "description": "Subscribes to a Security Hub standard.\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.securityhub.Account(\"example\", {});\nconst current = aws.getRegion({});\nconst cis = new aws.securityhub.StandardsSubscription(\"cis\", {standardsArn: \"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\"}, {\n dependsOn: [example],\n});\nconst pci321 = new aws.securityhub.StandardsSubscription(\"pci_321\", {standardsArn: current.then(current =\u003e `arn:aws:securityhub:${current.name}::standards/pci-dss/v/3.2.1`)}, {\n dependsOn: [example],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.securityhub.Account(\"example\")\ncurrent = aws.get_region()\ncis = aws.securityhub.StandardsSubscription(\"cis\", standards_arn=\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\",\nopts = pulumi.ResourceOptions(depends_on=[example]))\npci321 = aws.securityhub.StandardsSubscription(\"pci_321\", standards_arn=f\"arn:aws:securityhub:{current.name}::standards/pci-dss/v/3.2.1\",\nopts = pulumi.ResourceOptions(depends_on=[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.SecurityHub.Account(\"example\");\n\n var current = Aws.GetRegion.Invoke();\n\n var cis = new Aws.SecurityHub.StandardsSubscription(\"cis\", new()\n {\n StandardsArn = \"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n },\n });\n\n var pci321 = new Aws.SecurityHub.StandardsSubscription(\"pci_321\", new()\n {\n StandardsArn = $\"arn:aws:securityhub:{current.Apply(getRegionResult =\u003e getRegionResult.Name)}::standards/pci-dss/v/3.2.1\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub\"\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 := securityhub.NewAccount(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securityhub.NewStandardsSubscription(ctx, \"cis\", \u0026securityhub.StandardsSubscriptionArgs{\n\t\t\tStandardsArn: pulumi.String(\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securityhub.NewStandardsSubscription(ctx, \"pci_321\", \u0026securityhub.StandardsSubscriptionArgs{\n\t\t\tStandardsArn: pulumi.Sprintf(\"arn:aws:securityhub:%v::standards/pci-dss/v/3.2.1\", current.Name),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\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.securityhub.Account;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.securityhub.StandardsSubscription;\nimport com.pulumi.aws.securityhub.StandardsSubscriptionArgs;\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 example = new Account(\"example\");\n\n final var current = AwsFunctions.getRegion();\n\n var cis = new StandardsSubscription(\"cis\", StandardsSubscriptionArgs.builder()\n .standardsArn(\"arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(example)\n .build());\n\n var pci321 = new StandardsSubscription(\"pci321\", StandardsSubscriptionArgs.builder()\n .standardsArn(String.format(\"arn:aws:securityhub:%s::standards/pci-dss/v/3.2.1\", current.applyValue(getRegionResult -\u003e getRegionResult.name())))\n .build(), CustomResourceOptions.builder()\n .dependsOn(example)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:securityhub:Account\n cis:\n type: aws:securityhub:StandardsSubscription\n properties:\n standardsArn: arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0\n options:\n dependson:\n - ${example}\n pci321:\n type: aws:securityhub:StandardsSubscription\n name: pci_321\n properties:\n standardsArn: arn:aws:securityhub:${current.name}::standards/pci-dss/v/3.2.1\n options:\n dependson:\n - ${example}\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Security Hub standards subscriptions using the standards subscription ARN. For example:\n\n```sh\n$ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription cis arn:aws:securityhub:eu-west-1:123456789012:subscription/cis-aws-foundations-benchmark/v/1.2.0\n```\n```sh\n$ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription pci_321 arn:aws:securityhub:eu-west-1:123456789012:subscription/pci-dss/v/3.2.1\n```\n```sh\n$ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription nist_800_53_rev_5 arn:aws:securityhub:eu-west-1:123456789012:subscription/nist-800-53/v/5.0.0\n```\n", "properties": { @@ -355975,7 +356734,7 @@ } }, "aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse": { - "description": "Resource for managing an AWS Shield Application Layer Automatic Response for automatic DDoS mitigation.\n\n## Example Usage\n\n", + "description": "Resource for managing an AWS Shield Application Layer Automatic Response for automatic DDoS mitigation.\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 current = aws.getRegion({});\nconst currentGetCallerIdentity = aws.getCallerIdentity({});\nconst currentGetPartition = aws.getPartition({});\nconst config = new pulumi.Config();\n// The Cloudfront Distribution on which to enable the Application Layer Automatic Response.\nconst distributionId = config.require(\"distributionId\");\nconst example = new aws.shield.ApplicationLayerAutomaticResponse(\"example\", {\n resourceArn: Promise.all([currentGetPartition, currentGetCallerIdentity]).then(([currentGetPartition, currentGetCallerIdentity]) =\u003e `arn:${currentGetPartition.partition}:cloudfront:${currentGetCallerIdentity.accountId}:distribution/${distributionId}`),\n action: \"COUNT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ncurrent_get_caller_identity = aws.get_caller_identity()\ncurrent_get_partition = aws.get_partition()\nconfig = pulumi.Config()\n# The Cloudfront Distribution on which to enable the Application Layer Automatic Response.\ndistribution_id = config.require(\"distributionId\")\nexample = aws.shield.ApplicationLayerAutomaticResponse(\"example\",\n resource_arn=f\"arn:{current_get_partition.partition}:cloudfront:{current_get_caller_identity.account_id}:distribution/{distribution_id}\",\n action=\"COUNT\")\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.GetRegion.Invoke();\n\n var currentGetCallerIdentity = Aws.GetCallerIdentity.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var config = new Config();\n // The Cloudfront Distribution on which to enable the Application Layer Automatic Response.\n var distributionId = config.Require(\"distributionId\");\n var example = new Aws.Shield.ApplicationLayerAutomaticResponse(\"example\", new()\n {\n ResourceArn = Output.Tuple(currentGetPartition, currentGetCallerIdentity).Apply(values =\u003e\n {\n var currentGetPartition = values.Item1;\n var currentGetCallerIdentity = values.Item2;\n return $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:cloudfront:{currentGetCallerIdentity.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:distribution/{distributionId}\";\n }),\n Action = \"COUNT\",\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield\"\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\t_, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\t// The Cloudfront Distribution on which to enable the Application Layer Automatic Response.\n\t\tdistributionId := cfg.Require(\"distributionId\")\n\t\t_, err = shield.NewApplicationLayerAutomaticResponse(ctx, \"example\", \u0026shield.ApplicationLayerAutomaticResponseArgs{\n\t\t\tResourceArn: pulumi.Sprintf(\"arn:%v:cloudfront:%v:distribution/%v\", currentGetPartition.Partition, currentGetCallerIdentity.AccountId, distributionId),\n\t\t\tAction: pulumi.String(\"COUNT\"),\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.GetRegionArgs;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetPartitionArgs;\nimport com.pulumi.aws.shield.ApplicationLayerAutomaticResponse;\nimport com.pulumi.aws.shield.ApplicationLayerAutomaticResponseArgs;\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 current = AwsFunctions.getRegion();\n\n final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n final var distributionId = config.get(\"distributionId\");\n var example = new ApplicationLayerAutomaticResponse(\"example\", ApplicationLayerAutomaticResponseArgs.builder()\n .resourceArn(String.format(\"arn:%s:cloudfront:%s:distribution/%s\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()),distributionId))\n .action(\"COUNT\")\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n distributionId:\n type: string\nresources:\n example:\n type: aws:shield:ApplicationLayerAutomaticResponse\n properties:\n resourceArn: arn:${currentGetPartition.partition}:cloudfront:${currentGetCallerIdentity.accountId}:distribution/${distributionId}\n action: COUNT\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n currentGetCallerIdentity:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "action": { "type": "string", @@ -356083,7 +356842,7 @@ } }, "aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation": { - "description": "Authorizes the Shield Response Team (SRT) using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks.\nFor more information see [Configure AWS SRT Support](https://docs.aws.amazon.com/waf/latest/developerguide/authorize-srt.html)\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.iam.Role(\"test\", {\n name: awsShieldDrtAccessRoleArn,\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Sid: \"\",\n Effect: \"Allow\",\n Principal: {\n Service: \"drt.shield.amazonaws.com\",\n },\n Action: \"sts:AssumeRole\",\n }],\n }),\n});\nconst testRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"test\", {\n role: test.name,\n policyArn: \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n});\nconst testDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation(\"test\", {roleArn: test.arn});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest = aws.iam.Role(\"test\",\n name=aws_shield_drt_access_role_arn,\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"drt.shield.amazonaws.com\",\n },\n \"Action\": \"sts:AssumeRole\",\n }],\n }))\ntest_role_policy_attachment = aws.iam.RolePolicyAttachment(\"test\",\n role=test.name,\n policy_arn=\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\ntest_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation(\"test\", role_arn=test.arn)\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 test = new Aws.Iam.Role(\"test\", new()\n {\n Name = awsShieldDrtAccessRoleArn,\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 [\"Sid\"] = \"\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"drt.shield.amazonaws.com\",\n },\n [\"Action\"] = \"sts:AssumeRole\",\n },\n },\n }),\n });\n\n var testRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"test\", new()\n {\n Role = test.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n });\n\n var testDrtAccessRoleArnAssociation = new Aws.Shield.DrtAccessRoleArnAssociation(\"test\", new()\n {\n RoleArn = test.Arn,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield\"\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\"Sid\": \"\",\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\": \"drt.shield.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\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\ttest, err := iam.NewRole(ctx, \"test\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.Any(awsShieldDrtAccessRoleArn),\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\t_, err = iam.NewRolePolicyAttachment(ctx, \"test\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: test.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewDrtAccessRoleArnAssociation(ctx, \"test\", \u0026shield.DrtAccessRoleArnAssociationArgs{\n\t\t\tRoleArn: test.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.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.shield.DrtAccessRoleArnAssociation;\nimport com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs;\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 test = new Role(\"test\", RoleArgs.builder()\n .name(awsShieldDrtAccessRoleArn)\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"drt.shield.amazonaws.com\")\n )),\n jsonProperty(\"Action\", \"sts:AssumeRole\")\n )))\n )))\n .build());\n\n var testRolePolicyAttachment = new RolePolicyAttachment(\"testRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .role(test.name())\n .policyArn(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\n .build());\n\n var testDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation(\"testDrtAccessRoleArnAssociation\", DrtAccessRoleArnAssociationArgs.builder()\n .roleArn(test.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:iam:Role\n properties:\n name: ${awsShieldDrtAccessRoleArn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Sid:\n Effect: Allow\n Principal:\n Service: drt.shield.amazonaws.com\n Action: sts:AssumeRole\n testRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: test\n properties:\n role: ${test.name}\n policyArn: arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\n testDrtAccessRoleArnAssociation:\n type: aws:shield:DrtAccessRoleArnAssociation\n name: test\n properties:\n roleArn: ${test.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Shield DRT access role ARN association using the AWS account ID. For example:\n\n```sh\n$ pulumi import aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation example 123456789012\n```\n", + "description": "Authorizes the Shield Response Team (SRT) using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks.\nFor more information see [Configure AWS SRT Support](https://docs.aws.amazon.com/waf/latest/developerguide/authorize-srt.html)\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 exampleRole = new aws.iam.Role(\"example\", {\n name: \"example-role\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Sid: \"\",\n Effect: \"Allow\",\n Principal: {\n Service: \"drt.shield.amazonaws.com\",\n },\n Action: \"sts:AssumeRole\",\n }],\n }),\n});\nconst example = new aws.shield.DrtAccessRoleArnAssociation(\"example\", {roleArn: exampleRole.arn});\nconst exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"example\", {\n role: exampleRole.name,\n policyArn: \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample_role = aws.iam.Role(\"example\",\n name=\"example-role\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"drt.shield.amazonaws.com\",\n },\n \"Action\": \"sts:AssumeRole\",\n }],\n }))\nexample = aws.shield.DrtAccessRoleArnAssociation(\"example\", role_arn=example_role.arn)\nexample_role_policy_attachment = aws.iam.RolePolicyAttachment(\"example\",\n role=example_role.name,\n policy_arn=\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\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 exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example-role\",\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 [\"Sid\"] = \"\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"drt.shield.amazonaws.com\",\n },\n [\"Action\"] = \"sts:AssumeRole\",\n },\n },\n }),\n });\n\n var example = new Aws.Shield.DrtAccessRoleArnAssociation(\"example\", new()\n {\n RoleArn = exampleRole.Arn,\n });\n\n var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"example\", new()\n {\n Role = exampleRole.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield\"\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\"Sid\": \"\",\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\": \"drt.shield.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\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\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-role\"),\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\t_, err = shield.NewDrtAccessRoleArnAssociation(ctx, \"example\", \u0026shield.DrtAccessRoleArnAssociationArgs{\n\t\t\tRoleArn: exampleRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: exampleRole.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\"),\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.shield.DrtAccessRoleArnAssociation;\nimport com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\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 exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example-role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"drt.shield.amazonaws.com\")\n )),\n jsonProperty(\"Action\", \"sts:AssumeRole\")\n )))\n )))\n .build());\n\n var example = new DrtAccessRoleArnAssociation(\"example\", DrtAccessRoleArnAssociationArgs.builder()\n .roleArn(exampleRole.arn())\n .build());\n\n var exampleRolePolicyAttachment = new RolePolicyAttachment(\"exampleRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .role(exampleRole.name())\n .policyArn(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:shield:DrtAccessRoleArnAssociation\n properties:\n roleArn: ${exampleRole.arn}\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example-role\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Sid:\n Effect: Allow\n Principal:\n Service: drt.shield.amazonaws.com\n Action: sts:AssumeRole\n exampleRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: example\n properties:\n role: ${exampleRole.name}\n policyArn: arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Shield DRT access role ARN association using the AWS account ID. For example:\n\n```sh\n$ pulumi import aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation example 123456789012\n```\n", "properties": { "roleArn": { "type": "string", @@ -356123,7 +356882,7 @@ } }, "aws:shield/proactiveEngagement:ProactiveEngagement": { - "description": "Resource for managing a AWS Shield Proactive Engagement.\nProactive engagement authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support.\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.iam.Role(\"example\", {\n name: awsShieldDrtAccessRoleArn,\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Sid: \"\",\n Effect: \"Allow\",\n Principal: {\n Service: \"drt.shield.amazonaws.com\",\n },\n Action: \"sts:AssumeRole\",\n }],\n }),\n});\nconst exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"example\", {\n role: example.name,\n policyArn: \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n});\nconst exampleDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation(\"example\", {roleArn: example.arn});\nconst test = new aws.shield.ProtectionGroup(\"test\", {\n protectionGroupId: \"example\",\n aggregation: \"MAX\",\n pattern: \"ALL\",\n});\nconst testProactiveEngagement = new aws.shield.ProactiveEngagement(\"test\", {\n enabled: true,\n emergencyContacts: [\n {\n contactNotes: \"Notes\",\n emailAddress: \"test@company.com\",\n phoneNumber: \"+12358132134\",\n },\n {\n contactNotes: \"Notes 2\",\n emailAddress: \"test2@company.com\",\n phoneNumber: \"+12358132134\",\n },\n ],\n}, {\n dependsOn: [testAwsShieldDrtAccessRoleArnAssociation],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n name=aws_shield_drt_access_role_arn,\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"drt.shield.amazonaws.com\",\n },\n \"Action\": \"sts:AssumeRole\",\n }],\n }))\nexample_role_policy_attachment = aws.iam.RolePolicyAttachment(\"example\",\n role=example.name,\n policy_arn=\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\nexample_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation(\"example\", role_arn=example.arn)\ntest = aws.shield.ProtectionGroup(\"test\",\n protection_group_id=\"example\",\n aggregation=\"MAX\",\n pattern=\"ALL\")\ntest_proactive_engagement = aws.shield.ProactiveEngagement(\"test\",\n enabled=True,\n emergency_contacts=[\n {\n \"contact_notes\": \"Notes\",\n \"email_address\": \"test@company.com\",\n \"phone_number\": \"+12358132134\",\n },\n {\n \"contact_notes\": \"Notes 2\",\n \"email_address\": \"test2@company.com\",\n \"phone_number\": \"+12358132134\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[test_aws_shield_drt_access_role_arn_association]))\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 = new Aws.Iam.Role(\"example\", new()\n {\n Name = awsShieldDrtAccessRoleArn,\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 [\"Sid\"] = \"\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"drt.shield.amazonaws.com\",\n },\n [\"Action\"] = \"sts:AssumeRole\",\n },\n },\n }),\n });\n\n var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"example\", new()\n {\n Role = example.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n });\n\n var exampleDrtAccessRoleArnAssociation = new Aws.Shield.DrtAccessRoleArnAssociation(\"example\", new()\n {\n RoleArn = example.Arn,\n });\n\n var test = new Aws.Shield.ProtectionGroup(\"test\", new()\n {\n ProtectionGroupId = \"example\",\n Aggregation = \"MAX\",\n Pattern = \"ALL\",\n });\n\n var testProactiveEngagement = new Aws.Shield.ProactiveEngagement(\"test\", new()\n {\n Enabled = true,\n EmergencyContacts = new[]\n {\n new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs\n {\n ContactNotes = \"Notes\",\n EmailAddress = \"test@company.com\",\n PhoneNumber = \"+12358132134\",\n },\n new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs\n {\n ContactNotes = \"Notes 2\",\n EmailAddress = \"test2@company.com\",\n PhoneNumber = \"+12358132134\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n testAwsShieldDrtAccessRoleArnAssociation,\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield\"\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\"Sid\": \"\",\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\": \"drt.shield.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\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\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.Any(awsShieldDrtAccessRoleArn),\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\t_, err = iam.NewRolePolicyAttachment(ctx, \"example\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: example.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewDrtAccessRoleArnAssociation(ctx, \"example\", \u0026shield.DrtAccessRoleArnAssociationArgs{\n\t\t\tRoleArn: example.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewProtectionGroup(ctx, \"test\", \u0026shield.ProtectionGroupArgs{\n\t\t\tProtectionGroupId: pulumi.String(\"example\"),\n\t\t\tAggregation: pulumi.String(\"MAX\"),\n\t\t\tPattern: pulumi.String(\"ALL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewProactiveEngagement(ctx, \"test\", \u0026shield.ProactiveEngagementArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tEmergencyContacts: shield.ProactiveEngagementEmergencyContactArray{\n\t\t\t\t\u0026shield.ProactiveEngagementEmergencyContactArgs{\n\t\t\t\t\tContactNotes: pulumi.String(\"Notes\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"test@company.com\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"+12358132134\"),\n\t\t\t\t},\n\t\t\t\t\u0026shield.ProactiveEngagementEmergencyContactArgs{\n\t\t\t\t\tContactNotes: pulumi.String(\"Notes 2\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"test2@company.com\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"+12358132134\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestAwsShieldDrtAccessRoleArnAssociation,\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.shield.DrtAccessRoleArnAssociation;\nimport com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs;\nimport com.pulumi.aws.shield.ProtectionGroup;\nimport com.pulumi.aws.shield.ProtectionGroupArgs;\nimport com.pulumi.aws.shield.ProactiveEngagement;\nimport com.pulumi.aws.shield.ProactiveEngagementArgs;\nimport com.pulumi.aws.shield.inputs.ProactiveEngagementEmergencyContactArgs;\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 example = new Role(\"example\", RoleArgs.builder()\n .name(awsShieldDrtAccessRoleArn)\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"drt.shield.amazonaws.com\")\n )),\n jsonProperty(\"Action\", \"sts:AssumeRole\")\n )))\n )))\n .build());\n\n var exampleRolePolicyAttachment = new RolePolicyAttachment(\"exampleRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .role(example.name())\n .policyArn(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\n .build());\n\n var exampleDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation(\"exampleDrtAccessRoleArnAssociation\", DrtAccessRoleArnAssociationArgs.builder()\n .roleArn(example.arn())\n .build());\n\n var test = new ProtectionGroup(\"test\", ProtectionGroupArgs.builder()\n .protectionGroupId(\"example\")\n .aggregation(\"MAX\")\n .pattern(\"ALL\")\n .build());\n\n var testProactiveEngagement = new ProactiveEngagement(\"testProactiveEngagement\", ProactiveEngagementArgs.builder()\n .enabled(true)\n .emergencyContacts( \n ProactiveEngagementEmergencyContactArgs.builder()\n .contactNotes(\"Notes\")\n .emailAddress(\"test@company.com\")\n .phoneNumber(\"+12358132134\")\n .build(),\n ProactiveEngagementEmergencyContactArgs.builder()\n .contactNotes(\"Notes 2\")\n .emailAddress(\"test2@company.com\")\n .phoneNumber(\"+12358132134\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(testAwsShieldDrtAccessRoleArnAssociation)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: ${awsShieldDrtAccessRoleArn}\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Sid:\n Effect: Allow\n Principal:\n Service: drt.shield.amazonaws.com\n Action: sts:AssumeRole\n exampleRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: example\n properties:\n role: ${example.name}\n policyArn: arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\n exampleDrtAccessRoleArnAssociation:\n type: aws:shield:DrtAccessRoleArnAssociation\n name: example\n properties:\n roleArn: ${example.arn}\n test:\n type: aws:shield:ProtectionGroup\n properties:\n protectionGroupId: example\n aggregation: MAX\n pattern: ALL\n testProactiveEngagement:\n type: aws:shield:ProactiveEngagement\n name: test\n properties:\n enabled: true\n emergencyContacts:\n - contactNotes: Notes\n emailAddress: test@company.com\n phoneNumber: '+12358132134'\n - contactNotes: Notes 2\n emailAddress: test2@company.com\n phoneNumber: '+12358132134'\n options:\n dependson:\n - ${testAwsShieldDrtAccessRoleArnAssociation}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Shield proactive engagement using the AWS account ID. For example:\n\n```sh\n$ pulumi import aws:shield/proactiveEngagement:ProactiveEngagement example 123456789012\n```\n", + "description": "Resource for managing a AWS Shield Proactive Engagement.\nProactive engagement authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support.\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 exampleRole = new aws.iam.Role(\"example\", {\n name: \"example-role\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Sid: \"\",\n Effect: \"Allow\",\n Principal: {\n Service: \"drt.shield.amazonaws.com\",\n },\n Action: \"sts:AssumeRole\",\n }],\n }),\n});\nconst exampleDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation(\"example\", {roleArn: exampleRole.arn});\nconst example = new aws.shield.ProactiveEngagement(\"example\", {\n enabled: true,\n emergencyContacts: [\n {\n contactNotes: \"Notes\",\n emailAddress: \"contact1@example.com\",\n phoneNumber: \"+12358132134\",\n },\n {\n contactNotes: \"Notes 2\",\n emailAddress: \"contact2@example.com\",\n phoneNumber: \"+12358132134\",\n },\n ],\n}, {\n dependsOn: [exampleDrtAccessRoleArnAssociation],\n});\nconst exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"example\", {\n role: exampleRole.name,\n policyArn: \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n});\nconst exampleProtectionGroup = new aws.shield.ProtectionGroup(\"example\", {\n protectionGroupId: \"example\",\n aggregation: \"MAX\",\n pattern: \"ALL\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample_role = aws.iam.Role(\"example\",\n name=\"example-role\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"drt.shield.amazonaws.com\",\n },\n \"Action\": \"sts:AssumeRole\",\n }],\n }))\nexample_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation(\"example\", role_arn=example_role.arn)\nexample = aws.shield.ProactiveEngagement(\"example\",\n enabled=True,\n emergency_contacts=[\n {\n \"contact_notes\": \"Notes\",\n \"email_address\": \"contact1@example.com\",\n \"phone_number\": \"+12358132134\",\n },\n {\n \"contact_notes\": \"Notes 2\",\n \"email_address\": \"contact2@example.com\",\n \"phone_number\": \"+12358132134\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[example_drt_access_role_arn_association]))\nexample_role_policy_attachment = aws.iam.RolePolicyAttachment(\"example\",\n role=example_role.name,\n policy_arn=\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\nexample_protection_group = aws.shield.ProtectionGroup(\"example\",\n protection_group_id=\"example\",\n aggregation=\"MAX\",\n pattern=\"ALL\")\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 exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example-role\",\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 [\"Sid\"] = \"\",\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"drt.shield.amazonaws.com\",\n },\n [\"Action\"] = \"sts:AssumeRole\",\n },\n },\n }),\n });\n\n var exampleDrtAccessRoleArnAssociation = new Aws.Shield.DrtAccessRoleArnAssociation(\"example\", new()\n {\n RoleArn = exampleRole.Arn,\n });\n\n var example = new Aws.Shield.ProactiveEngagement(\"example\", new()\n {\n Enabled = true,\n EmergencyContacts = new[]\n {\n new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs\n {\n ContactNotes = \"Notes\",\n EmailAddress = \"contact1@example.com\",\n PhoneNumber = \"+12358132134\",\n },\n new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs\n {\n ContactNotes = \"Notes 2\",\n EmailAddress = \"contact2@example.com\",\n PhoneNumber = \"+12358132134\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleDrtAccessRoleArnAssociation,\n },\n });\n\n var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"example\", new()\n {\n Role = exampleRole.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\",\n });\n\n var exampleProtectionGroup = new Aws.Shield.ProtectionGroup(\"example\", new()\n {\n ProtectionGroupId = \"example\",\n Aggregation = \"MAX\",\n Pattern = \"ALL\",\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield\"\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\"Sid\": \"\",\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\": \"drt.shield.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\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\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-role\"),\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\texampleDrtAccessRoleArnAssociation, err := shield.NewDrtAccessRoleArnAssociation(ctx, \"example\", \u0026shield.DrtAccessRoleArnAssociationArgs{\n\t\t\tRoleArn: exampleRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewProactiveEngagement(ctx, \"example\", \u0026shield.ProactiveEngagementArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tEmergencyContacts: shield.ProactiveEngagementEmergencyContactArray{\n\t\t\t\t\u0026shield.ProactiveEngagementEmergencyContactArgs{\n\t\t\t\t\tContactNotes: pulumi.String(\"Notes\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"contact1@example.com\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"+12358132134\"),\n\t\t\t\t},\n\t\t\t\t\u0026shield.ProactiveEngagementEmergencyContactArgs{\n\t\t\t\t\tContactNotes: pulumi.String(\"Notes 2\"),\n\t\t\t\t\tEmailAddress: pulumi.String(\"contact2@example.com\"),\n\t\t\t\t\tPhoneNumber: pulumi.String(\"+12358132134\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleDrtAccessRoleArnAssociation,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicyAttachment(ctx, \"example\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: exampleRole.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = shield.NewProtectionGroup(ctx, \"example\", \u0026shield.ProtectionGroupArgs{\n\t\t\tProtectionGroupId: pulumi.String(\"example\"),\n\t\t\tAggregation: pulumi.String(\"MAX\"),\n\t\t\tPattern: pulumi.String(\"ALL\"),\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.shield.DrtAccessRoleArnAssociation;\nimport com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs;\nimport com.pulumi.aws.shield.ProactiveEngagement;\nimport com.pulumi.aws.shield.ProactiveEngagementArgs;\nimport com.pulumi.aws.shield.inputs.ProactiveEngagementEmergencyContactArgs;\nimport com.pulumi.aws.iam.RolePolicyAttachment;\nimport com.pulumi.aws.iam.RolePolicyAttachmentArgs;\nimport com.pulumi.aws.shield.ProtectionGroup;\nimport com.pulumi.aws.shield.ProtectionGroupArgs;\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 exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .name(\"example-role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"drt.shield.amazonaws.com\")\n )),\n jsonProperty(\"Action\", \"sts:AssumeRole\")\n )))\n )))\n .build());\n\n var exampleDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation(\"exampleDrtAccessRoleArnAssociation\", DrtAccessRoleArnAssociationArgs.builder()\n .roleArn(exampleRole.arn())\n .build());\n\n var example = new ProactiveEngagement(\"example\", ProactiveEngagementArgs.builder()\n .enabled(true)\n .emergencyContacts( \n ProactiveEngagementEmergencyContactArgs.builder()\n .contactNotes(\"Notes\")\n .emailAddress(\"contact1@example.com\")\n .phoneNumber(\"+12358132134\")\n .build(),\n ProactiveEngagementEmergencyContactArgs.builder()\n .contactNotes(\"Notes 2\")\n .emailAddress(\"contact2@example.com\")\n .phoneNumber(\"+12358132134\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleDrtAccessRoleArnAssociation)\n .build());\n\n var exampleRolePolicyAttachment = new RolePolicyAttachment(\"exampleRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .role(exampleRole.name())\n .policyArn(\"arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\")\n .build());\n\n var exampleProtectionGroup = new ProtectionGroup(\"exampleProtectionGroup\", ProtectionGroupArgs.builder()\n .protectionGroupId(\"example\")\n .aggregation(\"MAX\")\n .pattern(\"ALL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:shield:ProactiveEngagement\n properties:\n enabled: true\n emergencyContacts:\n - contactNotes: Notes\n emailAddress: contact1@example.com\n phoneNumber: '+12358132134'\n - contactNotes: Notes 2\n emailAddress: contact2@example.com\n phoneNumber: '+12358132134'\n options:\n dependson:\n - ${exampleDrtAccessRoleArnAssociation}\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n name: example-role\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Sid:\n Effect: Allow\n Principal:\n Service: drt.shield.amazonaws.com\n Action: sts:AssumeRole\n exampleRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: example\n properties:\n role: ${exampleRole.name}\n policyArn: arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy\n exampleDrtAccessRoleArnAssociation:\n type: aws:shield:DrtAccessRoleArnAssociation\n name: example\n properties:\n roleArn: ${exampleRole.arn}\n exampleProtectionGroup:\n type: aws:shield:ProtectionGroup\n name: example\n properties:\n protectionGroupId: example\n aggregation: MAX\n pattern: ALL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Shield proactive engagement using the AWS account ID. For example:\n\n```sh\n$ pulumi import aws:shield/proactiveEngagement:ProactiveEngagement example 123456789012\n```\n", "properties": { "emergencyContacts": { "type": "array", @@ -385148,6 +385907,10 @@ }, "type": "array" }, + "startTime": { + "description": "Time stamp when the snapshot was initiated.\n", + "type": "string" + }, "state": { "description": "Snapshot state.\n", "type": "string" @@ -385182,6 +385945,7 @@ "ownerAlias", "ownerId", "snapshotId", + "startTime", "state", "storageTier", "tags", @@ -415425,13 +416189,6 @@ "securityControlId": { "type": "string", "description": "The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters).\n" - }, - "standardsControlAssociations": { - "type": "array", - "items": { - "$ref": "#/types/aws:securityhub/getStandardsControlAssociationsStandardsControlAssociation:getStandardsControlAssociationsStandardsControlAssociation" - }, - "description": "A list that provides the status and other details for each security control that applies to each enabled standard.\nSee `standards_control_associations` below.\n" } }, "type": "object", @@ -415459,7 +416216,8 @@ }, "required": [ "id", - "securityControlId" + "securityControlId", + "standardsControlAssociations" ], "type": "object" } diff --git a/provider/go.mod b/provider/go.mod index 07b1ec79b40..a27c87e173a 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -9,12 +9,12 @@ godebug tlskyber=0 require ( github.com/aws/aws-sdk-go-v2 v1.31.0 - github.com/aws/aws-sdk-go-v2/config v1.27.38 + github.com/aws/aws-sdk-go-v2/config v1.27.39 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 - github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2 - github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2 - github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2 + github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3 + github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.58 github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220923175450-ca71523cdc36 @@ -62,7 +62,7 @@ require ( github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton // indirect + github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton // indirect github.com/YakDriver/go-version v0.1.0 // indirect github.com/YakDriver/regexache v0.24.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect @@ -73,255 +73,255 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go v1.55.5 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.36 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.37 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/account v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/acm v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/amp v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.46.1 // indirect - github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/backup v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.45.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1 // indirect - github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1 // indirect - github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chime v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2 // indirect - github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2 // indirect - github.com/aws/aws-sdk-go-v2/service/connect v1.110.2 // indirect - github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2 // indirect - github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dax v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/detective v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/drs v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2 // indirect - github.com/aws/aws-sdk-go-v2/service/efs v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.49.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emr v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1 // indirect - github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fis v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fms v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.99.1 // indirect - github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iam v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/account v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acm v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amp v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0 // indirect + github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.46.2 // indirect + github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/backup v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.45.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0 // indirect + github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2 // indirect + github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/service/chime v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3 // indirect + github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/connect v1.111.0 // indirect + github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3 // indirect + github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dax v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/detective v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3 // indirect + github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/drs v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/efs v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emr v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2 // indirect + github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4 // indirect + github.com/aws/aws-sdk-go-v2/service/fis v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fms v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.99.2 // indirect + github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4 // indirect + github.com/aws/aws-sdk-go-v2/service/iam v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.19 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iot v1.57.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2 // indirect - github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/location v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mq v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/service/oam v1.14.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/osis v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2 // indirect - github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1 // indirect - github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2 // indirect - github.com/aws/aws-sdk-go-v2/service/polly v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ram v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.85.1 // indirect - github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2 // indirect - github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1 // indirect - github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rum v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1 // indirect - github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ses v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/shield v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/signer v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sns v1.32.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/swf v1.26.2 // indirect - github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2 // indirect - github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2 // indirect - github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2 // indirect - github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2 // indirect - github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2 // indirect - github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/waf v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iot v1.57.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1 // indirect + github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/location v1.41.4 // indirect + github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4 // indirect + github.com/aws/aws-sdk-go-v2/service/mq v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3 // indirect + github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3 // indirect + github.com/aws/aws-sdk-go-v2/service/oam v1.14.3 // indirect + github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4 // indirect + github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1 // indirect + github.com/aws/aws-sdk-go-v2/service/osis v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3 // indirect + github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3 // indirect + github.com/aws/aws-sdk-go-v2/service/polly v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4 // indirect + github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ram v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.86.0 // indirect + github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3 // indirect + github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0 // indirect + github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/rum v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0 // indirect + github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ses v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/shield v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/signer v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sns v1.32.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 // indirect + github.com/aws/aws-sdk-go-v2/service/swf v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0 // indirect + github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3 // indirect + github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4 // indirect + github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/waf v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3 // indirect + github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2 // indirect - github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2 // indirect - github.com/aws/aws-sdk-go-v2/service/xray v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4 // indirect + github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/xray v1.28.3 // indirect github.com/aws/smithy-go v1.21.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beevik/etree v1.4.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index a1908223f29..5d3c56437d4 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1187,8 +1187,8 @@ github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= -github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton h1:ZGewsAoeSirbUS5cO8L0FMQA+iSop9xR1nmFYifDBPo= +github.com/ProtonMail/go-crypto v1.1.0-beta.0-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/YakDriver/go-version v0.1.0 h1:/x+Xg2+l89Mjtxl0VRf2+ue8cnHkw6jfYv49j6f7gZw= github.com/YakDriver/go-version v0.1.0/go.mod h1:LXwFAp1E3KBhS7FHO/FE8r3XCmvKizs/VXXXFWfoSYY= github.com/YakDriver/regexache v0.24.0 h1:zUKaixelkswzdqsqPc2sveiV//Mi/msJn0teG8zBDiA= @@ -1238,14 +1238,14 @@ github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72Qm github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 h1:xDAuZTn4IMm8o1LnBZvmrL8JA1io4o3YWNXgohbf20g= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5/go.mod h1:wYSv6iDS621sEFLfKvpPE2ugjTuGlAG7iROg0hLOkfc= -github.com/aws/aws-sdk-go-v2/config v1.27.38 h1:mMVyJJuSUdbD4zKXoxDgWrgM60QwlFEg+JhihCq6wCw= -github.com/aws/aws-sdk-go-v2/config v1.27.38/go.mod h1:6xOiNEn58bj/64MPKx89r6G/el9JZn8pvVbquSqTKK4= -github.com/aws/aws-sdk-go-v2/credentials v1.17.36 h1:zwI5WrT+oWWfzSKoTNmSyeBKQhsFRJRv+PGW/UZW+Yk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.36/go.mod h1:3AG/sY1rc9NJrNWcN/3KPU4SIDPGTrd/qegKB0TnFdE= +github.com/aws/aws-sdk-go-v2/config v1.27.39 h1:FCylu78eTGzW1ynHcongXK9YHtoXD5AiiUqq3YfJYjU= +github.com/aws/aws-sdk-go-v2/config v1.27.39/go.mod h1:wczj2hbyskP4LjMKBEZwPRO1shXY+GsQleab+ZXT2ik= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37 h1:G2aOH01yW8X373JK419THj5QVqu9vKEwxSEsGxihoW0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.37/go.mod h1:0ecCjlb7htYCptRD45lXJ6aJDQac6D2NlKGpZqyTG6A= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24 h1:WEiv2o2tjSx9tv5jP7rCR1P8FE8c6DxkFpvHGy6SYZg= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.24/go.mod h1:mhxj3DJiOXogLRZ/wlGmI9VHiCW2kzHjHTJLxexOtEk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26 h1:BTfwWNFVGLxW2bih/V2xhgCsYDQwG1cAWhWoW9Jx7wE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.26/go.mod h1:LA1/FxoEFFmv7XpkB8KKqLAUz8AePdK9H0Ec7PUKazs= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= @@ -1254,244 +1254,244 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvK github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18 h1:OWYvKL53l1rbsUmW7bQyJVsYU/Ii3bbAAQIIFNbM0Tk= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.18/go.mod h1:CUx0G1v3wG6l01tUB+j7Y8kclA8NSqK4ef0YG79a4cg= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2 h1:YQmTD87Nr1Pbs744qILXJ8Z7kBdmtPpVOuj/gkfgm2g= -github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.2/go.mod h1:lJHy3hPT0NATCHF+ZbrShk+WFmp0SRF10+zoIPTFRlU= -github.com/aws/aws-sdk-go-v2/service/account v1.20.2 h1:4k6o41QjLjgRWJ4noapiYOt/MkTKYpxxm3tV3auMV54= -github.com/aws/aws-sdk-go-v2/service/account v1.20.2/go.mod h1:7pve48PWWDbBFRZwqJyWGcvbkHpcUBRHtWSkoRMVOnI= -github.com/aws/aws-sdk-go-v2/service/acm v1.29.2 h1:+zP+Pp6cIajY8CPT+ABCOLctvmYkNuNUSZ3vrDIvKzk= -github.com/aws/aws-sdk-go-v2/service/acm v1.29.2/go.mod h1:pyj5IBRLA+w27gR7KJY/4lSWoP4XOsyOVsXKAMvWE3s= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2 h1:akZeRODD6PrS5zCrNeAru9IKEr/P4ocf4VMehHYnxaU= -github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.2/go.mod h1:i+aP0us0oDFVPP86a/xf3tR0uqWv/FYdlMGn2DQ4MTk= -github.com/aws/aws-sdk-go-v2/service/amp v1.28.2 h1:4bWDnWg7C2j08Psm7spPES8amQfaLfaFNZVSTVEX/uQ= -github.com/aws/aws-sdk-go-v2/service/amp v1.28.2/go.mod h1:Kl9aIKyfKh4EbccGaxSa9S+IbWYsqnCBKeY7XVy8Smo= -github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2 h1:K5yvCYPvRDXPnx6kvgbl/mMGcfKbEvgdJxZKaf+ott0= -github.com/aws/aws-sdk-go-v2/service/amplify v1.25.2/go.mod h1:Zoj++3OeG0yMMdxvtSdoWY5U/kUzXC5xWjWz+q9Yk5s= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2 h1:qX2lC5M6ZrjFK6CJl6qrRWtLWPVDVfMh3k4TFW+eWEY= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.2/go.mod h1:qTYWFp/mdwk7tM8Z0lcFnUUvywmc0GYRmj/4Ko28yQo= -github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2 h1:GOB+u7ARBjmATXqMsdHaiLPGW/OIGJZb+sbT5S+cJv0= -github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.2/go.mod h1:y75KawFLMiWESE86a4IwN+iBlxSYT5rpqySlcxQw18c= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2 h1:AAZ0ElKb+RRTm/S7lftJHFAd4d87utD0RKveSb+udQg= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.2/go.mod h1:zqEdmXsD9qS7hjOMednGrVDu28O8d0VzmYR6eouWYlg= -github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2 h1:lozdDDLmd2cpXik0QFyo6zyTAtPid7xVG2ouyU8Xyt8= -github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.2/go.mod h1:pdRgMYHJfDDeTAw4TI4+EfxelbtA0U1On/PSUPhGz20= -github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2 h1:8rj0j8OieQBUrFE2G6qCpebwEcE4LYaukKkKi1jsyH0= -github.com/aws/aws-sdk-go-v2/service/appflow v1.44.2/go.mod h1:7GrCW+K/o84aiTvG0/Ay/UCAiwjkonvuGvnFBFpJITo= -github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2 h1:GuaLgkDKBJafUAd25WB8XdsFrfc3EtOwmwQxA2sqOJ8= -github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.2/go.mod h1:AqxcYxSdMO1ZSB3d10Eozc1RfKfYjrn0K1nIsjaYJ+Q= -github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2 h1:axbeTrC2LP7QpwzBqUSirrzDEWEJbjHmWMfF/OL6xwc= -github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.2/go.mod h1:tPjL3WDvnky54nGINDJmP6byRAbQiIpdLbT6gnZq4nQ= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3 h1:0N2qI8kmroTN0haXJR5kcQa4Dfpbh4NTicTaI3MoAr0= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.3/go.mod h1:lIGEkWgdZrjtZyPQ1XMjYfFCWafpP7F30Rdz+wevQIg= -github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2 h1:/vffn0q6cucT9+Rc/3hqjy1Z8I4tCNddcquhVdm/Puw= -github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.2/go.mod h1:Q5/Cw6jsfPipidwxebx1bAwPCOzORVyGU0POTe//8XM= -github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2 h1:KDIqoM0RfW6AZAol93MNiOVd5vITNO2lfLhU0ENDPTs= -github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.2/go.mod h1:EFX0QOb5sy2bc7qLrCtaWBCAphAsF2H7q6vzTklMXds= -github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2 h1:Lh2SCnNCFYaL3zPZ15lo+SaQNG6d901gqoU7yGjXupE= -github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.2/go.mod h1:6VHD8l7WdVP6s6haYvfXpO632tCCvKI9etO9sbwSBOs= -github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2 h1:NdSOBVMDu5iCigj5gPCqUK7R3nPJukk0fXPLj7icp9w= -github.com/aws/aws-sdk-go-v2/service/appstream v1.39.2/go.mod h1:swGQlfkXcvKPFgrRJINANYvHb2u+NH88mPyhvNqU2Pw= -github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2 h1:otkSvG1Z+TARNn58Y5qjdZMbH2+GOnwV8+K2R4gSLzM= -github.com/aws/aws-sdk-go-v2/service/appsync v1.37.2/go.mod h1:MWfGPdl5m3phNVRgLU3fIgPnzTgrFwONX/T8/DK6eoE= -github.com/aws/aws-sdk-go-v2/service/athena v1.46.1 h1:pYdI80MNBtGZnI2dfBk6r0CIQsHWpw9Td8uYmgItsRU= -github.com/aws/aws-sdk-go-v2/service/athena v1.46.1/go.mod h1:BPy6WfKKUTQhO6hVCyImd1I0ejlngPaCu1zU0vZ1vPQ= -github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2 h1:Olieok8TUBkc6wCb0Qp8nrmI+iDBHOrA0IZNAAf92Q4= -github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.2/go.mod h1:auTo9OWA6W4naXZIKjBZPeUdYe/5idHL7r/+6zgbbFo= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2 h1:2S+PZEKpyQUbNaR2p+CTO+NfS1+x4Su7xSdaZcbGLEw= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.2/go.mod h1:Gmv7s//GGvs3nj9aqltFYnLStW8vDIwch0USkE67G4E= -github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2 h1:rmtYggAGmr9RVOv+acf+FKbpNkdKnrhucJw01gQkjHc= -github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.2/go.mod h1:IXXoIU2PoQd+uUpu1qzC+tcyWpaJBLlX3bQTvaxO6Fo= -github.com/aws/aws-sdk-go-v2/service/backup v1.38.2 h1:0frocw5aVGUnqsVg3BqtdwncxUlTNulFSOtQVHlrtfk= -github.com/aws/aws-sdk-go-v2/service/backup v1.38.2/go.mod h1:MWWsaecE5EujYI9tD9+yeDmKcPTkfrBhS9TPX5EYIEI= -github.com/aws/aws-sdk-go-v2/service/batch v1.45.2 h1:VZ+ompKb9w3uZspgZ+2yD2OCEeUJJvcaC+VVmrN967g= -github.com/aws/aws-sdk-go-v2/service/batch v1.45.2/go.mod h1:z9GrSORElTuTG+rLKbQMAKi/QJeZIlaSx2c1PWO54ok= -github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2 h1:kLgOBz/6VNu3at3pkd3BjmWMsXbcQsGRIWwee7wuiIA= -github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.2/go.mod h1:DsvYjYqN9EHrL68hc7RYYImI68BeyMdku8+8rm+AeUk= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1 h1:tBs50qPo0MQHzrggd2za8RchMFZCSgnQ+pJ18O3Nzhg= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.1/go.mod h1:zr1Em8iRwo+9WWUsfYSR9ugG0TFR2hMDaZYqMLH7f2U= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1 h1:JaVwiVoqBMT7939WM8RmaKl20AM9T1/QJpPg94TIu54= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.21.1/go.mod h1:TWgiTaFOEPO4WmONX+kASPCHobxtLGPjQyT80mPOvSE= -github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1 h1:2ccATKKXh7llmUNifz2hcLh3Dcv8rRnCJh/72HCVsSU= -github.com/aws/aws-sdk-go-v2/service/budgets v1.27.1/go.mod h1:VPYBTW5go5v/QIeXzhkv51xoj5pRpIIlWe8NCdHFfbA= -github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2 h1:qOY3VrapFxZtmIwvFNUCh/qStdhfCYlkD0VA+FBPBTc= -github.com/aws/aws-sdk-go-v2/service/chatbot v1.6.2/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0= -github.com/aws/aws-sdk-go-v2/service/chime v1.33.2 h1:n+gJuylm+jrTpGgjDvTzgsBw0eBuRRidjjkGg//W7Ls= -github.com/aws/aws-sdk-go-v2/service/chime v1.33.2/go.mod h1:xyUd00h8t5+bu5qN+XDjeA2U5O2sWSH69lphLQWNCec= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2 h1:/1EDqoxB9eGFjir37+1w0H5Y0tCSUZwY9dtPEYK+/Yc= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.2/go.mod h1:CGXRUn9razUClMrT0ztmaPeAtQJjBuewiZ0htkSlj1k= -github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2 h1:nICIPZKYDiFAPY8A8dm7TWNBV4a5QUQe+Qymox5Zlg0= -github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.2/go.mod h1:Y1Sv53bccpWBNWIw6+29DEztSouqq/u/S6S/lPqI9/A= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2 h1:kNG2Wbo9SSkIaSIO0kVyogca27/aHBuGP/pNvIwinmc= -github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.2/go.mod h1:iX55GDn2lL2pthAp3k3lNpsRfFdfNpvYlHHqu8GQKT0= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2 h1:2Lhh/yg+CgH6Pu7OvesM6uP62spjvZyUyWsn60xFjww= -github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.2/go.mod h1:R6qoyNSjchvHZZrUVpMwqjqOuDNCdk9qoI9IagO02xg= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 h1:dCuKmwWeHdV4Y1Z4WKp8Ss006WN48EHVcPyMgtWlanU= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 h1:0xzfXPA31Hkoi9KnQnkZNll3/KvkeYF8eYAvbjy0FOI= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2 h1:U8FVH342YcgI+nLuy+XctvI+M+jkmd8yBFnkM/8CM/M= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.2/go.mod h1:cShu4+4PIZJ5nvMI+NEcItwVjMxQV0SGMYMMOLN5FME= -github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2 h1:+1l8em+RaE2ZULoxo/NELNwgEAiMkEYBW34VtpevP8U= -github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.2/go.mod h1:MDEsRSicvgQweiN8hbGErk583wyHZkOlbc4BfKhSi3U= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2 h1:ZbBguPNHVub12aYeNY2VrU0qCuFaYoV74Ef/H2UK0pw= -github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.2/go.mod h1:Xt7hXQe1EeZQ5J0efi7SS12CN5otGyTS5IFnWCIK6cg= -github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2 h1:zpemefmICrgOOomi/J+DmuYMdaVMl6QU/UdrVzYMtmE= -github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.2/go.mod h1:0ZqrezjT/L6ruxNur0O+LcXVIiPPGpfhfGy3FNokiuU= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2 h1:sLoUkwhrhogwbnQ2/nsc1MT3dia7krZHHwCMbFyYGbo= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.2/go.mod h1:ODEcuhq+MDaWP9fpgCPcYMKE12pyK5g5W2U0z0nHEiI= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2 h1:jB98st53IkKoKXQAwhP4WjVaP+dCBOy75HfCo6Vlx6k= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.2/go.mod h1:TqMW1vaXXczuV0O1Wk+8+IZZQg7VusHNmTeJzNz6PK4= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2 h1:q5+hHt4JBA+8K6uAvfLWpUs7ErVR0GNW0Xf5KTOl84c= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.2/go.mod h1:3p7NzlLlJesNGovq7Vqx8+0UibawzodrBRQAbaza6pI= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2 h1:7XOQO97FkhrPuCcmDqX4IaaEC93Fr9bXfJeZ6b+weQ4= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.31.2/go.mod h1:7QKOwF4gC/ELkHuKTnVr/zGuQpJgdcIfFO3ph9TZbS8= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2 h1:2nLfDL4Gku6Q8u/OUyK7UQPfAxephIUZaLVa853KSFw= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.2/go.mod h1:gSVnRPxjJD21L+rU0ovZxs6rn0bigG5Rvthy3EDNlMc= -github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2 h1:vjql4sX+ZLBdAbEFLoA4op+RpG6M0KTVg+tgXmkZh7c= -github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.2/go.mod h1:OCGGMVnFTtz8ndbULEt/0schZMYbkrEv4kd3DY0OG24= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2 h1:KejvYNQBN5Bg4tqUdVDaeD2liYIBJ14G2+w9h6SQz8U= -github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.2/go.mod h1:u7i817xe1zuglUic23rNGtTrOUUsBXu7Eta7qT2LuVY= -github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2 h1:DvI8uoJ1Lo4/+R3vRe+bRha4Z5EKW/fFpWKB8aw++nE= -github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.2/go.mod h1:tFuhSKT1n7eljVQM3cRoWIy1dEBAD6FsWMZz+qhWFBM= -github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2 h1:/2b5F9SrPWB9aAUFtkHiBIEP7FHNFajoYUnneFfzJsk= -github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.2/go.mod h1:JbkzZ7jxnq5In2Vli4KSBwa3SQBYsEljXnU9sLYV7i8= -github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2 h1:rNz+kVcBFZPBfHh5SPKRgRxTAyAoDfgiTV936b9swNE= -github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.2/go.mod h1:Mhqj7N/UgBmGSH3WovRSc3SjAPyrtuGcA/+neISmIW0= -github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2 h1:FyUgJPqqrSFAcnjx5pB2f+B4GYLa6Mt9Nw+5D9mNS6o= -github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.2/go.mod h1:i4H+MjU3upyb6ZsA+Pn0gCxF3UZHK+UkfZbC+li1q+o= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2 h1:z3thnJn7UCM0bieVB5ZINUV0IM/tVgw5oBhLNdUzUJI= -github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.2/go.mod h1:y7TM6E4TCD8+x50VnNbAH3gwGvTu8zR4zTKdwdm4XqQ= -github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2 h1:ZC0d9CxkodWlnBiobLDsfkgovwFfDyWcCLAHFDwOeqM= -github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.2/go.mod h1:b+BhQ4WcXe/J7OgpdEJKJpt144Hr6YnVV8qHloDxlb4= -github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2 h1:GxB8QforCn/11fvi/rYOQFCDAuHsenXmLM3dpWXwTxM= -github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.2/go.mod h1:a1To+qurpzkA3MCZzjas4bW9Z/L5AAHjIArAxHFtxqY= -github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2 h1:hJFj9I/jRWHD/cnte1ahy9/adxtPaHqeYQQuQbemfvs= -github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.2/go.mod h1:xulrffP9hSEvUGxW6YzICDHncE+YOIaqAJQpZ4oa1lo= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2 h1:8xrHwm/q2zoZaHjzeOWtzw/E9VTL9UMVCNfFc81E+XY= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.2/go.mod h1:h5enb9YgyDSRi4uGwhSJ89n3iTr32JH71pSkS9T2llI= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2 h1:dspHd8Y7ffue8F5h6mUICnQfmzo4onTgB6tzzWtw10o= -github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.2/go.mod h1:Jw4CASgF23Mj7I5kYvmySYhA0coJ/XFPowiZzDO/ntI= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2 h1:vQVDN6g9IHPhz1PnHtKXU9u3f9FPPEbhwZwM8RY3h40= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.2/go.mod h1:H6L0gPktke/eXLdmWAmSEtqCvnScGR4n1bCEECxUcPg= -github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2 h1:8Ih+i9qVSZhy24+rt7HfNCbf+/mxCPw1/A4A8rHYES0= -github.com/aws/aws-sdk-go-v2/service/configservice v1.49.2/go.mod h1:Qy3rMJB0ubAZERN7lLz8LFvZsDu3lky1FxgRi9YL1Wo= -github.com/aws/aws-sdk-go-v2/service/connect v1.110.2 h1:9tk/SM2kwCKEKOlmbJ5bNIVMkaz+mMGVGTgXeQghak4= -github.com/aws/aws-sdk-go-v2/service/connect v1.110.2/go.mod h1:CABcU+S/c+FYiialvtOkvmLJGZ74uvmBT4d+Vu3hxZw= -github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2 h1:V4EupRu/r0xIBu5dFA+9UAOjujrLFvN2f5/K9ja4Zwo= -github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.2/go.mod h1:cOWYemFX/adFqPqtub/azuIRvwdY0R0LJGTkr1QIZ24= -github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2 h1:HYbZn+59oaC5a2gtEyYVVu5uE7NF+Q0xKl5Hf923tyc= -github.com/aws/aws-sdk-go-v2/service/controltower v1.17.2/go.mod h1:+ZBJWyjkDJLcEzwXvItgNY5J6XSEG82TfsJuQl8+y2k= -github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2 h1:r6/2EyG4s1wNJuwEGhoOxIDuRicYLnqVy2zLs9dYaHE= -github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.2/go.mod h1:gg0SRV/oMpd3Epnr40hfHHKblepwtJGzS+72d6dbjyc= -github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2 h1:O5mVjesPu7pTGZ3YGnM9ci2q3RDqVHqSEFV1lXV5WUI= -github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.2/go.mod h1:a6/GpE3Tnm014bqLO0PJBvtccOwFxkASInd5v1cgzjo= -github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2 h1:O2tJDak9XN63z2RVQ/def1piFxfFjLMWDnjIz10Nux0= -github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.2/go.mod h1:98sA/x6XAINQV0JybTCFYsipvRH4gd3nt+6SX553bLc= -github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2 h1:c8SRhxg5DKHKz7UIxrnrdOG2yzGQBSvNTmhYQ+eaZbk= -github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.40.2/go.mod h1:PGsGLSh2E+/V+vXuyZK4EGn3j4k3A2ay49OIMLlk2ic= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2 h1:qMiJOf28L1TYZAZn+4o7F27KfVloNXUa9vMlfxo4UYo= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.2/go.mod h1:7//pcdOHw+SewAiqsofkc7si3bJfsl1EhtSGjCxxI0o= -github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2 h1:u4Ny9A0HLKHFeBt9rYiVZ0nHxcplzDnR6CNkMYIrUHA= -github.com/aws/aws-sdk-go-v2/service/databrew v1.32.2/go.mod h1:tYuM9WbCxwDPSrlOOxOxpG0RvcJDTvKTNjSlRyaKO40= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2 h1:hXiU2BckS+CKc3QUAnZ98lSEnOW7juLM3USB7/p9KGA= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.2/go.mod h1:NOXKjiu5OAr05igIT/wuz1MIQ3cI37tifjg/FGjuaeM= -github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2 h1:Gwm2+0y1yRX8fZ7damn57Q1VIsEbx//nsOyjsO2lqd0= -github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.2/go.mod h1:sEUC0WRnhTZ6S41N8IpQ8STEa80EVGEgumpJiR+delY= -github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2 h1:ayOsQkEi3Hh/VdX3cB+W1kKWnSDLxkwAjSsgLMac0uI= -github.com/aws/aws-sdk-go-v2/service/datasync v1.41.2/go.mod h1:LNhV00Ei0xWhWGWfJFclgz53gSvzuPryJP87tr3LQ1o= -github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2 h1:pnhsTeEQJmwEk5yDhfczBs8YNaqYLwnNQNrPoMvrJAY= -github.com/aws/aws-sdk-go-v2/service/datazone v1.21.2/go.mod h1:SlNgA1JM4jSr3/yRQU9ryDmT9FU7JeeK6ILFzsGV6bM= -github.com/aws/aws-sdk-go-v2/service/dax v1.22.2 h1:h9DT0c01BDK+ATs60ch20ZRc61w1qlxuzCMzfiItvvg= -github.com/aws/aws-sdk-go-v2/service/dax v1.22.2/go.mod h1:oY7CKPoSGkh13xaargIiUD8/Ezbk9FN9wedIWhiB72E= -github.com/aws/aws-sdk-go-v2/service/detective v1.30.2 h1:6V7GrOIzGDzEHoJLyCssh8cANwIDzkKlgaoJxP9EiPM= -github.com/aws/aws-sdk-go-v2/service/detective v1.30.2/go.mod h1:5RGRM71hnAB5+c2RVcWB1FGFcbIXMo00FkJERKWUu2U= -github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2 h1:VxMXsmXGpbV2PQFYq6AvnjrD0G4GdKXkRkZZtWkklvE= -github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.2/go.mod h1:ymTXw3f+6xV04ccW8uq/XB0iHmCDzmZDj6VcbfLT+ic= -github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2 h1:W70w0qn9o4b4hu0Uj3SNnltoQhmNe0diAOdtF1q0PmQ= -github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.2/go.mod h1:g/iaynRT4qx6SEtQJebsHCiHHhKbQQ5bkkkCTrTFaxI= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2 h1:YqKD6Fdm6ABH5Qkdu7rtRK9Py2qvNpfCJSw1Avuf3nw= -github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.2/go.mod h1:CKVqICst9G2B/0ODGmhPNyscYTLRHmaBOrf+UAA1DSs= -github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2 h1:tNsl73HF+/IlQyEzqlFUy2Ij9SC1cy88Jrh0HxAeSjw= -github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.2/go.mod h1:bNW2LsxPe8qmf9jrD/0pxAQgFxQb+2+9L2qSbHxzpy4= -github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2 h1:CP480z7cKWFBOAtbZVYVzt/T9CU5uDZhY0w8KHLr6FQ= -github.com/aws/aws-sdk-go-v2/service/dlm v1.27.2/go.mod h1:KcUkBzkOmsrvTKoL3ocIRkZ6vDWt+3PIQcIcX9ISaD4= -github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2 h1:nOB7tXBIGv4Vmxk2NmZflZtm1MbwI5TyMoJ4zVWsUqw= -github.com/aws/aws-sdk-go-v2/service/docdb v1.38.2/go.mod h1:0zhD3ZeCDO6B+uXcjrmEvN/LfHPWaGfaEzvDLRoX8kI= -github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2 h1:C7Y2FT7M9gC7jV9CMuuEFxRiEhsvuGaNLvhRykxUAx0= -github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.2/go.mod h1:e2B1Twznjqz+KBGxfd6CA1RHURfq3ZgqWTfYQ1+iWUA= -github.com/aws/aws-sdk-go-v2/service/drs v1.29.2 h1:4gZRJWOFt3mLDn8ufotsqjNJsRoDKRsX5HpiI44M5pg= -github.com/aws/aws-sdk-go-v2/service/drs v1.29.2/go.mod h1:zirOznRrHBraFOQVYrN160wv6/VQ2mfY/3KYsbuMsrA= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2 h1:EGvR8KwbxUXEUCS4HAgSRcxeFT1/0bqvS5tRR0WZSbM= -github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.2/go.mod h1:k5XW8MoMxsNZ20RJmsokakvENUwQyjv69R9GqrI4xdQ= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1 h1:TwFjSwRn1kR1i1qeq5cQBRwRaZ80JQS8BHsJTb6QBk8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.1/go.mod h1:W6sNzs5T4VpZn1Vy+FMKw8s24vt5k6zPJXcNOK0asBo= -github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2 h1:bVNvja4oEB7v+VL1yP46hWthCPp+KYpZBLS2AifM5PY= -github.com/aws/aws-sdk-go-v2/service/ecr v1.35.2/go.mod h1:oRaGEExKI6Pqcow+Tt7wpJf73/Srcj/CUJv5Eb9QFhg= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2 h1:nm24ndpFJU6+FBzb+kU2Kp9KEPnvFkIZJbL2sgGa7rA= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.2/go.mod h1:wtQIcTA5qkJq7k+Dx/jdDp+UZ/CU8uatz5K5LgB7QB4= -github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2 h1:mC8vCpzGYi87z5Ot+LcIU7rpabkX88os9ZvtelIhHu0= -github.com/aws/aws-sdk-go-v2/service/ecs v1.46.2/go.mod h1:/IMvyX4u5s4Ed0kzD+vWdPK92zm/q4CN1afJeDCsdhE= -github.com/aws/aws-sdk-go-v2/service/efs v1.32.2 h1:jgSutXkS0xwU62CAVaougzdEY363D3UVRfPOsAOWaW8= -github.com/aws/aws-sdk-go-v2/service/efs v1.32.2/go.mod h1:OjGU4D2nV44fe4FnNVY+6rgJVEGhzmVMG3YRhkfNA7U= -github.com/aws/aws-sdk-go-v2/service/eks v1.49.2 h1:N/4hhlXrBeFbbx1kIidPtJQt1/08HTzYIy4JSGlNn04= -github.com/aws/aws-sdk-go-v2/service/eks v1.49.2/go.mod h1:QUjwO93Ri00egMAeWw75dviZBM5pECLx0KNeNaBtTIM= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2 h1:NjhUOnSCE17kKi5o8trsL5oKPebdHcUvTld1joRnDTg= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.2/go.mod h1:EaaOoWGtdLYKuknbTnluNoN+qUUl6uZ6I7+Uwww9nBg= -github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2 h1:L7FqD7vLkCC8kBgUQAW1+iNmQUYzhu3rkD5vz1eaBDk= -github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.2/go.mod h1:5NAic1sOc8jQJPkxyt3yp57hpQVp41Wh9fDnmKexj7s= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2 h1:xgMgiJdDb+pxxHut+coSQSrNIlrQ3/ehO+E42zH5JB0= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.2/go.mod h1:A6rhNF3Qz6pn97WX3DcIK7g6ODOCYR7t698ptify9eM= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2 h1:0pVeGkp7MqM3k3Il75hA6xI2USdkjaUv58SXJwvFIGY= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.2/go.mod h1:V/sx2Ja18AlrvTGQsilx8CAH0CPm+hpKdT9RbSpceik= -github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2 h1:U11UxWxiYcBjqDt+vARGrVVDbTROK+M+tRWl1HJVgZQ= -github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.2/go.mod h1:SBlM+nGd+apEfj1alZOfCD1R0eRu1l07aPLE07NmcIQ= -github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2 h1:Z0KkEOOXTtNLtBdgDh/kjadJvLqb1O1ujmc3IlkE5ZM= -github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.2/go.mod h1:Ty/I9/hKvlG+mrhNjtzibl3z18CKrWQ3t2NqGiMNJ/Q= -github.com/aws/aws-sdk-go-v2/service/emr v1.44.2 h1:U+qZclI1u+xnE3a8gFx/5St28IydK1NSo0UacnAg/yo= -github.com/aws/aws-sdk-go-v2/service/emr v1.44.2/go.mod h1:W/bmWMpxDqCLQtDv9qGm5xXDNeTj35JaFqLigrdjz4U= -github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2 h1:xTTqt1tv/JZ1EsC/cPNgyocXOUyVs7WP1zaU2a81fqc= -github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.2/go.mod h1:a4fGAtF6z0E8s2rbDGH8mSHyvmnqVVldBElSoWTPQ8w= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1 h1:Z6rv0xWUMLnBhiAc7qCj4Lo2UYPyXNuAp0NJ4QjSvXI= -github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.1/go.mod h1:RCopj/EHUg941AYL6ZbDsQmDqGZWOuXn3ramg55pDs4= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2 h1:WJdFogfI9sVFKf/ZIQXZ/0nJtpZeWSW3s/L3SOfL0no= -github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.2/go.mod h1:bcL34EfmexE+PLh2o4oC1VFpP82Ev8p4dL0PqdZ13dE= -github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2 h1:0b33serEdMYMwKT2MpKNgei0gY6FCc8RVyaQA8+GRfE= -github.com/aws/aws-sdk-go-v2/service/evidently v1.22.2/go.mod h1:ENASEjoB/RZ+jFXQfdMk5aHFfMuh1G3bU3BQA4H59ZU= -github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2 h1:xaxJ+gTTaNEfrkNjUzbbDYbwI0D3Tre/+BBnFnpUnyw= -github.com/aws/aws-sdk-go-v2/service/finspace v1.27.2/go.mod h1:dFFKSS/upWYJZNUXvMiPN8x8VRk22t1fvbDchvjRaM0= -github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2 h1:ogxJMxkX2KFVdIGq9WebqlLBxPhloQ9I9BpukHX/R5g= -github.com/aws/aws-sdk-go-v2/service/firehose v1.33.2/go.mod h1:tE+sNCaKv8bbkO+ZC6+pW78XLU/gIR3Cpf1u/bvNijE= -github.com/aws/aws-sdk-go-v2/service/fis v1.29.2 h1:RWiBX+sjEoaiZMTGR5b7HZgoa5zJPY5JK1oyK6swAzE= -github.com/aws/aws-sdk-go-v2/service/fis v1.29.2/go.mod h1:CBgOCLeXvDU74UgYjPYsoE9IlRZGik0i5WjavW0q0QQ= -github.com/aws/aws-sdk-go-v2/service/fms v1.36.2 h1:gpJXmDGkBQ9jLmt4QVntHvoyhxrzVMoxL1pd8EkJsDw= -github.com/aws/aws-sdk-go-v2/service/fms v1.36.2/go.mod h1:cdkaCZeeY4KmtTTmyhNJFMOZMgGjCmjDKT42zz/2Tjg= -github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2 h1:4k/NQnUapNpXQD2tIc6xtJQfOEChdly7YNgArnsk5ZI= -github.com/aws/aws-sdk-go-v2/service/fsx v1.48.2/go.mod h1:2+3MHztdO6eYx1eyJvCxOMxScniOOoH+odXLWWw0FYw= -github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2 h1:uzZJ/ZjjO2QDj8xaDSOaIYXaYyMb28mgJP18inpsg30= -github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.2/go.mod h1:WKyK19AJzSX9Zhb5mxqbwSSqiBRFUS3unET8oTBl1CE= -github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2 h1:s/ttSCmIz0Z8ILQisHTSmPH7/B8pxcvWlrtM5eyL5+4= -github.com/aws/aws-sdk-go-v2/service/glacier v1.25.2/go.mod h1:kUOQuvD/VtRlbMe0NyC/iRI1mt7GJis03UJCkpVwXbg= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2 h1:ymB6hgwMyez1TYaJlhZZIPTPXR3SnvtRE0W97ovIis0= -github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.2/go.mod h1:pE+qNlA2dMyRuR9Aa04QjsmJ58olbXpITfoTU31gFjg= -github.com/aws/aws-sdk-go-v2/service/glue v1.99.1 h1:6N7p5ObMgKGvuYlykmQe0w7RT1grVcno76uHpjMYXkM= -github.com/aws/aws-sdk-go-v2/service/glue v1.99.1/go.mod h1:rCyUHLWGaSR9/oQgj2nGKRmPqFwtq3qxL14LkuQdadA= -github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2 h1:sZK/YN+Z87fOzbHETdZh/Xh2tD9hz8kfOenKUCRdZdg= -github.com/aws/aws-sdk-go-v2/service/grafana v1.25.2/go.mod h1:pEIZhxlz2p3+Cy1XhSsaFyY39/B0Nn6oJKpkAJbQDjM= -github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2 h1:g80pJX2ix025iLlDiq0JpbkVZGc5IWrAp3P+e65q03I= -github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.2/go.mod h1:1Yw2CINy4NiSVkUlLISuHsgCmJCZbXW/o+6boJqaH3g= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2 h1:VGsu3h9F4fHrtcJ4cpCVWSjdE4qX4S7pZiFnuoYpltk= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.2/go.mod h1:sKC0TSEPMD0JJq8lg49fCdlZIk7z0VZ+hHGDZOUPmpM= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2 h1:F7iPMAIiEX5xqUEhbeflkREaforxmuIkobZi9apGFKc= -github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.2/go.mod h1:yL5DOvh8huFx2ZwB9kj20TnZ5DQJjnoCYUkFitas/2k= -github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2 h1:yL7d23FePZ/Q3gjFa0x0P07YAIBQ/O9nwli/WV+2w4I= -github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.2/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU= -github.com/aws/aws-sdk-go-v2/service/iam v1.36.2 h1:2/kSYD8hfRU/q1HbgSzZ4PGiDmzDwtPSYgJq4yxF6bs= -github.com/aws/aws-sdk-go-v2/service/iam v1.36.2/go.mod h1:HSvujsK8xeEHMIB18oMXjSfqaN9cVqpo/MtHJIksQRk= -github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2 h1:U+HNs6NYHwbsqaMPBYpZAQQMBB5RCPIChjm60fKQVyQ= -github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.2/go.mod h1:zVLejeKzvUdQD69k8ladCxzC7SnlG1EJwJloK21x/QM= -github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2 h1:OZZ1k1dbGtRfCC5ilXnBcvkgzcWTcGhc5zvmsiHpnZ4= -github.com/aws/aws-sdk-go-v2/service/inspector v1.24.2/go.mod h1:ul5oxAUMHtKT2ZZx0uNjbv7pCOao5eUCO8d0Jpi6gQo= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2 h1:d/1zWwXIDc+4YDKrSIVCGprp9l5u+KOyzpoG+2zEdWI= -github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.2/go.mod h1:g+8cFzj/P0kPK+p5zSd6I+MFIk3wWwkadjuiVMYeVoE= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3 h1:W7jyHvnVaMnNAuRp4miA1fwjHwCx3M+o0ADQiqYpy58= +github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.33.3/go.mod h1:lJHy3hPT0NATCHF+ZbrShk+WFmp0SRF10+zoIPTFRlU= +github.com/aws/aws-sdk-go-v2/service/account v1.20.3 h1:lkuJnJwlCDxV/5cQLr38VSVTFb7O6QfPPcMoqdQMiBk= +github.com/aws/aws-sdk-go-v2/service/account v1.20.3/go.mod h1:7pve48PWWDbBFRZwqJyWGcvbkHpcUBRHtWSkoRMVOnI= +github.com/aws/aws-sdk-go-v2/service/acm v1.29.3 h1:EpXx6a8u5ZnhBuUr9yj8sEQv67jYkC8/TuRvS8TG248= +github.com/aws/aws-sdk-go-v2/service/acm v1.29.3/go.mod h1:pyj5IBRLA+w27gR7KJY/4lSWoP4XOsyOVsXKAMvWE3s= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3 h1:zyilUf52S7oS/jc0Kwsf38UsRdH9MW98kk7/KWQfL+A= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.36.3/go.mod h1:i+aP0us0oDFVPP86a/xf3tR0uqWv/FYdlMGn2DQ4MTk= +github.com/aws/aws-sdk-go-v2/service/amp v1.28.3 h1:0gB+UYQc3awidpH/HkilNhgF+IaPnIIy3SXLWb1U4Tk= +github.com/aws/aws-sdk-go-v2/service/amp v1.28.3/go.mod h1:Kl9aIKyfKh4EbccGaxSa9S+IbWYsqnCBKeY7XVy8Smo= +github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3 h1:lXozHLY6NerIDOwbdfi6E5kcS7jR/Y+2Cz+h42gPosQ= +github.com/aws/aws-sdk-go-v2/service/amplify v1.25.3/go.mod h1:Zoj++3OeG0yMMdxvtSdoWY5U/kUzXC5xWjWz+q9Yk5s= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3 h1:CQ3fmvM+/APKVgqjEnvAaPFI2VYZwcYJp2DSyG9K0T0= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.26.3/go.mod h1:qTYWFp/mdwk7tM8Z0lcFnUUvywmc0GYRmj/4Ko28yQo= +github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3 h1:WZUt0kax46jxtDyvkJuusHIofvy4YsmaUq7fKIh8qHg= +github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.23.3/go.mod h1:y75KawFLMiWESE86a4IwN+iBlxSYT5rpqySlcxQw18c= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3 h1:K8ookTM8fwGCN9EZMPY2eYdvdSPNlH2nrLNdssgf/WI= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.33.3/go.mod h1:zqEdmXsD9qS7hjOMednGrVDu28O8d0VzmYR6eouWYlg= +github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3 h1:vJSZCJ9T4vack52H0XiEvnJDyHCZ8PFn5DHJAB3/pxs= +github.com/aws/aws-sdk-go-v2/service/appfabric v1.10.3/go.mod h1:pdRgMYHJfDDeTAw4TI4+EfxelbtA0U1On/PSUPhGz20= +github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3 h1:Hb5zbY/Fglog1bSFS1/Sdxz6ofvGEfriO1rM9ncRMbY= +github.com/aws/aws-sdk-go-v2/service/appflow v1.44.3/go.mod h1:7GrCW+K/o84aiTvG0/Ay/UCAiwjkonvuGvnFBFpJITo= +github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3 h1:dFSvmre+fpn6l7Qp/fGvFw5f0qPe+8Wz0iz02/Hcg/M= +github.com/aws/aws-sdk-go-v2/service/appintegrations v1.29.3/go.mod h1:AqxcYxSdMO1ZSB3d10Eozc1RfKfYjrn0K1nIsjaYJ+Q= +github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3 h1:cZxQfaZGUi1f92prYUimzy+eHX4d/RhrkFu641ec8UY= +github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.32.3/go.mod h1:tPjL3WDvnky54nGINDJmP6byRAbQiIpdLbT6gnZq4nQ= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4 h1:cJ28u3JtAfnXGGbHeKmOD87/+2rIYpI0DIlnbyQuTUE= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.27.4/go.mod h1:lIGEkWgdZrjtZyPQ1XMjYfFCWafpP7F30Rdz+wevQIg= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3 h1:Rksa6rqOO+F0qgm49Pwz/QDaKD7R8KpkKEa7kUWRccE= +github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.5.3/go.mod h1:Q5/Cw6jsfPipidwxebx1bAwPCOzORVyGU0POTe//8XM= +github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3 h1:quo29EEIlgHo/byYxcLJr2yjUKimPIHjAsA76J5qzaM= +github.com/aws/aws-sdk-go-v2/service/appmesh v1.28.3/go.mod h1:EFX0QOb5sy2bc7qLrCtaWBCAphAsF2H7q6vzTklMXds= +github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3 h1:hdQfWnxHMrpklcOrO/JY4elSBoZUJyHSyNp1fO+xIJ0= +github.com/aws/aws-sdk-go-v2/service/apprunner v1.31.3/go.mod h1:6VHD8l7WdVP6s6haYvfXpO632tCCvKI9etO9sbwSBOs= +github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0 h1:RN3oDNLc+MLc33AudwZOQW6mPzo8PJJPGMfZ0UBon0E= +github.com/aws/aws-sdk-go-v2/service/appstream v1.40.0/go.mod h1:swGQlfkXcvKPFgrRJINANYvHb2u+NH88mPyhvNqU2Pw= +github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3 h1:9Q0TQPkEvQL7gq3lzdEEFOpuLwTP/DmRNmGUI8uH3Xs= +github.com/aws/aws-sdk-go-v2/service/appsync v1.37.3/go.mod h1:MWfGPdl5m3phNVRgLU3fIgPnzTgrFwONX/T8/DK6eoE= +github.com/aws/aws-sdk-go-v2/service/athena v1.46.2 h1:Lno9/wGrQ3BWQG9CU6s+rAEPavX7/4+VMnaYIqF6wzU= +github.com/aws/aws-sdk-go-v2/service/athena v1.46.2/go.mod h1:BPy6WfKKUTQhO6hVCyImd1I0ejlngPaCu1zU0vZ1vPQ= +github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3 h1:zcbtydSmMftqwVPGEzD5WH6ESr+ZRpQCBWmjXEr2RVE= +github.com/aws/aws-sdk-go-v2/service/auditmanager v1.36.3/go.mod h1:auTo9OWA6W4naXZIKjBZPeUdYe/5idHL7r/+6zgbbFo= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3 h1:uW81sdnq9hfg2hSnVqAFp+mMmu4Y86dU/bE9ET2LCIg= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.44.3/go.mod h1:Gmv7s//GGvs3nj9aqltFYnLStW8vDIwch0USkE67G4E= +github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3 h1:OeUVFdmreRQwxSQKdFUoT8QkRD2T3eqc23CWy8ir5Y8= +github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.23.3/go.mod h1:IXXoIU2PoQd+uUpu1qzC+tcyWpaJBLlX3bQTvaxO6Fo= +github.com/aws/aws-sdk-go-v2/service/backup v1.38.3 h1:y3LjRnYKdd5SsKbnRRZ6F1INZIaLWzhH/5idmMj6tOY= +github.com/aws/aws-sdk-go-v2/service/backup v1.38.3/go.mod h1:MWWsaecE5EujYI9tD9+yeDmKcPTkfrBhS9TPX5EYIEI= +github.com/aws/aws-sdk-go-v2/service/batch v1.45.3 h1:Plkj8D6d4ZsXk0ey5aYpMN+FKbHk6KIc6jkQTwK3R2Q= +github.com/aws/aws-sdk-go-v2/service/batch v1.45.3/go.mod h1:z9GrSORElTuTG+rLKbQMAKi/QJeZIlaSx2c1PWO54ok= +github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3 h1:R+YaeuVridqw1WRfniCmind9QYG93yRxujMsEBM8Owo= +github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.6.3/go.mod h1:DsvYjYqN9EHrL68hc7RYYImI68BeyMdku8+8rm+AeUk= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3 h1:Vvt/nx7WHFw9OI8xXccwpTX9EsNRNqlKo/m8WpSOyo4= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.19.3/go.mod h1:zr1Em8iRwo+9WWUsfYSR9ugG0TFR2hMDaZYqMLH7f2U= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0 h1:7X7oygts3+nwC98k5o9n7VY/yHdgV0nd4E+ztK1kPIw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.22.0/go.mod h1:TWgiTaFOEPO4WmONX+kASPCHobxtLGPjQyT80mPOvSE= +github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2 h1:MNUX/fmzSzeljLt3ROAXZ1i/fVinvUEXglOfG7fqgRs= +github.com/aws/aws-sdk-go-v2/service/budgets v1.27.2/go.mod h1:VPYBTW5go5v/QIeXzhkv51xoj5pRpIIlWe8NCdHFfbA= +github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1 h1:jTIPOfSD/EIF/hG6Zfm480OxTD9QsQLY+avVojlbJIo= +github.com/aws/aws-sdk-go-v2/service/chatbot v1.7.1/go.mod h1:z959I7ZCUNrvPawbtgEw7xjzaSma8sbypOryHODvm/0= +github.com/aws/aws-sdk-go-v2/service/chime v1.33.3 h1:gdGlQvXnxY+tV3efSI1TVn7rYmVZ7LkHqsvXMwGlAZ4= +github.com/aws/aws-sdk-go-v2/service/chime v1.33.3/go.mod h1:xyUd00h8t5+bu5qN+XDjeA2U5O2sWSH69lphLQWNCec= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3 h1:mFa2M1T9N5m6Q6TifzLDE+ApljS9nDbIynO455yXUb4= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.19.3/go.mod h1:CGXRUn9razUClMrT0ztmaPeAtQJjBuewiZ0htkSlj1k= +github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3 h1:DtIf6iBWSXKhUNEbp2ci3d7ifblDzfqag4skvFj051k= +github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.18.3/go.mod h1:Y1Sv53bccpWBNWIw6+29DEztSouqq/u/S6S/lPqI9/A= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3 h1:utYffKY8Qvi8UrqR+1R7d6Izr927gBJN6o2TvD4+3Xc= +github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.17.3/go.mod h1:iX55GDn2lL2pthAp3k3lNpsRfFdfNpvYlHHqu8GQKT0= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3 h1:4aY1KcXXr6U5rymteaeBmEq0EUqvKBKX2Ak3+ktXlZU= +github.com/aws/aws-sdk-go-v2/service/cloud9 v1.27.3/go.mod h1:R6qoyNSjchvHZZrUVpMwqjqOuDNCdk9qoI9IagO02xg= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3 h1:IFtYl/PxIbuaVfWthDc7XbrGcAwluxtOzun7l+O2Quk= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.3/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3 h1:kVbtKOK6sNCqPsXE/7xN93pD090XETITuBNHrrPQsvk= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.3/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3 h1:aQZZ0TyYuZVAWBWoTsL4QxLIak/IgBq+7w7Y7Udv6yE= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.39.3/go.mod h1:cShu4+4PIZJ5nvMI+NEcItwVjMxQV0SGMYMMOLN5FME= +github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3 h1:CIAvV7WjBvUYIw9r99kRN2oupcWqjnSe5ozIyUzBt1k= +github.com/aws/aws-sdk-go-v2/service/cloudfrontkeyvaluestore v1.7.3/go.mod h1:MDEsRSicvgQweiN8hbGErk583wyHZkOlbc4BfKhSi3U= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3 h1:mhRcyc9+n/uFNq/5eZ90gnNbysUMj4YuTyosUKrdULw= +github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.26.3/go.mod h1:Xt7hXQe1EeZQ5J0efi7SS12CN5otGyTS5IFnWCIK6cg= +github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3 h1:MXZTv/K9jj0AAITSj/xenPZd1VW2L3L7VrCcfeJedlY= +github.com/aws/aws-sdk-go-v2/service/cloudsearch v1.25.3/go.mod h1:0ZqrezjT/L6ruxNur0O+LcXVIiPPGpfhfGy3FNokiuU= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3 h1:stQcRph9IKChCONQNNdcHuqrkH5IZJoaxoz0s/CrehA= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.43.3/go.mod h1:ODEcuhq+MDaWP9fpgCPcYMKE12pyK5g5W2U0z0nHEiI= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3 h1:U84egbTwR/yYqxyOANV1A9veOz6ZbgEJAN0S2QYDlvo= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.41.3/go.mod h1:TqMW1vaXXczuV0O1Wk+8+IZZQg7VusHNmTeJzNz6PK4= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3 h1:s4rC9SWlq5hh6EDe+90LNkHuNQ6LOWZ2/7F2GaeOjaA= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.40.3/go.mod h1:3p7NzlLlJesNGovq7Vqx8+0UibawzodrBRQAbaza6pI= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0 h1:ir0X7Amjo+dd1mCvBhEMS/rKKzJUCFLbV0SWkMdqHo4= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.32.0/go.mod h1:7QKOwF4gC/ELkHuKTnVr/zGuQpJgdcIfFO3ph9TZbS8= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3 h1:5/lz4sGdygGJ2+gw24JOFtRdAocXbsKpK1aqyD1xJLk= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.44.3/go.mod h1:gSVnRPxjJD21L+rU0ovZxs6rn0bigG5Rvthy3EDNlMc= +github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3 h1:f9VAnF3ZTG3s9P75uQ9nGvJlKPXO+KyEzTf7wJcPxvI= +github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.16.3/go.mod h1:OCGGMVnFTtz8ndbULEt/0schZMYbkrEv4kd3DY0OG24= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3 h1:p6abLw9hZfZn2L2sQo2pBu2nsbUs3c43fLQg2aRmRfo= +github.com/aws/aws-sdk-go-v2/service/codecommit v1.26.3/go.mod h1:u7i817xe1zuglUic23rNGtTrOUUsBXu7Eta7qT2LuVY= +github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3 h1:gD0tVrj1uJXPRrw0XKbOCfh2yCTPZV2vOT3k7jcK7x0= +github.com/aws/aws-sdk-go-v2/service/codeconnections v1.4.3/go.mod h1:tFuhSKT1n7eljVQM3cRoWIy1dEBAD6FsWMZz+qhWFBM= +github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3 h1:4IIGYBytia/bbrHUdodrgEgDO83/5nfFp591rsotKqo= +github.com/aws/aws-sdk-go-v2/service/codedeploy v1.28.3/go.mod h1:JbkzZ7jxnq5In2Vli4KSBwa3SQBYsEljXnU9sLYV7i8= +github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3 h1:GJ8p2OR8wdvfHv/+4bnATNSGrDwCuSZb2UO/JFzI7fE= +github.com/aws/aws-sdk-go-v2/service/codeguruprofiler v1.23.3/go.mod h1:Mhqj7N/UgBmGSH3WovRSc3SjAPyrtuGcA/+neISmIW0= +github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3 h1:mn9YR5k9+eguJ7mkTWgo6zQanw/oFWhQTkH8SofJScY= +github.com/aws/aws-sdk-go-v2/service/codegurureviewer v1.28.3/go.mod h1:i4H+MjU3upyb6ZsA+Pn0gCxF3UZHK+UkfZbC+li1q+o= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3 h1:89/ZuJDR37mdsxy4WqVdMOq2MnLY/7gWvSZlfM+cXus= +github.com/aws/aws-sdk-go-v2/service/codepipeline v1.32.3/go.mod h1:y7TM6E4TCD8+x50VnNbAH3gwGvTu8zR4zTKdwdm4XqQ= +github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3 h1:Ut1dU7D7fvwqurAgp+qwKL71Yq7io5ZVzpuNx0cYK7Y= +github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.28.3/go.mod h1:b+BhQ4WcXe/J7OgpdEJKJpt144Hr6YnVV8qHloDxlb4= +github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3 h1:MbemCKKsBgFDKKgKVdTKT8i+Z7sh5LRNObqVy6+AiKs= +github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.25.3/go.mod h1:a1To+qurpzkA3MCZzjas4bW9Z/L5AAHjIArAxHFtxqY= +github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3 h1:lHoc63BbtOfngsrW4yPRwWBmk1vX+uRYJ9W/dV08qsQ= +github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.26.3/go.mod h1:xulrffP9hSEvUGxW6YzICDHncE+YOIaqAJQpZ4oa1lo= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3 h1:MGNJDvz+5wf1CeBNvdmm2Fs1VEtppI07OqxQkOAtVVg= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.45.3/go.mod h1:h5enb9YgyDSRi4uGwhSJ89n3iTr32JH71pSkS9T2llI= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3 h1:q+IKPIK+M0WdxPoVWwSgFXR3FEqmwOw4wMPk1NZ2qzg= +github.com/aws/aws-sdk-go-v2/service/comprehend v1.34.3/go.mod h1:Jw4CASgF23Mj7I5kYvmySYhA0coJ/XFPowiZzDO/ntI= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3 h1:k4lPbaiuNfyxr/sToEv0q1o33KIwwnvz18Bl8F/EyQM= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.38.3/go.mod h1:H6L0gPktke/eXLdmWAmSEtqCvnScGR4n1bCEECxUcPg= +github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3 h1:zTd2HAD0LHfgN7WGlXW56gJ0bzQwJLd9BzucyGIrKnQ= +github.com/aws/aws-sdk-go-v2/service/configservice v1.49.3/go.mod h1:Qy3rMJB0ubAZERN7lLz8LFvZsDu3lky1FxgRi9YL1Wo= +github.com/aws/aws-sdk-go-v2/service/connect v1.111.0 h1:T+s3aFKVdSRj5Ad92gI3OaohBed4zQNazhS2HSliaiY= +github.com/aws/aws-sdk-go-v2/service/connect v1.111.0/go.mod h1:CABcU+S/c+FYiialvtOkvmLJGZ74uvmBT4d+Vu3hxZw= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3 h1:HFciX3uRLw96suvujv1xk82FGhjzLW9FpowWcSk9PfM= +github.com/aws/aws-sdk-go-v2/service/connectcases v1.20.3/go.mod h1:cOWYemFX/adFqPqtub/azuIRvwdY0R0LJGTkr1QIZ24= +github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3 h1:2SbppUDwLQ7aM3tqDYd3Nltry5xPozS9doMets/EzYI= +github.com/aws/aws-sdk-go-v2/service/controltower v1.17.3/go.mod h1:+ZBJWyjkDJLcEzwXvItgNY5J6XSEG82TfsJuQl8+y2k= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3 h1:51dRfa10omfyEVC3XogedJqJYt9Dt1Oygjnxeg+pq3U= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.27.3/go.mod h1:gg0SRV/oMpd3Epnr40hfHHKblepwtJGzS+72d6dbjyc= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3 h1:pLy3ofItGWxwzthH0kd/dDuL0lkxE06lKJRgmz4gf+o= +github.com/aws/aws-sdk-go-v2/service/costexplorer v1.42.3/go.mod h1:a6/GpE3Tnm014bqLO0PJBvtccOwFxkASInd5v1cgzjo= +github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3 h1:QJQcBquWmyvX5Dl4AYhTKoB4x4rxURYwSIIcnPs0VQU= +github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.9.3/go.mod h1:98sA/x6XAINQV0JybTCFYsipvRH4gd3nt+6SX553bLc= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0 h1:6X7B4sJUkJN6yzyqy5E3azFVbnBNDmnaOl6xtO4CoeE= +github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.41.0/go.mod h1:PGsGLSh2E+/V+vXuyZK4EGn3j4k3A2ay49OIMLlk2ic= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3 h1:DIMFOTjWiWtfRrSkdGKLBrv50/wiiFsTS9Vx/n5RbL4= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.41.3/go.mod h1:7//pcdOHw+SewAiqsofkc7si3bJfsl1EhtSGjCxxI0o= +github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3 h1:SgM28f6nKxNHAL9xRtUSzeP+7x9qx8qWwLektsbJWsA= +github.com/aws/aws-sdk-go-v2/service/databrew v1.32.3/go.mod h1:tYuM9WbCxwDPSrlOOxOxpG0RvcJDTvKTNjSlRyaKO40= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3 h1:bgJ/ykaWQKMf7ZPUjUOPXA5FVSyktJrzDKyQO9tx9IM= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.31.3/go.mod h1:NOXKjiu5OAr05igIT/wuz1MIQ3cI37tifjg/FGjuaeM= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3 h1:THh/LDEk5GzmENybrwdNlKwEX4z2WpDC+Wc40EcTwXQ= +github.com/aws/aws-sdk-go-v2/service/datapipeline v1.24.3/go.mod h1:sEUC0WRnhTZ6S41N8IpQ8STEa80EVGEgumpJiR+delY= +github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3 h1:R0IG0+uM/DFvsRLvIE1xXgW+8dLDu1vpN33qnNVO2GQ= +github.com/aws/aws-sdk-go-v2/service/datasync v1.41.3/go.mod h1:LNhV00Ei0xWhWGWfJFclgz53gSvzuPryJP87tr3LQ1o= +github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3 h1:+lutCULtTzyJ+/U9gaG1De7OQMPSrJp9nH6fzd6Vits= +github.com/aws/aws-sdk-go-v2/service/datazone v1.21.3/go.mod h1:SlNgA1JM4jSr3/yRQU9ryDmT9FU7JeeK6ILFzsGV6bM= +github.com/aws/aws-sdk-go-v2/service/dax v1.22.3 h1:BRY/vFv4ZG0xFfi8jLLooQgKqf5v81zP8doepHJ1hOs= +github.com/aws/aws-sdk-go-v2/service/dax v1.22.3/go.mod h1:oY7CKPoSGkh13xaargIiUD8/Ezbk9FN9wedIWhiB72E= +github.com/aws/aws-sdk-go-v2/service/detective v1.30.3 h1:VkNCM2i/dviH/Yevu+PR3BGws8IlAUaO6zuG7nXZr58= +github.com/aws/aws-sdk-go-v2/service/detective v1.30.3/go.mod h1:5RGRM71hnAB5+c2RVcWB1FGFcbIXMo00FkJERKWUu2U= +github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3 h1:qDjD34kQe2PArb3YcvBFuBz8UYWVX5ZoQOyFiDtERTg= +github.com/aws/aws-sdk-go-v2/service/devicefarm v1.27.3/go.mod h1:ymTXw3f+6xV04ccW8uq/XB0iHmCDzmZDj6VcbfLT+ic= +github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3 h1:fwp3xIXX8pDff/la2x3tHyFjG6/A6sYxYHuNHbkZm0s= +github.com/aws/aws-sdk-go-v2/service/devopsguru v1.33.3/go.mod h1:g/iaynRT4qx6SEtQJebsHCiHHhKbQQ5bkkkCTrTFaxI= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3 h1:vX4dOcR07YcasVGPOBJ9wEuftNGIzjFq/3yX8pVfFno= +github.com/aws/aws-sdk-go-v2/service/directconnect v1.28.3/go.mod h1:CKVqICst9G2B/0ODGmhPNyscYTLRHmaBOrf+UAA1DSs= +github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3 h1:nxOWDwPYB0wbmLPTb/t/q4fXxZR3SF4LGGT475LEyRw= +github.com/aws/aws-sdk-go-v2/service/directoryservice v1.29.3/go.mod h1:bNW2LsxPe8qmf9jrD/0pxAQgFxQb+2+9L2qSbHxzpy4= +github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3 h1:ySRXnDPfPej2Wjs6RQZD3uWe7dM3Uoa/tQHVeedpjzA= +github.com/aws/aws-sdk-go-v2/service/dlm v1.27.3/go.mod h1:KcUkBzkOmsrvTKoL3ocIRkZ6vDWt+3PIQcIcX9ISaD4= +github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3 h1:Od3D9HOPXeqFi/fOd7+vNNXsoq9jhflx4HHBmok9hFo= +github.com/aws/aws-sdk-go-v2/service/docdb v1.38.3/go.mod h1:0zhD3ZeCDO6B+uXcjrmEvN/LfHPWaGfaEzvDLRoX8kI= +github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3 h1:2wE9fa1s4wLfzr8SicESPlxntu4avdDNTHqNhVwCDdk= +github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.12.3/go.mod h1:e2B1Twznjqz+KBGxfd6CA1RHURfq3ZgqWTfYQ1+iWUA= +github.com/aws/aws-sdk-go-v2/service/drs v1.29.3 h1:dhqymjhKBqYjYFO15OFHKDvmRtNhwiFnu4w+X14DJNU= +github.com/aws/aws-sdk-go-v2/service/drs v1.29.3/go.mod h1:zirOznRrHBraFOQVYrN160wv6/VQ2mfY/3KYsbuMsrA= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3 h1:X4iS+RcIKHkAMQz47nDt/nHxZUCKdnfgw940yluJ29Q= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.35.3/go.mod h1:k5XW8MoMxsNZ20RJmsokakvENUwQyjv69R9GqrI4xdQ= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2 h1:rGBv2N0zWvNTKnxOfbBH4mNM8WMdDNkaxdqtz152G40= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.179.2/go.mod h1:W6sNzs5T4VpZn1Vy+FMKw8s24vt5k6zPJXcNOK0asBo= +github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3 h1:8/vARxqd0Pn2Gqhp+8PxxTm3HttUMR1i1vBBj7MNFfc= +github.com/aws/aws-sdk-go-v2/service/ecr v1.35.3/go.mod h1:oRaGEExKI6Pqcow+Tt7wpJf73/Srcj/CUJv5Eb9QFhg= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3 h1:banT9rlPxyfuirbcaMvLk8R/89ffGFesFkxBqA7MkPw= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.26.3/go.mod h1:wtQIcTA5qkJq7k+Dx/jdDp+UZ/CU8uatz5K5LgB7QB4= +github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3 h1:BVItlUrorHr7lLLxWKFUVXxwht6IVVqLTQLGc6YLB6U= +github.com/aws/aws-sdk-go-v2/service/ecs v1.46.3/go.mod h1:/IMvyX4u5s4Ed0kzD+vWdPK92zm/q4CN1afJeDCsdhE= +github.com/aws/aws-sdk-go-v2/service/efs v1.32.3 h1:AAYRq28CnLrjq6bN0cYwyOE/mVuSk/mXYJqRYCKZAvw= +github.com/aws/aws-sdk-go-v2/service/efs v1.32.3/go.mod h1:OjGU4D2nV44fe4FnNVY+6rgJVEGhzmVMG3YRhkfNA7U= +github.com/aws/aws-sdk-go-v2/service/eks v1.49.3 h1:4Aq01bwq1RnyMLAgx/6kB8cqvfLlQet5cWY3MVhlsqU= +github.com/aws/aws-sdk-go-v2/service/eks v1.49.3/go.mod h1:QUjwO93Ri00egMAeWw75dviZBM5pECLx0KNeNaBtTIM= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3 h1:hYP4kYiY2RQ8QDXBkIe9xD6B/fDTlGV3inxusAmpXzQ= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.41.3/go.mod h1:EaaOoWGtdLYKuknbTnluNoN+qUUl6uZ6I7+Uwww9nBg= +github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3 h1:u4YVoPfmORU3j7wVMvXAPrYbiK8RALFVe78sXyZGM80= +github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.27.3/go.mod h1:5NAic1sOc8jQJPkxyt3yp57hpQVp41Wh9fDnmKexj7s= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3 h1:6GwGMmJD+KxJ11vqvKX2jtcyfvurkp33SVp6OxYrIJg= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.27.3/go.mod h1:A6rhNF3Qz6pn97WX3DcIK7g6ODOCYR7t698ptify9eM= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3 h1:Tcyl8egpRWLz/ch9Pmn4kX75WsleGmnq+Kro9IqU3wA= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.38.3/go.mod h1:V/sx2Ja18AlrvTGQsilx8CAH0CPm+hpKdT9RbSpceik= +github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3 h1:r0S/+4Jj46FVz8rv5SMCIl7TR08jGllS8L/J5efJWEg= +github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.31.3/go.mod h1:SBlM+nGd+apEfj1alZOfCD1R0eRu1l07aPLE07NmcIQ= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3 h1:+SEZ0N5I5W8Mw64Kx7KyHWWV7I0zwvraGvRYpJrk1Xs= +github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.26.3/go.mod h1:Ty/I9/hKvlG+mrhNjtzibl3z18CKrWQ3t2NqGiMNJ/Q= +github.com/aws/aws-sdk-go-v2/service/emr v1.44.3 h1:gGf9bo9fY6U/yoMw3V5mv6yoApcQP1JWvJvWNWCCwNw= +github.com/aws/aws-sdk-go-v2/service/emr v1.44.3/go.mod h1:W/bmWMpxDqCLQtDv9qGm5xXDNeTj35JaFqLigrdjz4U= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3 h1:HKZkdRR5+FqanzlVktM7zeH3y/qnZTmM45ALd7U+EGg= +github.com/aws/aws-sdk-go-v2/service/emrcontainers v1.32.3/go.mod h1:a4fGAtF6z0E8s2rbDGH8mSHyvmnqVVldBElSoWTPQ8w= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2 h1:owlEyc4JbbpwVEoKUh4MiZYuU1U3Ztk8buGGi3nQSrg= +github.com/aws/aws-sdk-go-v2/service/emrserverless v1.25.2/go.mod h1:RCopj/EHUg941AYL6ZbDsQmDqGZWOuXn3ramg55pDs4= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3 h1:voc3mmh8nP2y+XobELnq5ge7Om5FFJQ93AnTUTMwgUQ= +github.com/aws/aws-sdk-go-v2/service/eventbridge v1.34.3/go.mod h1:bcL34EfmexE+PLh2o4oC1VFpP82Ev8p4dL0PqdZ13dE= +github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3 h1:s8t9sqBMdlsQzLW0rd1ZRBppllw6PSNPa/h0vyvQRIs= +github.com/aws/aws-sdk-go-v2/service/evidently v1.22.3/go.mod h1:ENASEjoB/RZ+jFXQfdMk5aHFfMuh1G3bU3BQA4H59ZU= +github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3 h1:VH9nM8gmGq5TWhWoPyqyLz6e6C19zHHkbJCYEfK9IuE= +github.com/aws/aws-sdk-go-v2/service/finspace v1.27.3/go.mod h1:dFFKSS/upWYJZNUXvMiPN8x8VRk22t1fvbDchvjRaM0= +github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4 h1:Nb4mCJj7sR+G8gGPSc78S6WS3v66p4zSTUjIBbH1BcQ= +github.com/aws/aws-sdk-go-v2/service/firehose v1.33.4/go.mod h1:tE+sNCaKv8bbkO+ZC6+pW78XLU/gIR3Cpf1u/bvNijE= +github.com/aws/aws-sdk-go-v2/service/fis v1.29.3 h1:wfyVyzyb0LOc9r85pyvp6X53qNXZWy82F9krGLou3PA= +github.com/aws/aws-sdk-go-v2/service/fis v1.29.3/go.mod h1:CBgOCLeXvDU74UgYjPYsoE9IlRZGik0i5WjavW0q0QQ= +github.com/aws/aws-sdk-go-v2/service/fms v1.36.3 h1:m8WN12Eh++8joQeyOews+XO1rCeVPdF906AP4EWew4g= +github.com/aws/aws-sdk-go-v2/service/fms v1.36.3/go.mod h1:cdkaCZeeY4KmtTTmyhNJFMOZMgGjCmjDKT42zz/2Tjg= +github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3 h1:p0XI4QYg0dcPLxFBb9BaJ52aZhkMOXx6nbZOMzSi1Og= +github.com/aws/aws-sdk-go-v2/service/fsx v1.48.3/go.mod h1:2+3MHztdO6eYx1eyJvCxOMxScniOOoH+odXLWWw0FYw= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3 h1:1h8Uqsm5TuP79LRjvOmr75SeTLrPfxPNd6urGDrzrlM= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.35.3/go.mod h1:WKyK19AJzSX9Zhb5mxqbwSSqiBRFUS3unET8oTBl1CE= +github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3 h1:L7iu5UzYiWHdKFlXI90gr+qcPRtiY33jPTKNCEJnzQ4= +github.com/aws/aws-sdk-go-v2/service/glacier v1.25.3/go.mod h1:kUOQuvD/VtRlbMe0NyC/iRI1mt7GJis03UJCkpVwXbg= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3 h1:OUhdSCTHEReeWbOJ5+MWXZjZXXX8Id6KcdVlHcrR9Lw= +github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.28.3/go.mod h1:pE+qNlA2dMyRuR9Aa04QjsmJ58olbXpITfoTU31gFjg= +github.com/aws/aws-sdk-go-v2/service/glue v1.99.2 h1:pfX1qky3shRS3rgxkdXKtiNWtMUeGgOEFXEqIdTQYHQ= +github.com/aws/aws-sdk-go-v2/service/glue v1.99.2/go.mod h1:rCyUHLWGaSR9/oQgj2nGKRmPqFwtq3qxL14LkuQdadA= +github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3 h1:2/jLJmTA06htUHu4jp/mVOMxTq68TrBTe8Kd/p5p/rU= +github.com/aws/aws-sdk-go-v2/service/grafana v1.25.3/go.mod h1:pEIZhxlz2p3+Cy1XhSsaFyY39/B0Nn6oJKpkAJbQDjM= +github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3 h1:zPdsqYDvtjEuQOO4baVk1zGPEL5p6qYA+o1r5Ny6c1g= +github.com/aws/aws-sdk-go-v2/service/greengrass v1.26.3/go.mod h1:1Yw2CINy4NiSVkUlLISuHsgCmJCZbXW/o+6boJqaH3g= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3 h1:3LrS81XzlBG4hYaU7PW6jaeyozdirbpESj5Rkd5Yzok= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.30.3/go.mod h1:sKC0TSEPMD0JJq8lg49fCdlZIk7z0VZ+hHGDZOUPmpM= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3 h1:SVliQHoUcqyDKLSsV8Vv3Muxddhx9Cp3ksk6UUd74VU= +github.com/aws/aws-sdk-go-v2/service/guardduty v1.48.3/go.mod h1:yL5DOvh8huFx2ZwB9kj20TnZ5DQJjnoCYUkFitas/2k= +github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4 h1:iV0uALvQk7BzmmjBt39CNoxXEUp/bH2ugBRuY4GN3AE= +github.com/aws/aws-sdk-go-v2/service/healthlake v1.27.4/go.mod h1:pTWeptH3/ZKTlwZfKL9Gg9ZmIR5LRNrfprV2JL7sjvU= +github.com/aws/aws-sdk-go-v2/service/iam v1.36.3 h1:dV9iimLEHKYAz2qTi+tGAD9QCnAG2pLD7HUEHB7m4mI= +github.com/aws/aws-sdk-go-v2/service/iam v1.36.3/go.mod h1:HSvujsK8xeEHMIB18oMXjSfqaN9cVqpo/MtHJIksQRk= +github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3 h1:uZY1zrpO4dPsOx4rXCDuqHZWQ6PZAmf3x4SPEu8BTh0= +github.com/aws/aws-sdk-go-v2/service/identitystore v1.26.3/go.mod h1:zVLejeKzvUdQD69k8ladCxzC7SnlG1EJwJloK21x/QM= +github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3 h1:m3UccOaEkEyYwpEzA8V6lghSctzN+Qxp30Shp50q4zI= +github.com/aws/aws-sdk-go-v2/service/inspector v1.24.3/go.mod h1:ul5oxAUMHtKT2ZZx0uNjbv7pCOao5eUCO8d0Jpi6gQo= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3 h1:cTqSK//5QDLzoFT8XvMhwCqyhFZGNSKWf+attgy9g58= +github.com/aws/aws-sdk-go-v2/service/inspector2 v1.31.3/go.mod h1:g+8cFzj/P0kPK+p5zSd6I+MFIk3wWwkadjuiVMYeVoE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 h1:rTWjG6AvWekO2B1LHeM3ktU7MqyX9rzWQ7hgzneZW7E= @@ -1502,252 +1502,252 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 h1:eb+tFOIl9ZsUe2259/BKPeniKuz4/02zZFH/i4Nf8Rg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18/go.mod h1:GVCC2IJNJTmdlyEsSmofEy7EfJncP7DNnXDzRjJ5Keg= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2 h1:qlsfYX/SODXwbLTHgX8+K5/jDbMXGS3wNK8PHCqln/Q= -github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.2/go.mod h1:fhYvr0B1844Y7QhLRtdmY5GZEbVStCjE+OEhazg61Ds= -github.com/aws/aws-sdk-go-v2/service/iot v1.57.2 h1:8iiMowXwIP4IlpxrAUYnCVCCb74ceUENAaYhMSQh7NY= -github.com/aws/aws-sdk-go-v2/service/iot v1.57.2/go.mod h1:wR4yGYW8QdKpmUJgboGVCW7fRSJI+Vi/20fEFHGNAJQ= -github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2 h1:YrQfNNTQrB0AtURgtHPfpLDspxUrL73mT53uNX+8yhs= -github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.2/go.mod h1:R6xw3TxSOa7Mf91pkfRO/Lc6dbm4dNVpq0I4gUlw/Gk= -github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2 h1:A6kKccE7ryBgNBo2LuFT+b7I41ppEeE/PosUT8yA6KQ= -github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.2/go.mod h1:dT4/zcoReJEoSpnFkupL6ttAbiFHDI57VgmJedlqTto= -github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2 h1:4NmyIGhs4NjVJ0o1NM5Plzx+qxzjNEEtgb97GqZNZD8= -github.com/aws/aws-sdk-go-v2/service/ivs v1.39.2/go.mod h1:SvoQnCSuFuJNKWla6L0gCBGt2hUybGtpDCnf2gSEgg4= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2 h1:jF9pBVC0g9LGLeMWEAiaONDWTHi/FN+qriSDManGzSM= -github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.2/go.mod h1:WvU5FAvZd/TL3VeVKonRHJ42AFa1oeN5WPbn02YzWzs= -github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2 h1:qvdt0hHHEhyWC2Uglg28ytQfxDfUyRFlodyn8OcnKmc= -github.com/aws/aws-sdk-go-v2/service/kafka v1.37.2/go.mod h1:fBPV+Vh4JdtCtsopwBKCqdma75qcOI8SD+MlJU+teXQ= -github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2 h1:cDhoUatEgYt45UcBviR5XXwzbyUMzMXLPrBezTfqTrY= -github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.2/go.mod h1:pI87p/LzCfnek4XorpEPXCsGayU2Ij3MQbgHdQjml6E= -github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2 h1:BLtSnWjYKAG5n9QYtnQkmEQh9MK9vWDdfBEIRnykIBY= -github.com/aws/aws-sdk-go-v2/service/kendra v1.53.2/go.mod h1:uHIz29KElVFQ75jRhky5snAagySv3KcxuJ9eBLvClJQ= -github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2 h1:eN6G1cVOiIADdBBL0UBefXwk+yJoT6UG32VZn/BRmfo= -github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.2/go.mod h1:Sset1/AxzSJ8aosURhyLJm804sZ1cBkgdfhGyidqNO4= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1 h1:E3tMyeGMPBdIhQNOVW5Ie+2hlbIB7Gi+NtyAAsSPzeQ= -github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.1/go.mod h1:/D7NWV/jWRxPDDsSySncYt8JT4QHYeqgiR7r2vP2hYw= -github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2 h1:fZiEU6ZhlAkLHC4+t4fC+XMAEL9cyEgohAW8WRBX/Rc= -github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.2/go.mod h1:1mXTVF+BxmYnmaQ3Bsvs1AbzT8ghVEPVOhVLlD/h34M= -github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2 h1:N8fRSbzW9W1o1lPJruGJriVup2RAJ5Pd/PaFyBomMms= -github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.2/go.mod h1:4td+MQ/pTrH78aGbDs6zUo1MYNzmrmar5f30JqTt7cA= -github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2 h1:mH0snG5LZEfuYekSGDuZUR60eoEH5j89ZPeSJs2EeTc= -github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.2/go.mod h1:YtckrYyj5bsqpiEoM9jyJGEouqAvRk1bfxEatQt9H90= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.2 h1:yERi4A+3+9emx/NKSQ5bf0QP7DHCGU0bjv3pxdpDcsg= -github.com/aws/aws-sdk-go-v2/service/kms v1.36.2/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2 h1:idwxi3c6nSjYsD65NGBY1oYx1bezjowlSfx3ixFX64Y= -github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.2/go.mod h1:0A67Mdmp1aQZp74Ef/AoUW11YyNiIxgf8kjjL9JZMxI= -github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2 h1:hJbK0NTh25Z0yOHLKDEdOujHVARc/ukwjntA0t4D08g= -github.com/aws/aws-sdk-go-v2/service/lambda v1.61.2/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4= -github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2 h1:RGnAqxAqh2IfZiqcrY/25VmUP2mPpmRjrKvfSmaJTFo= -github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.2/go.mod h1:6I30IIJw5mOeuza9tDHzUEya7ODqKobjjipcLYViouE= -github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2 h1:XgjR5ig4MbjE/l7nQ3s9LS+Pt+c9k760zpx7i3VIYFQ= -github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.2/go.mod h1:VnoYFwR2qh8TqfmPPJU/1hiqQNIf2+BVaWGj7J9ofeo= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2 h1:GpX3DjO5oB0no9UCoPzyEipTTR0dst/7MRXCGTBRU5M= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.2/go.mod h1:rmal7dltZ/Nj9c5K1QGWNBrwoB3YnsLKpfjudxpbTUM= -github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2 h1:igz9TXmg8FyPxeJ7ESLnZQqNiP7H2Uejaf807YLUHbU= -github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.2/go.mod h1:qxdofHNS6n02LO1BPw2gaq3XL+jAtX7bMW00PITkUok= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2 h1:qCiTNsCii5sCJxgEy2LSvQwH8Nnp16GfD4omp2YEpR0= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.2/go.mod h1:HM7L3Ylzj/7ZYVNchhnCZaPj8veuI38ICccD2nZI2EQ= -github.com/aws/aws-sdk-go-v2/service/location v1.41.2 h1:PHo1X5haYA94PlncM6xcch7VaEnXQVOUBXdMrRo5VHQ= -github.com/aws/aws-sdk-go-v2/service/location v1.41.2/go.mod h1:yGvyLPsBAqpvDlLUvqwPOVF20gthq6Ru5hs4lzeR5zU= -github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2 h1:irt4gNywc4e6jT/D3HKh734jKfaCnRuBZQKlpaKCrb8= -github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.2/go.mod h1:0Pewvf6+Pl1Qr4liKIX/C58YjNuat0VflkuYIfuWYqw= -github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2 h1:BKuRyfP+a8GgkwchTd4F59c7F9GUMw1DnPkNV0Ce1R4= -github.com/aws/aws-sdk-go-v2/service/m2 v1.16.2/go.mod h1:MPskeCQ+fYztgr925XPpzu7b6BQHyQ57CKy1Txkqkuo= -github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2 h1:NITbVOK+qRiCRNnjJOHIFdLqmuHRJf93thpe5n3WnUM= -github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.2/go.mod h1:04Rw979+FKHKrfAUZsHHh/qY1RspKfu2bm8wEj6jhmg= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2 h1:elOmUt0D3hyycnbZQp1wsaJcMy7x7aZ74/kQQSuct6o= -github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.2/go.mod h1:Ndl9J0mSsuvoiiwx5kmPmrslHoM57+pjD1aKRI2VUGM= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2 h1:1oH9W0991wDRBdM1AsLC4CqYoq6lr927HgmAoPPPaJ4= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.2/go.mod h1:MwaxhaePcMvBJEAlUD5tAbwRjM7PCqWkDnB2P/FBTlc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2 h1:/4GC6EyCCOiHMDf8Bcumz26UjzNvmCl3jLu51e1HF3g= -github.com/aws/aws-sdk-go-v2/service/medialive v1.61.2/go.mod h1:3+dDG87hZGu3Jc5iid87nRJM9qdbXdwf+OZRSzwVOb0= -github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2 h1:WHM7zxAWfuukhHjSb2vZEDuT2LRpZF8upDEgijtaAo8= -github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.2/go.mod h1:Z6/SBxZbdRoN6vsmGHoWgwEczVodc1dF4Sa5i6r2JPw= -github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2 h1:E5Jr3bzqSXNgp4mi2ki+/HrDjUptYzBt4ENeDQuZvYs= -github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.2/go.mod h1:M5++ozDRLilJfj0L4GOfcOeIvu4JirySG3/ZtjxAHOA= -github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2 h1:t5FMSqG24RJVJ7ZJHZgmoC9MFNA0BeMMpwm6bmlHiH8= -github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.2/go.mod h1:EWe65pGTUngrmOJ0OXgVH5FOVRrTGF1InWOsLxVQXxg= -github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2 h1:DaGMS/dMQ4JN73OfAy2Nacx8C7U0AAXuY9tYXVVxmDw= -github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.2/go.mod h1:Tdqix9r742tAaoWlC3DfadxTD2zkJXF0FzkT7zvQKwI= -github.com/aws/aws-sdk-go-v2/service/mq v1.26.2 h1:PU5fl+bRmAgdfzj4vAxI7lQ9SJ/nb7T5HPqHb8w6E2s= -github.com/aws/aws-sdk-go-v2/service/mq v1.26.2/go.mod h1:ECtcnA9ICTtcVS/HTQzg11Fvq/2SxpWSOZhQVfHedtE= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2 h1:fRRxPVp7XlM0VuY9M4SjSYU2jDqqB+fSh6M8FdfF3Tc= -github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.2/go.mod h1:M6XBjlabbpB/IoWJ2xBidH+YQFkisqlgDB3622+Ooi8= -github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2 h1:QJbAizguuFLyxFmC+JVyZVnL+rai7qthF2MLDF21wy4= -github.com/aws/aws-sdk-go-v2/service/neptune v1.34.2/go.mod h1:urvzEEqsKRT6h0O7nRevjBO354pQg4Fc7DZHEdsumTU= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2 h1:T1Z46LGBudVW1oWLtBNFLo6GkTCqMA0cgX3jgS2MJjY= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.2/go.mod h1:iRriI2T+7squuylfygLZc8DhIGBGyiFUCy8hmtUZkek= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2 h1:bouvOkpfqNuniFd9eLzcQQvWx+L7tIa99qx1idkJgj4= -github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.2/go.mod h1:77c2LfAm2EnD4cFycPjK+xFzCHPvKFSHVE4tgQZdoX0= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2 h1:8kimVSf1Epg8CMjjXWHPsfcKkT6Jypm899YLsVUddQA= -github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.2/go.mod h1:wbimeMrcPRQHWiiWwp0MjVKsRVDq+xS58OzclQrnqb4= -github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2 h1:og/kNJqyuAD5BckbvqNZp7o2HYFepX68YwaMPCyyTIk= -github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.2/go.mod h1:HYP6NZ2LfRnAoZMqgn3lSh3hnwt/Ug4hbdLaa01BoRE= -github.com/aws/aws-sdk-go-v2/service/oam v1.14.2 h1:QZzW7IohYMkXIqsmt9cBqTtJhfNZlr5yBFP+ENaudCE= -github.com/aws/aws-sdk-go-v2/service/oam v1.14.2/go.mod h1:TPuwoU7I0Qcj9tpZB+seOSEIvRbZjgrVeHWlGxkHkx8= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2 h1:tQMi7jzkFcuLobVKrW4edPnnreXLNaHRJKgLutxvPdY= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.2/go.mod h1:4rB9oWpduMw/+UqL/WdNLJZNF7iAwaJWwJ6GgsQqOjg= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2 h1:6q/FDvTM6ZCSVSCHN2+ZXmLVFQThTwsu3a9maH5QKZ0= -github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.2/go.mod h1:M/OcO7L+Tt27Wu1fRXg6X4+G6A07hO46at2ccDz2X14= -github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2 h1:1zRamHQ7hfPIfmZtdfN4l4kfp+GrfpJAx0n6nJNaU1g= -github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.2/go.mod h1:HJF0MWNUeYaVK+SzLzc8E5BqG6fyTt54U4uGJxcu82E= -github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2 h1:LlDQgX7E8WcCXvj3XhsGWN1k8Tk/ue50inRwl6hb+pA= -github.com/aws/aws-sdk-go-v2/service/organizations v1.32.2/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE= -github.com/aws/aws-sdk-go-v2/service/osis v1.13.2 h1:htLiJ788TpbN8XQCDv1Thoe3C1brYBmJtr9+CL1vvak= -github.com/aws/aws-sdk-go-v2/service/osis v1.13.2/go.mod h1:lpZ4HxPlhauL7SxovvOlpxj+cIlbaEexFKm6GP16YTo= -github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2 h1:SJsQ0CBDPwB58MzlmI5Qy2OuXEGPWumP4y913BbpKq4= -github.com/aws/aws-sdk-go-v2/service/outposts v1.43.2/go.mod h1:P4q2zxaDsy3K+Itdlys3mmywLT1FWp84Odg0kVwQVGo= -github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2 h1:koQXYsERw2cB3IGfrUVTVIJFAf30n8GihQloF9le4QI= -github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.2/go.mod h1:DbO3yFGCDeGNnLFlDMgPFvvwVG7ekRneHT5m+0HxI4Q= -github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2 h1:fQ6DXgpPXJp7HR5K9R9MxTomrthb/49DdUMpmZhtIUc= -github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.2/go.mod h1:ZMKcOV2h86s8j4fLQGV6WscIW95EtpfIAhCWMFaqnTw= -github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2 h1:LyZBbTjD2WVXiPcSsIR/pxqKbpWIkb+YnczvgMyk+/k= -github.com/aws/aws-sdk-go-v2/service/pcs v1.1.2/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o= -github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2 h1:AFCcfy2Mk6hK1UODe2aVIxD1JGt8pbcow+vZgfUlmaY= -github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.2/go.mod h1:CTzMrAJyOLQjgth3ouRlrxEU8sMx4eUcr8zxRWHvGkI= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1 h1:hrFftUIT4BUnVMXEsBKR5ivFFNnaSbw17WBJdGv5i9c= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.1/go.mod h1:7W1rCC124xLdZ0Zh4ksL75YW5zMI/7QVmzPJcqGqAoA= -github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2 h1:17BXiwhsAAP0DaCSHbkhYfCTWyfyZdeUsFkmf1Da7Ik= -github.com/aws/aws-sdk-go-v2/service/pipes v1.16.2/go.mod h1:F8V3QoKrFa+y1JRgmgmxW9YwWiQ50Tv8cE/99rVBw/E= -github.com/aws/aws-sdk-go-v2/service/polly v1.44.2 h1:owi44VVY/Kuv7J+NxZ/QRGO4G1b/EX9XYwKIFqNoNDo= -github.com/aws/aws-sdk-go-v2/service/polly v1.44.2/go.mod h1:8kELPHwi5SteCe9S4D8zRc8t9+BWDIYO1KFkDV8IYJo= -github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2 h1:AqfhHZJlfuHTj/qC9gJNgGT2ccRPmWkr/DUmRcNNGnI= -github.com/aws/aws-sdk-go-v2/service/pricing v1.31.2/go.mod h1:yXtz8BvgFFMy2TYPOiOcCqZkSGgq30vFKZaZ89pBDmY= -github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2 h1:VTfBjwKu68NX4m8QGsd946ZPkvyFmCm6gruSWJlZAcw= -github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.2/go.mod h1:JrAK1tq0tPLVupCisJQFcwme2+wN6/r0Dxl5F0Rj6Gc= -github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2 h1:nYa5wSy7PblotmdVxWkyovJPJNN1Nlo9k5Uyiv5HXgU= -github.com/aws/aws-sdk-go-v2/service/qldb v1.24.2/go.mod h1:S6MPWo9u6LAkZV4nmGTUJ2CBeFko8MPiDJLx7tz9Bg8= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2 h1:0APD+aLm2p3+oaysyvRdIrE9qCw2J5Fcty/GsclQsZk= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.73.2/go.mod h1:bgPhhJYNIsFQlnumFYUJrTZ3UVxFVF6VfkiKRQd+Awk= -github.com/aws/aws-sdk-go-v2/service/ram v1.28.2 h1:PAqnt9tGUgy9ePUyHab6yWaGGMh1/7Q/8NMSdybC2m4= -github.com/aws/aws-sdk-go-v2/service/ram v1.28.2/go.mod h1:fjd9tZyiREkrD8UDuFCYdBSIcC4OiZa4kyYzBldlilA= -github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2 h1:RW/rQ2u7Knll3f8w0zN3muWhQpIAjsF1/oN/NQoQ1dI= -github.com/aws/aws-sdk-go-v2/service/rbin v1.19.2/go.mod h1:GVsxflNPgN7sfCcjI2DTbj/9Wan38gxiZOBTusSFIPo= -github.com/aws/aws-sdk-go-v2/service/rds v1.85.1 h1:1LGeHFzzZL574HsX54GspezG35Y7wKIiM2YiIoXuLF8= -github.com/aws/aws-sdk-go-v2/service/rds v1.85.1/go.mod h1:lhiPj6RvoJHWG2STp+k5az55YqGgFLBzkKYdYHgUh9g= -github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2 h1:xg1h5Z4kk5e6bTmeE5BGJMJZRwicepJiER25lpjTMK0= -github.com/aws/aws-sdk-go-v2/service/redshift v1.47.2/go.mod h1:Zco+4iYqPF1u1FXTB0fHaRNRKPi82yw1AHPqJM5pI7A= -github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2 h1:Hx3V7PtiyBj1bwOwbT4FK4szvoItuzXxi9mrWYz40EY= -github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.2/go.mod h1:lqIhSLH6flPJXSRqplVQMxtjtxWqd7/7lVMhMeBi9qE= -github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2 h1:jQVsr4zfxCE2gBd/GInbVYpZQUXQ3gBSgsSXeabS/7k= -github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.2/go.mod h1:IQ82tH8mwR7ueeE7kw9trOFoMXB1k6UbTo+hMFs8VLs= -github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2 h1:IvO9PrUfbur7c+o2XjeNTc2AFVmHuVfNrfW5Dqyzbms= -github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.2/go.mod h1:nKpeGs1qMq9AXQxMqD0muSCnWIFF6xadVHwiUYrCcdU= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2 h1:8NHI+9VdqiNVkdoVOvgg/UTyQcwAbIWuo1DSTxbEM4k= -github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.2/go.mod h1:8gtABA34koSq/pwYHWw8Gx1G+RpIcGcGrxzwYtaenNk= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1 h1:tQb6XWS4onKpzQEE0GEWX3Lye7EU/agEHip/IE2mhos= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.1/go.mod h1:+NAx6WlI0dNrzxGH3PrceeoD5ctO51JweFKYrkcJ3fQ= -github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2 h1:vEFA0JJJpfcTJyYBLnbTeFoT+dUvci648FAuyBrol10= -github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.25.2/go.mod h1:tlCleO7KsiiGT8yAlQ+LR/xdXsDoVPy3D1CstCSAFt4= -github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2 h1:1TUh/fgT5PpRYT13aBpn0Xg8tjCvRoO/9YscAaPFBC8= -github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.2/go.mod h1:xsGChYMIFBWAtVwQU807G1C/YCzqqQ9KQmsHcwozJEA= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2 h1:tpbXa4lslCL3hCzz1WQnTC5qKl4l3DEE9HTtfKfjMp4= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.2/go.mod h1:Up6C1q/S78upPeJLCWRqIWhOz8+vx5DAsFWKCAqKESo= -github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2 h1:ssvjp8LJrv7x/sPr15E5igCARw00MoIWl54SXZ1FIr0= -github.com/aws/aws-sdk-go-v2/service/route53 v1.44.2/go.mod h1:l2ABSKg3AibEJeR/l60cfeGU54UqF3VTgd51pq+vYhU= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2 h1:2NK2magJ7nYjnS23Ub17uZdvO6yUIWU01TPwqzcMPA0= -github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.2/go.mod h1:uFNgoaUIINLeJmEQmq4WqDvg4iVUPgpGyHGvuJKESxM= -github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2 h1:93ebu9TFZVovy6t1Bpq7mNLUE1t9IOBdAjPbzw8KPe4= -github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.2/go.mod h1:evgz1UEzddTr14GoSn43lU7SLqZnzwLbrHjYixmyAHk= -github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2 h1:iUHh9eL7HkhzU8D/TjE0CF3/G4JAEOXJNfDHCYTCTKU= -github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.2/go.mod h1:2H66KqHuQ2BOaOzwisALJtoc42gl/1BzgjfrvegnJrA= -github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2 h1:yaBkRuUivdvgeWwjZzw11S7ww+Nzml0t80Mv0HQ+6wQ= -github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.2/go.mod h1:wadWGOYl4mECMEgp+C14RthHwZWyMPZUCU6gmryfI0Y= -github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2 h1:K4eX3pv+eyrww7DieiOLkYc2Qv7fVnqHKh4u/pb53jI= -github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.2/go.mod h1:1t0dDWBVPyLQWH3uVw2PBZymRKPUQIlwyHWBbElvjcs= -github.com/aws/aws-sdk-go-v2/service/rum v1.20.2 h1:F0Je5v8gktHY4GVk61vN7oE/P6IasFsf8VaoQK3SEss= -github.com/aws/aws-sdk-go-v2/service/rum v1.20.2/go.mod h1:lIWasXEvGg7zyUAP7fe4v/BIXotheS4nIneDPeRayYs= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2 h1:1iXmXy8SJzQVMGvo40TSzBYS9ig6BSyXfRIMzLfmBfE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.63.2/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= -github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2 h1:tanWyz4jhBm+vPoimi6XpcZKFIBVDfVpTnrUHjeJljo= -github.com/aws/aws-sdk-go-v2/service/s3control v1.48.2/go.mod h1:OnvclTFylYBzFuko7L/GofARC4xh85D359PjECSqKZM= -github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2 h1:OFL1HOnkQGnP8BidIRI+4W/Oe59BypqzoKOprs6+8gM= -github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.2/go.mod h1:CRuJDz7FTzEH9rdt/7p6Eu/6sRNV9KgdgdNmYgeXLFo= -github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1 h1:AH1OcmkqJP7J5cE9XJ/Ik988JKoSuCisiH7omM3LH7w= -github.com/aws/aws-sdk-go-v2/service/sagemaker v1.160.1/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2 h1:Cu6CJ3Sm0IhVZ87OkKgLkUwcwIWaNT8CSzDr7kCFi/g= -github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.2/go.mod h1:FZ4JyKgu7dldYPXGLkq6lPrFN3ySvRA+M22Awt0Gce0= -github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2 h1:J55Tuvzv6Bevd0yMvNXLMSmljIibEuEL4YKf0N2C2Pg= -github.com/aws/aws-sdk-go-v2/service/schemas v1.27.2/go.mod h1:DN0f0GSsVwIsSoAPab8ekA41nQsLD75b261xAcRFWHs= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2 h1:C79sbcbdKuBpBpTDy1MNrJx5/Wii7gcwt0Jkd5QCGNA= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.2/go.mod h1:WyLS5qwXHtjKAONYZq/4ewdd+hcVsa3LBu77Ow5uj3k= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2 h1:MZd2AX3jzl2FBKmAtacTpSLMAu6Qp3Znp7ng+BHaoII= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.2/go.mod h1:QFtYEC35t39ftJ6emZgapzdtBjGZsuR4bAd73SiG23I= -github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2 h1:2WGko6Wh0L6dklVXtMbj0JRMuRyNZ1HcJKkMI2LJ/FE= -github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.2/go.mod h1:TJN6q6sLi8vSsM+/H1UxCyJvhsTSwmXxw1kQjH1hS2Q= -github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2 h1:fTsD5zWTYT8UbTmIeWN/x8vw2dwTBkMOOxhExarFbBg= -github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.2/go.mod h1:SYyCbaGtfOhXhqXEB7w2gLARjWQaasJ141FBcSBFFLQ= -github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2 h1:1oW7X5Q4OaiY1vuLofwoCjSM3BRe3tHD2h5njoh3sx0= -github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.2/go.mod h1:VKidRJJnOIM7XVxc/7O7JJzIK2FwPqbGOcJtxdAR+Tg= -github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2 h1:QuNFFyWbu9nCovpLiZyvdkpq9LurGrYqMkPpy0FEWgs= -github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.2/go.mod h1:0MbNCcVquMT60vkRWoX5T0p1WMRJnx1O9zeijrqwqkY= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2 h1:29YTjasLjpAjb9RMacMkwWJ2PgDipZqzDS3TOkqUsl4= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.2/go.mod h1:hbMVfSdZneCht4UmPOsejDt93QnetQPFuLOOqbuybqs= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2 h1:gH/dxANwb5KkMwqFPGfpMSj4ZJVgbRuSS0GHuSYsMWA= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.2/go.mod h1:GV6dseffRFXPRe2qmY5I6Mkypkoqm+AyH23nwSQbyF0= -github.com/aws/aws-sdk-go-v2/service/ses v1.27.2 h1:DSUFBQKpQZlBNQ1VWf3CLlBDopVtL71wmZFSVa0P4OU= -github.com/aws/aws-sdk-go-v2/service/ses v1.27.2/go.mod h1:WJjeWePq/vToxtM4fKbGHiXvInPARrWn8XJ0NOu4KtY= -github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2 h1:u78PfH2Veygb3/WoIWRKMOLU6F5DmUT+ZOaemjFAeng= -github.com/aws/aws-sdk-go-v2/service/sesv2 v1.34.2/go.mod h1:IjCl85fNBm1AgutKkCmFaN5XwreHxdLLy2/mtrZ6qwg= -github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2 h1:kjGvdLzCLQhHo6ev2a+bYVMO7E60aK1GM8s2FVlLNuA= -github.com/aws/aws-sdk-go-v2/service/sfn v1.32.2/go.mod h1:N8FU9Yn79tcXJA1ovnj6cRrEBOrwSkFKegS/CDOeGcg= -github.com/aws/aws-sdk-go-v2/service/shield v1.28.2 h1:8eLrAiQZAUvXpNbWRzCr5KVhnHXIGySayuGi8KtS0mo= -github.com/aws/aws-sdk-go-v2/service/shield v1.28.2/go.mod h1:nVZxCxhvntB6UcRxVK0X86Ab/LHFxQaHvTxBwfN4RRU= -github.com/aws/aws-sdk-go-v2/service/signer v1.25.2 h1:JmsSA7zkHmmsDg8gkFbT+38AS2wSMHB4pLmHfPrJ72c= -github.com/aws/aws-sdk-go-v2/service/signer v1.25.2/go.mod h1:v+b0Pp+v9kZml7neMqRF8pZWhqUugiQ911IPwnC8qJw= -github.com/aws/aws-sdk-go-v2/service/sns v1.32.2 h1:eAySuJF6Obj1eEy9VvJ6VFfsKsLV71hR2bAv9VwVWUw= -github.com/aws/aws-sdk-go-v2/service/sns v1.32.2/go.mod h1:ZO606Jfatw51c8q29gHVVCnufg2dq3MnmkNLlTZFrkE= -github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2 h1:sjw/u/hE4qRrT+5dQjetlXwy9ypkgVi3/RcB8C5n7bc= -github.com/aws/aws-sdk-go-v2/service/sqs v1.35.2/go.mod h1:WuGxWQhu2LXoPGA2HBIbotpwhM6T4hAz0Ip/HjdxfJg= -github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2 h1:Agv/W8IeOeKOiLAIO3osoS5UvGuiapd04jxhqmuzY6o= -github.com/aws/aws-sdk-go-v2/service/ssm v1.54.2/go.mod h1:qs3TBNpFEnVubl0WL3jruj7NJMF1RCAPEPQ1f+fLTBE= -github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2 h1:0PZd3gpgY2YW1b3ZA6FLi4FuvmAWtotSO7p/3mZ8b6I= -github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.2/go.mod h1:2Hcm22KIZ5WB159AnMqi6+Q4Iqjrs6RI6mZmpINK9zY= -github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2 h1:39UiE+zf/+J+p8RGuVPHs69Jg02YMFkYjk3E9LL3EEA= -github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.2/go.mod h1:hHB0B0kouPujT1Reg/Bpz1mMWSiNFNAbIPLsbotpvtI= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2 h1:PmxZKr/NXc1x3k1KBlTECtupTsPn/83lDmUkECt1ZEU= -github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.2/go.mod h1:wCkLE4XflwjbFLBkX2cJTK6M/85mCTejtyLCoEYUzb4= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 h1:yzi/y/vKlLyzOfG7pSu5ONNGRxHIgLeDrV4w2AMRCo0= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.2/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= -github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2 h1:b1RCrohJtoCp4rUfsVX1AX0CrvbZ4Nsc7LXdsuXl6tw= -github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.2/go.mod h1:vrQyFnviH2SDCJSXBbjOyoWnPOMMfRkznrBLhtlA51A= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 h1:3gb6pYhYLjo8rB1h2Tqs61wpjRd3rQymYcVq/pp0yxI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= -github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2 h1:orDJE/n/Y3Vsq98/P35CaWDN+aUIjd8Oo4IiBnNSvWA= -github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.2/go.mod h1:Tq5rpUueWqzCdqIMQ/C00/qUS4q+T+FVCwSE0S2nNZs= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 h1:O6tyji8mXmBGsHvTCB0VIhrDw19lGTUSbKIyjnw79s8= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.2/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= -github.com/aws/aws-sdk-go-v2/service/swf v1.26.2 h1:Dmf2UFRwbX5q1mmAmBJJAJfXuJRCZnKoUbbQxMsr4fs= -github.com/aws/aws-sdk-go-v2/service/swf v1.26.2/go.mod h1:5Xs759kS9wwOs5qnupTch9KEtnA9HfAeKsXje2wli44= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2 h1:BFT4LD8XlhTMxi+jc9MTW3RGeEbk08k5pA8rLPV0oMQ= -github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.2/go.mod h1:7VUyItGoj/dMFqIOEoyMi/8FhGAWVdgAodW3o9C2h5U= -github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2 h1:PMCyheGlvfNVV2rAsKCqfNLFTyGE8VGeLyGFTP8GLAk= -github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.4.2/go.mod h1:JjoFyRrlzsY67+yzraAew4QQznGlpytCMNge3RO0FUQ= -github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2 h1:F+zm0kakYMSScvSZn5HR3b6kS3uShHiRQCishk5WvAg= -github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.2/go.mod h1:/W4hzCr58RlGiCFBRO85jzwzyJAVJlQryaglvNsYVTc= -github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2 h1:+DbLBw/DUE9whagnTrVaCqoQ0s6D/c/t5sQw7EKHyEg= -github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.2/go.mod h1:2NcbgXMGBLDIWVgVNODP2rMIDUVkYQpI7/xhSPNgTuc= -github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2 h1:stu3GWuPQdBFKnpoijM9wQViyvlQiDvUHcEodxdvv2o= -github.com/aws/aws-sdk-go-v2/service/transfer v1.51.2/go.mod h1:cM6BSj4zvCSbsR+oVvwUMU8MDuyNUR0YcJcOrRmjDJI= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2 h1:1cCk2HYHx27Bl/NLMSEIEcV/jA58Y9KctqGdHbPZ6PA= -github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.2/go.mod h1:VsriKaoeJEY5E1GY9tZL/7Xuh+dLZYzoqIX8ktHY8ME= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2 h1:50USEfvBbUoBoYsHKEBYmAF4uFz1YRqudWsheTznl/4= -github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.2/go.mod h1:fFVqM2mr747L1jfni/b8aMSq0jsTnjWwol7DouBBTG0= -github.com/aws/aws-sdk-go-v2/service/waf v1.24.2 h1:ZsHsyYwLHFU5G2Tgj3wEnwCs2HcHJLg1itQYbUzs/PQ= -github.com/aws/aws-sdk-go-v2/service/waf v1.24.2/go.mod h1:4vOUaHr2PvE3ozSXxyQ7Jh1TOFnpaWs1acZIADSCx2g= -github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2 h1:NBtkGcygxyN2pY9JhanEofZsPO4DFJe0oS0dtN991Js= -github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.2/go.mod h1:h1NlLpD3QFxHK5r0Gt+YiDugcNZdvuwFZMePwPaeqXk= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2 h1:l80SvadG9lOZY7Mgl6LamB8jO4AnZmBOYLv31WLGZuo= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.2/go.mod h1:VS4CvMgYBTMwXdqQq7U1AszFZFf3qi+9oDkz6Hm8OmI= -github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2 h1:hTMsSwdT3cDYNY5I8zo19gjw/1rmxLuH6EbZGohXFOI= -github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.2/go.mod h1:IkH2gyryAJK8njc9MRimGL+MnlEEHCKuCjsRAUlq8s8= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3 h1:pQQzB7VOAaou/7C26qICpxJkpXYnFkcUYX7jEz9DSFE= +github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.18.3/go.mod h1:fhYvr0B1844Y7QhLRtdmY5GZEbVStCjE+OEhazg61Ds= +github.com/aws/aws-sdk-go-v2/service/iot v1.57.3 h1:7mgiOnM9d6CgI3EuyCPTwevkCvBqRGQ4h51QGR0/Yxk= +github.com/aws/aws-sdk-go-v2/service/iot v1.57.3/go.mod h1:wR4yGYW8QdKpmUJgboGVCW7fRSJI+Vi/20fEFHGNAJQ= +github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3 h1:5Acx6wGQPUmM0dFz7q8ZhIVrLryiUjKCRVjZVSnk0AE= +github.com/aws/aws-sdk-go-v2/service/iotanalytics v1.25.3/go.mod h1:R6xw3TxSOa7Mf91pkfRO/Lc6dbm4dNVpq0I4gUlw/Gk= +github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3 h1:fegmtnCkdMsX1d2bOPltcxOQGOqWVBhMQst5lJC1fJw= +github.com/aws/aws-sdk-go-v2/service/iotevents v1.26.3/go.mod h1:dT4/zcoReJEoSpnFkupL6ttAbiFHDI57VgmJedlqTto= +github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3 h1:Gar5zhYfDuXi0w4DHhJTABSSoRFr/HgqA2Mh9s1Pzig= +github.com/aws/aws-sdk-go-v2/service/ivs v1.39.3/go.mod h1:SvoQnCSuFuJNKWla6L0gCBGt2hUybGtpDCnf2gSEgg4= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3 h1:bqP12ByXYW1TzYlBuVlEaU7X42aq+5+xt+rgSU9MuXI= +github.com/aws/aws-sdk-go-v2/service/ivschat v1.15.3/go.mod h1:WvU5FAvZd/TL3VeVKonRHJ42AFa1oeN5WPbn02YzWzs= +github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3 h1:QrMp46glor8p8I0MBM/DqLn3Ljrikd35aUE/vT2ZXRQ= +github.com/aws/aws-sdk-go-v2/service/kafka v1.37.3/go.mod h1:fBPV+Vh4JdtCtsopwBKCqdma75qcOI8SD+MlJU+teXQ= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3 h1:vvE9oxHqhbzSLqbrkjDs2xzSHrQ4xGg/iU5h7WZXOAI= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.20.3/go.mod h1:pI87p/LzCfnek4XorpEPXCsGayU2Ij3MQbgHdQjml6E= +github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3 h1:0TteML+qTxLfErfVOuNqEskMx17cPwqxngTTV2kuJr0= +github.com/aws/aws-sdk-go-v2/service/kendra v1.53.3/go.mod h1:uHIz29KElVFQ75jRhky5snAagySv3KcxuJ9eBLvClJQ= +github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3 h1:GPPcWkr8rsEdTRmMXBw9EEAAlT6zVFCmnW3PRpswCtY= +github.com/aws/aws-sdk-go-v2/service/keyspaces v1.13.3/go.mod h1:Sset1/AxzSJ8aosURhyLJm804sZ1cBkgdfhGyidqNO4= +github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2 h1:BCUoERI55kdfbqgxRnor5oOI8h3EEy/AlETa/UmHQZ0= +github.com/aws/aws-sdk-go-v2/service/kinesis v1.31.2/go.mod h1:/D7NWV/jWRxPDDsSySncYt8JT4QHYeqgiR7r2vP2hYw= +github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3 h1:BiqiG2YQgeCuhBiisaEHB8ZjZOdCN7Yu7esssg5jPTU= +github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.24.3/go.mod h1:1mXTVF+BxmYnmaQ3Bsvs1AbzT8ghVEPVOhVLlD/h34M= +github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3 h1:I1myinJwUU1sfLDzyi9kfWnPTahMAOTExI2q6sO9HGY= +github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.30.3/go.mod h1:4td+MQ/pTrH78aGbDs6zUo1MYNzmrmar5f30JqTt7cA= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3 h1:B9LWfjWddJrryjhb6AM2mlGYlviJhT5XghXpJxnLJRA= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.26.3/go.mod h1:YtckrYyj5bsqpiEoM9jyJGEouqAvRk1bfxEatQt9H90= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3 h1:iHi6lC6LfW6SNvB2bixmlOW3WMyWFrHZCWX+P+CCxMk= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.3/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3 h1:8BZoQmkmnZVTrrFT+RmEdoRVSbEdAA5ctuo379hmyGo= +github.com/aws/aws-sdk-go-v2/service/lakeformation v1.36.3/go.mod h1:0A67Mdmp1aQZp74Ef/AoUW11YyNiIxgf8kjjL9JZMxI= +github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1 h1:Psp52CBlJtOVDyI4UMCAfovD4spGvdqapsBJxWZe470= +github.com/aws/aws-sdk-go-v2/service/lambda v1.62.1/go.mod h1:mivSaHqW3Atf5TDU1YyujR+HMv+snxCMoYaVd9d30O4= +github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3 h1:+0+umIFEDPVagbLzqoyM++I2RSAQsnW694SvTk6r1Tw= +github.com/aws/aws-sdk-go-v2/service/launchwizard v1.7.3/go.mod h1:6I30IIJw5mOeuza9tDHzUEya7ODqKobjjipcLYViouE= +github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3 h1:wEqepLWKrLtZk0L5UycfFflzdT7/h6MiJf6ajfxtmss= +github.com/aws/aws-sdk-go-v2/service/lexmodelbuildingservice v1.27.3/go.mod h1:VnoYFwR2qh8TqfmPPJU/1hiqQNIf2+BVaWGj7J9ofeo= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3 h1:t7FxDY9W9t9xspkuS1fn3rxJnHLk+LTpaAPyISnhjsk= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.48.3/go.mod h1:rmal7dltZ/Nj9c5K1QGWNBrwoB3YnsLKpfjudxpbTUM= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3 h1:t9TJdP1zTVnJ2T+DwOw5phK6YDeM5mB6r8OW4kzYhZM= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.28.3/go.mod h1:qxdofHNS6n02LO1BPw2gaq3XL+jAtX7bMW00PITkUok= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3 h1:4aA0MaOMfvaYlPoPNFqG3hR0sdZdcwJmrWE3GdVKBg4= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.41.3/go.mod h1:HM7L3Ylzj/7ZYVNchhnCZaPj8veuI38ICccD2nZI2EQ= +github.com/aws/aws-sdk-go-v2/service/location v1.41.4 h1:7qemUhbX5YRpAFVWgrJy9Q66FqDPDk/yIFFSysBzUXA= +github.com/aws/aws-sdk-go-v2/service/location v1.41.4/go.mod h1:yGvyLPsBAqpvDlLUvqwPOVF20gthq6Ru5hs4lzeR5zU= +github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3 h1:wp5NssI9haMalY3aBUimbnc+ZL0jx5ho1DDs6guf/wI= +github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.30.3/go.mod h1:0Pewvf6+Pl1Qr4liKIX/C58YjNuat0VflkuYIfuWYqw= +github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3 h1:NyCqoMOF352T+HzHYgGe39M1JQSd9lBA/trWCnbUMhQ= +github.com/aws/aws-sdk-go-v2/service/m2 v1.16.3/go.mod h1:MPskeCQ+fYztgr925XPpzu7b6BQHyQ57CKy1Txkqkuo= +github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3 h1:UFXM8WiPJODiCtAdrXbDSlzlyoA2wG2a98+qSevKKHI= +github.com/aws/aws-sdk-go-v2/service/macie2 v1.42.3/go.mod h1:04Rw979+FKHKrfAUZsHHh/qY1RspKfu2bm8wEj6jhmg= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3 h1:o+PbOGeu40YOCTSaNuStH1MFlLyijQjvDlhQZgVc4ng= +github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.34.3/go.mod h1:Ndl9J0mSsuvoiiwx5kmPmrslHoM57+pjD1aKRI2VUGM= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3 h1:DnAzBvbhIYl50f+4TJWF18PK5JsSYi04Y3buAP5xy7M= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.60.3/go.mod h1:MwaxhaePcMvBJEAlUD5tAbwRjM7PCqWkDnB2P/FBTlc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3 h1:xAUhtgaE5WbRd3gtoLkuXW/ZzRhYjmW3qQBk0eS2KOc= +github.com/aws/aws-sdk-go-v2/service/medialive v1.61.3/go.mod h1:3+dDG87hZGu3Jc5iid87nRJM9qdbXdwf+OZRSzwVOb0= +github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3 h1:th1CIngKOOI3wFpuBBo/LmPlxqJ4BSgcUebX50IDs6U= +github.com/aws/aws-sdk-go-v2/service/mediapackage v1.33.3/go.mod h1:Z6/SBxZbdRoN6vsmGHoWgwEczVodc1dF4Sa5i6r2JPw= +github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3 h1:pN5WrnY+Si3NT3JAU4j6LMzmsoLMjMMV/nR5T0ZNWcQ= +github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.16.3/go.mod h1:M5++ozDRLilJfj0L4GOfcOeIvu4JirySG3/ZtjxAHOA= +github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3 h1:omWacD13tFoxxTld+roCFvDK4kWE8h/ViTsrT7BsGXs= +github.com/aws/aws-sdk-go-v2/service/mediastore v1.23.3/go.mod h1:EWe65pGTUngrmOJ0OXgVH5FOVRrTGF1InWOsLxVQXxg= +github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4 h1:JXqfop7sHL0RHnbux74Wg/TpksmL05cNRQNodIBgZmI= +github.com/aws/aws-sdk-go-v2/service/memorydb v1.22.4/go.mod h1:Tdqix9r742tAaoWlC3DfadxTD2zkJXF0FzkT7zvQKwI= +github.com/aws/aws-sdk-go-v2/service/mq v1.26.3 h1:OR+iWR2e0NgwAf0vcGIKASEe2iLn4ayOJf7+XOGrBlk= +github.com/aws/aws-sdk-go-v2/service/mq v1.26.3/go.mod h1:ECtcnA9ICTtcVS/HTQzg11Fvq/2SxpWSOZhQVfHedtE= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3 h1:X+5822szaHW4/HcPFqCG4EiywXJ6nUJnFKiG+Gkeycw= +github.com/aws/aws-sdk-go-v2/service/mwaa v1.30.3/go.mod h1:M6XBjlabbpB/IoWJ2xBidH+YQFkisqlgDB3622+Ooi8= +github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3 h1:TvWCToz2XHajaBBxxmep9+XKV7iTfWyA/wW8Fc+peb4= +github.com/aws/aws-sdk-go-v2/service/neptune v1.34.3/go.mod h1:urvzEEqsKRT6h0O7nRevjBO354pQg4Fc7DZHEdsumTU= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3 h1:ov00wT4scQw1chiwd8J4lv1S0RTxjG4TD4Ufrqv7EQ8= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.12.3/go.mod h1:iRriI2T+7squuylfygLZc8DhIGBGyiFUCy8hmtUZkek= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3 h1:oSjkDYO5jTr0TClWCzhx2ZU9fyfc0tEOaerRGUJDxrI= +github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.42.3/go.mod h1:77c2LfAm2EnD4cFycPjK+xFzCHPvKFSHVE4tgQZdoX0= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3 h1:VBkmi1+v7K/FcbZL1yXOPrqlubXWacFoF/za9Tk4/rc= +github.com/aws/aws-sdk-go-v2/service/networkmanager v1.30.3/go.mod h1:wbimeMrcPRQHWiiWwp0MjVKsRVDq+xS58OzclQrnqb4= +github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3 h1:HULLIlDv7aS6ANkNqUnZ59Lxw5nnLkRdYVDE0z0cENU= +github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.6.3/go.mod h1:HYP6NZ2LfRnAoZMqgn3lSh3hnwt/Ug4hbdLaa01BoRE= +github.com/aws/aws-sdk-go-v2/service/oam v1.14.3 h1:mZsrbycKkGaR3O/DOYn8NVa62zjC735K2qxOEBFecLI= +github.com/aws/aws-sdk-go-v2/service/oam v1.14.3/go.mod h1:TPuwoU7I0Qcj9tpZB+seOSEIvRbZjgrVeHWlGxkHkx8= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3 h1:E1oRSUVouFby+zAh7cDwTDEQ0DYajXoEg1du0jVD3SI= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.40.3/go.mod h1:4rB9oWpduMw/+UqL/WdNLJZNF7iAwaJWwJ6GgsQqOjg= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4 h1:HOPDsu4mn/3O98BEy6DqZ+pHtcBNx3ChLRfJmQPogKU= +github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.15.4/go.mod h1:M/OcO7L+Tt27Wu1fRXg6X4+G6A07hO46at2ccDz2X14= +github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3 h1:QI8HfDFLmdlzOtRz0YUdwtL0MEdtOErL97qfAdadXS4= +github.com/aws/aws-sdk-go-v2/service/opsworks v1.25.3/go.mod h1:HJF0MWNUeYaVK+SzLzc8E5BqG6fyTt54U4uGJxcu82E= +github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1 h1:DOn2tnxukKVl3HVoOnTeG+d3As/CowgF68GdbP0Qpuo= +github.com/aws/aws-sdk-go-v2/service/organizations v1.33.1/go.mod h1:jmnEAD25O7dBF6wdCj8hSdokY3GLszeIZfh5sVoYgFE= +github.com/aws/aws-sdk-go-v2/service/osis v1.13.3 h1:5Wk90ICdGfR1EA943ojJD3d2jMD0aFkZHbDZ+24NIjU= +github.com/aws/aws-sdk-go-v2/service/osis v1.13.3/go.mod h1:lpZ4HxPlhauL7SxovvOlpxj+cIlbaEexFKm6GP16YTo= +github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3 h1:sksXxEcGP7JnJ8pMZ//39DWDM5glChcfxWREB69jMak= +github.com/aws/aws-sdk-go-v2/service/outposts v1.43.3/go.mod h1:P4q2zxaDsy3K+Itdlys3mmywLT1FWp84Odg0kVwQVGo= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3 h1:qp8UftNy77RQMa+0ECn02oFk3zRixYPfpbntz4H6tCs= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.13.3/go.mod h1:DbO3yFGCDeGNnLFlDMgPFvvwVG7ekRneHT5m+0HxI4Q= +github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3 h1:EuzeqO6mq32LBgDK/kKOY8gNVgcvYgyeRxPTvPuUJOs= +github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.8.3/go.mod h1:ZMKcOV2h86s8j4fLQGV6WscIW95EtpfIAhCWMFaqnTw= +github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4 h1:rq4swBXt3SrOMPA7XJVSgQiTxv4oPz5dMvIhtcMtBt0= +github.com/aws/aws-sdk-go-v2/service/pcs v1.1.4/go.mod h1:vWcXO6iRXR0+gGNdaQTJz+4pZ+TBLPdcBzkiSNfmi2o= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3 h1:BSRWmxSXUpgKnYniHoRGJJNY9I0mrSaqahG8+h88m5E= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.33.3/go.mod h1:CTzMrAJyOLQjgth3ouRlrxEU8sMx4eUcr8zxRWHvGkI= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2 h1:QOFadcta3UM+uVuTcktET7YhzG6cKMtV3Dr/e6C9BhI= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.14.2/go.mod h1:7W1rCC124xLdZ0Zh4ksL75YW5zMI/7QVmzPJcqGqAoA= +github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3 h1:1gtXFPC0KFeW/RV2nGs4Pfhr53BGrv4dIex73iq/zuM= +github.com/aws/aws-sdk-go-v2/service/pipes v1.16.3/go.mod h1:F8V3QoKrFa+y1JRgmgmxW9YwWiQ50Tv8cE/99rVBw/E= +github.com/aws/aws-sdk-go-v2/service/polly v1.44.3 h1:XVupSNPpjZu562rgTHOfPDE0xg/lPsbiHgSDNkc2lEo= +github.com/aws/aws-sdk-go-v2/service/polly v1.44.3/go.mod h1:8kELPHwi5SteCe9S4D8zRc8t9+BWDIYO1KFkDV8IYJo= +github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4 h1:4Ho8oYBvSJWJpBjyso90uBZFTNxi9FZtPqG/qybg9tA= +github.com/aws/aws-sdk-go-v2/service/pricing v1.31.4/go.mod h1:yXtz8BvgFFMy2TYPOiOcCqZkSGgq30vFKZaZ89pBDmY= +github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3 h1:/FcbY2nOte0wnzTTYqUPvQWLvA4G/FsCXien3rgbXDA= +github.com/aws/aws-sdk-go-v2/service/qbusiness v1.12.3/go.mod h1:JrAK1tq0tPLVupCisJQFcwme2+wN6/r0Dxl5F0Rj6Gc= +github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3 h1:RzMpW12sPwseA7XQmd0AK4KPfDOIeF2KcSbkUmH7uUM= +github.com/aws/aws-sdk-go-v2/service/qldb v1.24.3/go.mod h1:S6MPWo9u6LAkZV4nmGTUJ2CBeFko8MPiDJLx7tz9Bg8= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0 h1:lOiC6PAktLgmXp486gL1NMaB7ATE33UvdMeCcSAxCAY= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.74.0/go.mod h1:bgPhhJYNIsFQlnumFYUJrTZ3UVxFVF6VfkiKRQd+Awk= +github.com/aws/aws-sdk-go-v2/service/ram v1.28.3 h1:T4t7shKc/+Kr5kLcr+za0PQnivbs46UpB5rixV/MlCs= +github.com/aws/aws-sdk-go-v2/service/ram v1.28.3/go.mod h1:fjd9tZyiREkrD8UDuFCYdBSIcC4OiZa4kyYzBldlilA= +github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3 h1:ipKbrBC/bjJfzcaU4OrCC0k6bwrwOH/XfcQamRvfOdg= +github.com/aws/aws-sdk-go-v2/service/rbin v1.19.3/go.mod h1:GVsxflNPgN7sfCcjI2DTbj/9Wan38gxiZOBTusSFIPo= +github.com/aws/aws-sdk-go-v2/service/rds v1.86.0 h1:XIlc5PiPNJROSs8R4p50IKavXSqjuhIJ0C3JL0KJ2KQ= +github.com/aws/aws-sdk-go-v2/service/rds v1.86.0/go.mod h1:lhiPj6RvoJHWG2STp+k5az55YqGgFLBzkKYdYHgUh9g= +github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3 h1:TRJP6RflPN5A4yRpyXgznsJTJMT46tKigNAKzd7owic= +github.com/aws/aws-sdk-go-v2/service/redshift v1.47.3/go.mod h1:Zco+4iYqPF1u1FXTB0fHaRNRKPi82yw1AHPqJM5pI7A= +github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3 h1:bDlTqTCc8gqiYyFJQNZx0kDmxY98WGOzGrsKu38KE+Q= +github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.29.3/go.mod h1:lqIhSLH6flPJXSRqplVQMxtjtxWqd7/7lVMhMeBi9qE= +github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3 h1:dbyFFfQPPKya3nq9C/H/cykmm6mjCDVG2WQ4lOmBq9E= +github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.22.3/go.mod h1:IQ82tH8mwR7ueeE7kw9trOFoMXB1k6UbTo+hMFs8VLs= +github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3 h1:4aBbUPWa2nKA7Gavps4W5QdPf9JcwsETdKORENpjDR0= +github.com/aws/aws-sdk-go-v2/service/rekognition v1.44.3/go.mod h1:nKpeGs1qMq9AXQxMqD0muSCnWIFF6xadVHwiUYrCcdU= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3 h1:8xknnjgl/iH0KSiJvaDQoOpN5378ZZSHjVNZWs7qijE= +github.com/aws/aws-sdk-go-v2/service/resiliencehub v1.25.3/go.mod h1:8gtABA34koSq/pwYHWw8Gx1G+RpIcGcGrxzwYtaenNk= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2 h1:L5eeFGBMuNIq8sO7dl8wgEXOGyB7OYoO3BPi6egBEao= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.14.2/go.mod h1:+NAx6WlI0dNrzxGH3PrceeoD5ctO51JweFKYrkcJ3fQ= +github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0 h1:VR3fYSKeUiN67t7XFovU/PCgte3/qzCp5bUjnhU2vtU= +github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.26.0/go.mod h1:tlCleO7KsiiGT8yAlQ+LR/xdXsDoVPy3D1CstCSAFt4= +github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3 h1:1c+gDPYrt+IT9GQDojqvJSfYPejy7Xx6UGhQN4mLwIM= +github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.24.3/go.mod h1:xsGChYMIFBWAtVwQU807G1C/YCzqqQ9KQmsHcwozJEA= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3 h1:Thb7N94/GbEwfW9RVrDIsviB77HpsCf+dZ2T7+xUwnM= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.15.3/go.mod h1:Up6C1q/S78upPeJLCWRqIWhOz8+vx5DAsFWKCAqKESo= +github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3 h1:vYmafsIZWxc0EkIovYfjyfekHJogJjnIUXso5o7YPIA= +github.com/aws/aws-sdk-go-v2/service/route53 v1.44.3/go.mod h1:l2ABSKg3AibEJeR/l60cfeGU54UqF3VTgd51pq+vYhU= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3 h1:AWxJKli3/wooKuD3ubRDtFfnpZ0ch9R+N7LiQ2zru7c= +github.com/aws/aws-sdk-go-v2/service/route53domains v1.26.3/go.mod h1:uFNgoaUIINLeJmEQmq4WqDvg4iVUPgpGyHGvuJKESxM= +github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3 h1:VuuXUW9n7ZL5JkeSi46hAKd/PKoEbq5QJdpcIuq4tlE= +github.com/aws/aws-sdk-go-v2/service/route53profiles v1.3.3/go.mod h1:evgz1UEzddTr14GoSn43lU7SLqZnzwLbrHjYixmyAHk= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3 h1:Qp7iEbnbEM3xvQt2oW0hncN/BQbbdkf5QiFq7myiADA= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.24.3/go.mod h1:2H66KqHuQ2BOaOzwisALJtoc42gl/1BzgjfrvegnJrA= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3 h1:si2cRM7jpF2twzOKk/IjUbe2NXIAMe3wKG7gWkFXsOQ= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.20.3/go.mod h1:wadWGOYl4mECMEgp+C14RthHwZWyMPZUCU6gmryfI0Y= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3 h1:kKooBzPdbErEYGYtC4eUyfewKUKEKgWRcRYyGovVoOQ= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.31.3/go.mod h1:1t0dDWBVPyLQWH3uVw2PBZymRKPUQIlwyHWBbElvjcs= +github.com/aws/aws-sdk-go-v2/service/rum v1.20.3 h1:VxTXw2c88eLea/lxR/cWmJfw4jr+IwIIrs2eJPSFjlI= +github.com/aws/aws-sdk-go-v2/service/rum v1.20.3/go.mod h1:lIWasXEvGg7zyUAP7fe4v/BIXotheS4nIneDPeRayYs= +github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0 h1:I0p8knB/IDYSQ3dbanaCr4UhiYQ96bvKRhGYxvLyiD8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.64.0/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= +github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3 h1:+EM+FAM1dlhX0TuKlR7tWSTiazcwQNU/lG6RNBunMyo= +github.com/aws/aws-sdk-go-v2/service/s3control v1.48.3/go.mod h1:OnvclTFylYBzFuko7L/GofARC4xh85D359PjECSqKZM= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3 h1:yAmKP/XEmSWIgy9x+nVW3tZAHic+KiOv+bzi4oEGv+E= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.27.3/go.mod h1:CRuJDz7FTzEH9rdt/7p6Eu/6sRNV9KgdgdNmYgeXLFo= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0 h1:Ip2efAn1od3MoT9Cjkh+bU/Nxe7K3V6RW0VMjTg8tw4= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.162.0/go.mod h1:Tbr4Z2D/vjAaeWeAlwKLUTwEabATR12YTXcW9HFoSpA= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3 h1:vq6s8p+mauDOBi0ATnpTYzYTh+yqguXPDdUiBT20pVU= +github.com/aws/aws-sdk-go-v2/service/scheduler v1.11.3/go.mod h1:FZ4JyKgu7dldYPXGLkq6lPrFN3ySvRA+M22Awt0Gce0= +github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3 h1:89xXAMtiyy0bmvWQ3HCVfyiGLTR/H9vOYZ7aOl3FlSk= +github.com/aws/aws-sdk-go-v2/service/schemas v1.27.3/go.mod h1:DN0f0GSsVwIsSoAPab8ekA41nQsLD75b261xAcRFWHs= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3 h1:W2M3kQSuN1+FXgV2wMv1JMWPxw/37wBN87QHYDuTV0Y= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.3/go.mod h1:WyLS5qwXHtjKAONYZq/4ewdd+hcVsa3LBu77Ow5uj3k= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3 h1:YSmEnPSWj74eOtbXG4Z2J+GTQjBrz7w2wP01isHFZwU= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.53.3/go.mod h1:QFtYEC35t39ftJ6emZgapzdtBjGZsuR4bAd73SiG23I= +github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3 h1:+u+4GZspRnr73p5f6Wr0LV7EOOyQySmU4kUaJCE2YSY= +github.com/aws/aws-sdk-go-v2/service/securitylake v1.17.3/go.mod h1:TJN6q6sLi8vSsM+/H1UxCyJvhsTSwmXxw1kQjH1hS2Q= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3 h1:SW10aLfunv3jdPKfnf1vLxjh9wzIC5ivAmfHJTNmvug= +github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.23.3/go.mod h1:SYyCbaGtfOhXhqXEB7w2gLARjWQaasJ141FBcSBFFLQ= +github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3 h1:sC26+EZ9PsCss8Tmq1hdsSpKbMZbcsTidSLlo1D0C5Q= +github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.31.3/go.mod h1:VKidRJJnOIM7XVxc/7O7JJzIK2FwPqbGOcJtxdAR+Tg= +github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3 h1:YiVOPnTPMgsmQ4LnfwwsncF0otVCe64r29wzV9pMqdk= +github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.29.3/go.mod h1:0MbNCcVquMT60vkRWoX5T0p1WMRJnx1O9zeijrqwqkY= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3 h1:55Y/RewMJExiMaz4SUl9ZfjgM4Fi/caaN6wVJ+i3lto= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.32.3/go.mod h1:hbMVfSdZneCht4UmPOsejDt93QnetQPFuLOOqbuybqs= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3 h1:FYIhlz8W1L3pbiMGv4/M56iEVUM9CvTBWsIxvCMDyio= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.24.3/go.mod h1:GV6dseffRFXPRe2qmY5I6Mkypkoqm+AyH23nwSQbyF0= +github.com/aws/aws-sdk-go-v2/service/ses v1.27.3 h1:i7k9FzwUfv9seln228iz+69OyXZ0FMqhwotSeAlRC7A= +github.com/aws/aws-sdk-go-v2/service/ses v1.27.3/go.mod h1:WJjeWePq/vToxtM4fKbGHiXvInPARrWn8XJ0NOu4KtY= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0 h1:KJqVNo0qzxA4EsyAuKa0b5zAOUF1x9AKfgeRfRkTEls= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.35.0/go.mod h1:IjCl85fNBm1AgutKkCmFaN5XwreHxdLLy2/mtrZ6qwg= +github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3 h1:4HoibwG6AcWIG8uKlV7cQ0+gVzQkL8/+nxG2ov9Zdms= +github.com/aws/aws-sdk-go-v2/service/sfn v1.32.3/go.mod h1:N8FU9Yn79tcXJA1ovnj6cRrEBOrwSkFKegS/CDOeGcg= +github.com/aws/aws-sdk-go-v2/service/shield v1.28.3 h1:47WjqdmllA2Zkj0HErk70vkGBdc2EfolywIZfgDw6Fc= +github.com/aws/aws-sdk-go-v2/service/shield v1.28.3/go.mod h1:nVZxCxhvntB6UcRxVK0X86Ab/LHFxQaHvTxBwfN4RRU= +github.com/aws/aws-sdk-go-v2/service/signer v1.25.3 h1:A0ueho3ZhRK3ggXJBgWEpN0eYuTGEOjK3G/7Bz8FTOI= +github.com/aws/aws-sdk-go-v2/service/signer v1.25.3/go.mod h1:v+b0Pp+v9kZml7neMqRF8pZWhqUugiQ911IPwnC8qJw= +github.com/aws/aws-sdk-go-v2/service/sns v1.32.3 h1:LC5JBrEAdJ0SSRLfNcLzOLsfoc3xO/BAsHiUNcQfDI4= +github.com/aws/aws-sdk-go-v2/service/sns v1.32.3/go.mod h1:ZO606Jfatw51c8q29gHVVCnufg2dq3MnmkNLlTZFrkE= +github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3 h1:Lcs658WFW235QuUfpAdxd8RCy8Va2VUA7/U9iIrcjcY= +github.com/aws/aws-sdk-go-v2/service/sqs v1.35.3/go.mod h1:WuGxWQhu2LXoPGA2HBIbotpwhM6T4hAz0Ip/HjdxfJg= +github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3 h1:Ctzev3ppcc46m2FgrLEZhsHMEr1G1lrJcd9Cmoy/QJk= +github.com/aws/aws-sdk-go-v2/service/ssm v1.54.3/go.mod h1:qs3TBNpFEnVubl0WL3jruj7NJMF1RCAPEPQ1f+fLTBE= +github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3 h1:e5BY5R2WloCjB6K6hX4nMKM/AgoyrWS5u6F4sK2KBpE= +github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.25.3/go.mod h1:2Hcm22KIZ5WB159AnMqi6+Q4Iqjrs6RI6mZmpINK9zY= +github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3 h1:QTzSoDU21cd1GS9hXKbtK+z8DVLnRawqYT7O5WvMPvI= +github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.33.3/go.mod h1:hHB0B0kouPujT1Reg/Bpz1mMWSiNFNAbIPLsbotpvtI= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3 h1:8OxXGVMNUU0wtx51nKgfVHvr4H8+kKcULTyrTghBX2w= +github.com/aws/aws-sdk-go-v2/service/ssmsap v1.17.3/go.mod h1:wCkLE4XflwjbFLBkX2cJTK6M/85mCTejtyLCoEYUzb4= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3 h1:rs4JCczF805+FDv2tRhZ1NU0RB2H6ryAvsWPanAr72Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.3/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3 h1:bxaIezTrmNnJhPoJqn7sgcc0emvhpp1iiidkY1E6GmU= +github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.28.3/go.mod h1:vrQyFnviH2SDCJSXBbjOyoWnPOMMfRkznrBLhtlA51A= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 h1:S7EPdMVZod8BGKQQPTBK+FcX9g7bKR7c4+HxWqHP7Vg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3 h1:D+VVmwDEmpaRlZRWBYu+Qc7aGiikfbOSE2LUr0t3JxA= +github.com/aws/aws-sdk-go-v2/service/storagegateway v1.33.3/go.mod h1:Tq5rpUueWqzCdqIMQ/C00/qUS4q+T+FVCwSE0S2nNZs= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 h1:VzudTFrDCIDakXtemR7l6Qzt2+JYsVqo2MxBPt5k8T8= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.3/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/aws-sdk-go-v2/service/swf v1.26.3 h1:nm2djoNSEUp4XTnj0QlwXJ054Fyzh4L2mXPM3js0iqs= +github.com/aws/aws-sdk-go-v2/service/swf v1.26.3/go.mod h1:5Xs759kS9wwOs5qnupTch9KEtnA9HfAeKsXje2wli44= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3 h1:dNywWGwRnfxYWjb9N+9vtYZSpiLQvSAbFObDeAM4Bv8= +github.com/aws/aws-sdk-go-v2/service/synthetics v1.28.3/go.mod h1:7VUyItGoj/dMFqIOEoyMi/8FhGAWVdgAodW3o9C2h5U= +github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0 h1:K15Yb4IVc6mRbyYJC3UYQAQ2d67HyHK1nDLZMw2Azwk= +github.com/aws/aws-sdk-go-v2/service/timestreaminfluxdb v1.5.0/go.mod h1:JjoFyRrlzsY67+yzraAew4QQznGlpytCMNge3RO0FUQ= +github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3 h1:nU/8qvmFfJuDwuObV2mkGzhX4U2R8/I3vmm/e0U1VjM= +github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.28.3/go.mod h1:/W4hzCr58RlGiCFBRO85jzwzyJAVJlQryaglvNsYVTc= +github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3 h1:uyNi+9tw+9f8pVfN4YvYB15rvgJUX0UsfRasNzXMb7A= +github.com/aws/aws-sdk-go-v2/service/transcribe v1.40.3/go.mod h1:2NcbgXMGBLDIWVgVNODP2rMIDUVkYQpI7/xhSPNgTuc= +github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3 h1:5b2DVOXffF2N0RdLlueOztYWSOl58hzfcea6dHB0YlM= +github.com/aws/aws-sdk-go-v2/service/transfer v1.51.3/go.mod h1:cM6BSj4zvCSbsR+oVvwUMU8MDuyNUR0YcJcOrRmjDJI= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4 h1:lh8HZGsMeHLxOa2tsrVYFg8XfyTBTgfAPbPpxTg4aPk= +github.com/aws/aws-sdk-go-v2/service/verifiedpermissions v1.18.4/go.mod h1:VsriKaoeJEY5E1GY9tZL/7Xuh+dLZYzoqIX8ktHY8ME= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3 h1:3SgeLJwBEhlu9jisxUVmnRkfXDcOv0+f8i5lATrQ8Dw= +github.com/aws/aws-sdk-go-v2/service/vpclattice v1.11.3/go.mod h1:fFVqM2mr747L1jfni/b8aMSq0jsTnjWwol7DouBBTG0= +github.com/aws/aws-sdk-go-v2/service/waf v1.24.3 h1:X/97M5OUzDerqQrlHvC6J5lR3nya7kanVnIghMIYGFs= +github.com/aws/aws-sdk-go-v2/service/waf v1.24.3/go.mod h1:4vOUaHr2PvE3ozSXxyQ7Jh1TOFnpaWs1acZIADSCx2g= +github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3 h1:8NzSiycWJ30VzJevcQ4+UVDvo8BdM1gNjrALs3IeBMk= +github.com/aws/aws-sdk-go-v2/service/wafregional v1.24.3/go.mod h1:h1NlLpD3QFxHK5r0Gt+YiDugcNZdvuwFZMePwPaeqXk= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3 h1:8UTvslyRTYXkOzsha3LMpnSCkZ6gx08gm44Sw986DmQ= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.53.3/go.mod h1:VS4CvMgYBTMwXdqQq7U1AszFZFf3qi+9oDkz6Hm8OmI= +github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3 h1:T2WVijuvP15I8p//nyQSJ0DSJmB6r0tSIDKFCx40RI8= +github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.33.3/go.mod h1:IkH2gyryAJK8njc9MRimGL+MnlEEHCKuCjsRAUlq8s8= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 h1:VN3Qydtdl3UlJRHVxQxSP1d8I5gtvT5zdaCCAfZST7Y= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2/go.mod h1:Z3RLpIq4q49syd921XdsKeD584kPu89iKTEjluh7908= -github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2 h1:Z0ajvI9PaRXvIHaeYV0KGrPCY8o3krfhC2I+vIrZrRc= -github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.2/go.mod h1:Zq4TZVjZyNoOuTxTNbalgkA/TNaVBCLwssgOJt52xHM= -github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2 h1:nIJi5x3KEvn/IuRiqCcqFEUGzBukZSgEOIMvNkm5GZg= -github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.2/go.mod h1:bQTPvaKCwGs+b6+vlzdIsPIsvTYVMCJf48iQGjmFTTs= -github.com/aws/aws-sdk-go-v2/service/xray v1.28.2 h1:xTOIu1C76VscgS78G9TROoaMqpeQ65LrAchk2wJgRzE= -github.com/aws/aws-sdk-go-v2/service/xray v1.28.2/go.mod h1:9uEy87x3oNzdHyYb/X6YCKJJ1GX+OS90GN3sVqgSep0= +github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4 h1:4nirE18+4BAJSNamigYUvQnOBpS2gQZyYpvaa0xeESI= +github.com/aws/aws-sdk-go-v2/service/workspaces v1.47.4/go.mod h1:Zq4TZVjZyNoOuTxTNbalgkA/TNaVBCLwssgOJt52xHM= +github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3 h1:FtHgnpI+R5hN0apmsNN5qBmRGhJ75IsMRb0Eyr85hrI= +github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.23.3/go.mod h1:bQTPvaKCwGs+b6+vlzdIsPIsvTYVMCJf48iQGjmFTTs= +github.com/aws/aws-sdk-go-v2/service/xray v1.28.3 h1:6Hllmb0W8MvCLVzruBJ8+wkisUXu9zcjtsixNqgHOx8= +github.com/aws/aws-sdk-go-v2/service/xray v1.28.3/go.mod h1:9uEy87x3oNzdHyYb/X6YCKJJ1GX+OS90GN3sVqgSep0= github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= diff --git a/provider/resources.go b/provider/resources.go index 3a19029a98c..4c26c9a8b5a 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -5848,9 +5848,18 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { return attr(state, "functionName"), nil } prov.Resources["aws_iam_role_policies_exclusive"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { - return attr(state, "role_name"), nil + return attr(state, "roleName"), nil } prov.Resources["aws_elasticache_reserved_cache_node"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { return attr(state, "id"), nil } + prov.Resources["aws_bedrock_guardrail_version"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "guardrailArn", "version"), nil + } + prov.Resources["aws_iam_group_policies_exclusive"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "groupName"), nil + } + prov.Resources["aws_iam_user_policies_exclusive"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "userName"), nil + } } diff --git a/sdk/dotnet/ApiGateway/Integration.cs b/sdk/dotnet/ApiGateway/Integration.cs index 6456b396ee7..a05cdf58e51 100644 --- a/sdk/dotnet/ApiGateway/Integration.cs +++ b/sdk/dotnet/ApiGateway/Integration.cs @@ -145,7 +145,7 @@ namespace Pulumi.Aws.ApiGateway /// Name = "mylambda", /// Role = role.Arn, /// Handler = "lambda.lambda_handler", - /// Runtime = Aws.Lambda.Runtime.Python3d7, + /// Runtime = Aws.Lambda.Runtime.Python3d12, /// SourceCodeHash = Std.Filebase64sha256.Invoke(new() /// { /// Input = "lambda.zip", diff --git a/sdk/dotnet/ApiGatewayV2/Integration.cs b/sdk/dotnet/ApiGatewayV2/Integration.cs index 68a8fd16974..269f9967428 100644 --- a/sdk/dotnet/ApiGatewayV2/Integration.cs +++ b/sdk/dotnet/ApiGatewayV2/Integration.cs @@ -50,7 +50,7 @@ namespace Pulumi.Aws.ApiGatewayV2 /// Name = "Example", /// Role = exampleAwsIamRole.Arn, /// Handler = "index.handler", - /// Runtime = Aws.Lambda.Runtime.NodeJS16dX, + /// Runtime = Aws.Lambda.Runtime.NodeJS20dX, /// }); /// /// var exampleIntegration = new Aws.ApiGatewayV2.Integration("example", new() diff --git a/sdk/dotnet/AppFlow/ConnectorProfile.cs b/sdk/dotnet/AppFlow/ConnectorProfile.cs index 77a0340aca0..df171235ba5 100644 --- a/sdk/dotnet/AppFlow/ConnectorProfile.cs +++ b/sdk/dotnet/AppFlow/ConnectorProfile.cs @@ -60,7 +60,7 @@ namespace Pulumi.Aws.AppFlow /// /// var exampleBucketV2 = new Aws.S3.BucketV2("example", new() /// { - /// Bucket = "example_bucket", + /// Bucket = "example-bucket", /// }); /// /// var exampleCluster = new Aws.RedShift.Cluster("example", new() diff --git a/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsArgs.cs b/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsArgs.cs new file mode 100644 index 00000000000..f0cc27790da --- /dev/null +++ b/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsArgs.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.Backup.Inputs +{ + + public sealed class LogicallyAirGappedVaultTimeoutsArgs : 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 LogicallyAirGappedVaultTimeoutsArgs() + { + } + public static new LogicallyAirGappedVaultTimeoutsArgs Empty => new LogicallyAirGappedVaultTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsGetArgs.cs b/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsGetArgs.cs new file mode 100644 index 00000000000..89338ae7e71 --- /dev/null +++ b/sdk/dotnet/Backup/Inputs/LogicallyAirGappedVaultTimeoutsGetArgs.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.Backup.Inputs +{ + + public sealed class LogicallyAirGappedVaultTimeoutsGetArgs : 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 LogicallyAirGappedVaultTimeoutsGetArgs() + { + } + public static new LogicallyAirGappedVaultTimeoutsGetArgs Empty => new LogicallyAirGappedVaultTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Backup/LogicallyAirGappedVault.cs b/sdk/dotnet/Backup/LogicallyAirGappedVault.cs new file mode 100644 index 00000000000..1d5b8d7b48c --- /dev/null +++ b/sdk/dotnet/Backup/LogicallyAirGappedVault.cs @@ -0,0 +1,231 @@ +// *** 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.Backup +{ + /// + /// Resource for managing an AWS Backup Logically Air Gapped Vault. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Backup.LogicallyAirGappedVault("example", new() + /// { + /// Name = "lag-example-vault", + /// MaxRetentionDays = 7, + /// MinRetentionDays = 7, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault + /// ``` + /// + [AwsResourceType("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault")] + public partial class LogicallyAirGappedVault : global::Pulumi.CustomResource + { + /// + /// The ARN of the Logically Air Gapped Backup Vault. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Output("maxRetentionDays")] + public Output MaxRetentionDays { get; private set; } = null!; + + /// + /// Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Output("minRetentionDays")] + public Output MinRetentionDays { get; private set; } = null!; + + /// + /// Name of the Logically Air Gapped Backup Vault to create. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVault 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 LogicallyAirGappedVault(string name, LogicallyAirGappedVaultArgs args, CustomResourceOptions? options = null) + : base("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", name, args ?? new LogicallyAirGappedVaultArgs(), MakeResourceOptions(options, "")) + { + } + + private LogicallyAirGappedVault(string name, Input id, LogicallyAirGappedVaultState? state = null, CustomResourceOptions? options = null) + : base("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", 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 LogicallyAirGappedVault 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 LogicallyAirGappedVault Get(string name, Input id, LogicallyAirGappedVaultState? state = null, CustomResourceOptions? options = null) + { + return new LogicallyAirGappedVault(name, id, state, options); + } + } + + public sealed class LogicallyAirGappedVaultArgs : global::Pulumi.ResourceArgs + { + /// + /// Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Input("maxRetentionDays", required: true)] + public Input MaxRetentionDays { get; set; } = null!; + + /// + /// Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Input("minRetentionDays", required: true)] + public Input MinRetentionDays { get; set; } = null!; + + /// + /// Name of the Logically Air Gapped Backup Vault to create. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultArgs() + { + } + public static new LogicallyAirGappedVaultArgs Empty => new LogicallyAirGappedVaultArgs(); + } + + public sealed class LogicallyAirGappedVaultState : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the Logically Air Gapped Backup Vault. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Input("maxRetentionDays")] + public Input? MaxRetentionDays { get; set; } + + /// + /// Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + /// + [Input("minRetentionDays")] + public Input? MinRetentionDays { get; set; } + + /// + /// Name of the Logically Air Gapped Backup Vault to create. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultState() + { + } + public static new LogicallyAirGappedVaultState Empty => new LogicallyAirGappedVaultState(); + } +} diff --git a/sdk/dotnet/Backup/Outputs/LogicallyAirGappedVaultTimeouts.cs b/sdk/dotnet/Backup/Outputs/LogicallyAirGappedVaultTimeouts.cs new file mode 100644 index 00000000000..8fa6ac0724e --- /dev/null +++ b/sdk/dotnet/Backup/Outputs/LogicallyAirGappedVaultTimeouts.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.Backup.Outputs +{ + + [OutputType] + public sealed class LogicallyAirGappedVaultTimeouts + { + /// + /// 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 LogicallyAirGappedVaultTimeouts(string? create) + { + Create = create; + } + } +} diff --git a/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs b/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs index 5ce49bd06c4..944f1505da8 100644 --- a/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs +++ b/sdk/dotnet/Bedrock/AgentAgentActionGroup.cs @@ -244,12 +244,21 @@ public partial class AgentAgentActionGroup : global::Pulumi.CustomResource [Output("parentActionGroupSignature")] public Output ParentActionGroupSignature { get; private set; } = null!; + /// + /// Whether or not to prepare the agent after creation or modification. Defaults to `true`. + /// + [Output("prepareAgent")] + public Output PrepareAgent { get; private set; } = null!; + /// /// Whether the in-use check is skipped when deleting the action group. /// [Output("skipResourceInUseCheck")] public Output SkipResourceInUseCheck { get; private set; } = null!; + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + /// /// Create a AgentAgentActionGroup resource with the given unique name, arguments, and options. @@ -354,12 +363,21 @@ public sealed class AgentAgentActionGroupArgs : global::Pulumi.ResourceArgs [Input("parentActionGroupSignature")] public Input? ParentActionGroupSignature { get; set; } + /// + /// Whether or not to prepare the agent after creation or modification. Defaults to `true`. + /// + [Input("prepareAgent")] + public Input? PrepareAgent { get; set; } + /// /// Whether the in-use check is skipped when deleting the action group. /// [Input("skipResourceInUseCheck")] public Input? SkipResourceInUseCheck { get; set; } + [Input("timeouts")] + public Input? Timeouts { get; set; } + public AgentAgentActionGroupArgs() { } @@ -432,12 +450,21 @@ public sealed class AgentAgentActionGroupState : global::Pulumi.ResourceArgs [Input("parentActionGroupSignature")] public Input? ParentActionGroupSignature { get; set; } + /// + /// Whether or not to prepare the agent after creation or modification. Defaults to `true`. + /// + [Input("prepareAgent")] + public Input? PrepareAgent { get; set; } + /// /// Whether the in-use check is skipped when deleting the action group. /// [Input("skipResourceInUseCheck")] public Input? SkipResourceInUseCheck { get; set; } + [Input("timeouts")] + public Input? Timeouts { get; set; } + public AgentAgentActionGroupState() { } diff --git a/sdk/dotnet/Bedrock/GuardrailVersion.cs b/sdk/dotnet/Bedrock/GuardrailVersion.cs new file mode 100644 index 00000000000..bf9079a87e7 --- /dev/null +++ b/sdk/dotnet/Bedrock/GuardrailVersion.cs @@ -0,0 +1,188 @@ +// *** 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.Bedrock +{ + /// + /// Resource for managing an AWS Bedrock Guardrail Version. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Bedrock.GuardrailVersion("example", new() + /// { + /// Description = "example", + /// GuardrailArn = test.GuardrailArn, + /// SkipDestroy = true, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: + /// + /// ```sh + /// $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 + /// ``` + /// + [AwsResourceType("aws:bedrock/guardrailVersion:GuardrailVersion")] + public partial class GuardrailVersion : global::Pulumi.CustomResource + { + /// + /// Description of the Guardrail version. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Guardrail ARN. + /// + /// The following arguments are optional: + /// + [Output("guardrailArn")] + public Output GuardrailArn { get; private set; } = null!; + + /// + /// Whether to retain the old version of a previously deployed Guardrail. Default is `false` + /// + [Output("skipDestroy")] + public Output SkipDestroy { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// Guardrail version. + /// + [Output("version")] + public Output Version { get; private set; } = null!; + + + /// + /// Create a GuardrailVersion 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 GuardrailVersion(string name, GuardrailVersionArgs args, CustomResourceOptions? options = null) + : base("aws:bedrock/guardrailVersion:GuardrailVersion", name, args ?? new GuardrailVersionArgs(), MakeResourceOptions(options, "")) + { + } + + private GuardrailVersion(string name, Input id, GuardrailVersionState? state = null, CustomResourceOptions? options = null) + : base("aws:bedrock/guardrailVersion:GuardrailVersion", 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 GuardrailVersion 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 GuardrailVersion Get(string name, Input id, GuardrailVersionState? state = null, CustomResourceOptions? options = null) + { + return new GuardrailVersion(name, id, state, options); + } + } + + public sealed class GuardrailVersionArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the Guardrail version. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Guardrail ARN. + /// + /// The following arguments are optional: + /// + [Input("guardrailArn", required: true)] + public Input GuardrailArn { get; set; } = null!; + + /// + /// Whether to retain the old version of a previously deployed Guardrail. Default is `false` + /// + [Input("skipDestroy")] + public Input? SkipDestroy { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public GuardrailVersionArgs() + { + } + public static new GuardrailVersionArgs Empty => new GuardrailVersionArgs(); + } + + public sealed class GuardrailVersionState : global::Pulumi.ResourceArgs + { + /// + /// Description of the Guardrail version. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Guardrail ARN. + /// + /// The following arguments are optional: + /// + [Input("guardrailArn")] + public Input? GuardrailArn { get; set; } + + /// + /// Whether to retain the old version of a previously deployed Guardrail. Default is `false` + /// + [Input("skipDestroy")] + public Input? SkipDestroy { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// Guardrail version. + /// + [Input("version")] + public Input? Version { get; set; } + + public GuardrailVersionState() + { + } + public static new GuardrailVersionState Empty => new GuardrailVersionState(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsArgs.cs new file mode 100644 index 00000000000..4a504654cab --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsArgs.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.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupTimeoutsArgs : 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). + /// + [Input("update")] + public Input? Update { get; set; } + + public AgentAgentActionGroupTimeoutsArgs() + { + } + public static new AgentAgentActionGroupTimeoutsArgs Empty => new AgentAgentActionGroupTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsGetArgs.cs new file mode 100644 index 00000000000..8d500de89d0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentActionGroupTimeoutsGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentAgentActionGroupTimeoutsGetArgs : 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). + /// + [Input("update")] + public Input? Update { get; set; } + + public AgentAgentActionGroupTimeoutsGetArgs() + { + } + public static new AgentAgentActionGroupTimeoutsGetArgs Empty => new AgentAgentActionGroupTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationArgs.cs index 58cd5cc2866..01605980d5f 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationArgs.cs @@ -18,6 +18,12 @@ public sealed class AgentDataSourceVectorIngestionConfigurationArgs : global::Pu [Input("chunkingConfiguration")] public Input? ChunkingConfiguration { get; set; } + /// + /// Configuration for custom transformation of data source documents. + /// + [Input("customTransformationConfiguration")] + public Input? CustomTransformationConfiguration { get; set; } + /// /// Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. /// diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.cs new file mode 100644 index 00000000000..8307eb2771b --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The intermediate storage for custom transformation. + /// + [Input("intermediateStorage")] + public Input? IntermediateStorage { get; set; } + + [Input("transformation")] + public Input? Transformation { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs.cs new file mode 100644 index 00000000000..5f75252164b --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The intermediate storage for custom transformation. + /// + [Input("intermediateStorage")] + public Input? IntermediateStorage { get; set; } + + [Input("transformation")] + public Input? Transformation { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.cs new file mode 100644 index 00000000000..31b67af8b24 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration block for intermedia S3 storage. + /// + [Input("s3Location")] + public Input? S3Location { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs.cs new file mode 100644 index 00000000000..0feb38ca4d0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration block for intermedia S3 storage. + /// + [Input("s3Location")] + public Input? S3Location { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.cs new file mode 100644 index 00000000000..20627706e1a --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs : global::Pulumi.ResourceArgs + { + /// + /// S3 URI for intermediate storage. + /// + [Input("uri", required: true)] + public Input Uri { get; set; } = null!; + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs.cs new file mode 100644 index 00000000000..ba7b1e7a14b --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// S3 URI for intermediate storage. + /// + [Input("uri", required: true)] + public Input Uri { get; set; } = null!; + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.cs new file mode 100644 index 00000000000..579b3c46ab3 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs : global::Pulumi.ResourceArgs + { + /// + /// Currently only `POST_CHUNKING` is supported. + /// + [Input("stepToApply", required: true)] + public Input StepToApply { get; set; } = null!; + + /// + /// The configuration of transformation function. + /// + [Input("transformationFunction")] + public Input? TransformationFunction { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs.cs new file mode 100644 index 00000000000..7c04b8f1467 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Currently only `POST_CHUNKING` is supported. + /// + [Input("stepToApply", required: true)] + public Input StepToApply { get; set; } = null!; + + /// + /// The configuration of transformation function. + /// + [Input("transformationFunction")] + public Input? TransformationFunction { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.cs new file mode 100644 index 00000000000..5d440d677fc --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs : global::Pulumi.ResourceArgs + { + /// + /// The lambda configuration for custom transformation. + /// + [Input("transformationLambdaConfiguration")] + public Input? TransformationLambdaConfiguration { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs.cs new file mode 100644 index 00000000000..c6d7fd08ede --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The lambda configuration for custom transformation. + /// + [Input("transformationLambdaConfiguration")] + public Input? TransformationLambdaConfiguration { get; set; } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.cs new file mode 100644 index 00000000000..6c4f7ba033e --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the lambda to use for custom transformation. + /// + [Input("lambdaArn", required: true)] + public Input LambdaArn { get; set; } = null!; + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs.cs new file mode 100644 index 00000000000..9e18be3d8d9 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs.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.Bedrock.Inputs +{ + + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the lambda to use for custom transformation. + /// + [Input("lambdaArn", required: true)] + public Input LambdaArn { get; set; } = null!; + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs() + { + } + public static new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs Empty => new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationGetArgs.cs index 0e5e6fff268..12f21e1c03c 100644 --- a/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationGetArgs.cs +++ b/sdk/dotnet/Bedrock/Inputs/AgentDataSourceVectorIngestionConfigurationGetArgs.cs @@ -18,6 +18,12 @@ public sealed class AgentDataSourceVectorIngestionConfigurationGetArgs : global: [Input("chunkingConfiguration")] public Input? ChunkingConfiguration { get; set; } + /// + /// Configuration for custom transformation of data source documents. + /// + [Input("customTransformationConfiguration")] + public Input? CustomTransformationConfiguration { get; set; } + /// /// Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. /// diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsArgs.cs new file mode 100644 index 00000000000..666cb64e179 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsArgs.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.Bedrock.Inputs +{ + + public sealed class GuardrailVersionTimeoutsArgs : 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; } + + public GuardrailVersionTimeoutsArgs() + { + } + public static new GuardrailVersionTimeoutsArgs Empty => new GuardrailVersionTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsGetArgs.cs new file mode 100644 index 00000000000..2996f375379 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailVersionTimeoutsGetArgs.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.Bedrock.Inputs +{ + + public sealed class GuardrailVersionTimeoutsGetArgs : 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; } + + public GuardrailVersionTimeoutsGetArgs() + { + } + public static new GuardrailVersionTimeoutsGetArgs Empty => new GuardrailVersionTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupTimeouts.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupTimeouts.cs new file mode 100644 index 00000000000..b78cdaa395f --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentActionGroupTimeouts.cs @@ -0,0 +1,35 @@ +// *** 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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentActionGroupTimeouts + { + /// + /// 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). + /// + public readonly string? Update; + + [OutputConstructor] + private AgentAgentActionGroupTimeouts( + string? create, + + string? update) + { + Create = create; + Update = update; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfiguration.cs index 78b5b44802c..03580bb1edb 100644 --- a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfiguration.cs +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfiguration.cs @@ -18,6 +18,10 @@ public sealed class AgentDataSourceVectorIngestionConfiguration /// public readonly Outputs.AgentDataSourceVectorIngestionConfigurationChunkingConfiguration? ChunkingConfiguration; /// + /// Configuration for custom transformation of data source documents. + /// + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration? CustomTransformationConfiguration; + /// /// Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. /// public readonly Outputs.AgentDataSourceVectorIngestionConfigurationParsingConfiguration? ParsingConfiguration; @@ -26,9 +30,12 @@ public sealed class AgentDataSourceVectorIngestionConfiguration private AgentDataSourceVectorIngestionConfiguration( Outputs.AgentDataSourceVectorIngestionConfigurationChunkingConfiguration? chunkingConfiguration, + Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration? customTransformationConfiguration, + Outputs.AgentDataSourceVectorIngestionConfigurationParsingConfiguration? parsingConfiguration) { ChunkingConfiguration = chunkingConfiguration; + CustomTransformationConfiguration = customTransformationConfiguration; ParsingConfiguration = parsingConfiguration; } } diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.cs new file mode 100644 index 00000000000..8283304e9bb --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration + { + /// + /// The intermediate storage for custom transformation. + /// + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage? IntermediateStorage; + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation? Transformation; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration( + Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage? intermediateStorage, + + Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation? transformation) + { + IntermediateStorage = intermediateStorage; + Transformation = transformation; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.cs new file mode 100644 index 00000000000..c1b59e75cec --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage + { + /// + /// Configuration block for intermedia S3 storage. + /// + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location? S3Location; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage(Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location? s3Location) + { + S3Location = s3Location; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.cs new file mode 100644 index 00000000000..9755d849464 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location + { + /// + /// S3 URI for intermediate storage. + /// + public readonly string Uri; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location(string uri) + { + Uri = uri; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.cs new file mode 100644 index 00000000000..0b60e0aec3d --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.cs @@ -0,0 +1,35 @@ +// *** 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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation + { + /// + /// Currently only `POST_CHUNKING` is supported. + /// + public readonly string StepToApply; + /// + /// The configuration of transformation function. + /// + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction? TransformationFunction; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation( + string stepToApply, + + Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction? transformationFunction) + { + StepToApply = stepToApply; + TransformationFunction = transformationFunction; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.cs new file mode 100644 index 00000000000..c1567aa8964 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction + { + /// + /// The lambda configuration for custom transformation. + /// + public readonly Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration? TransformationLambdaConfiguration; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction(Outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration? transformationLambdaConfiguration) + { + TransformationLambdaConfiguration = transformationLambdaConfiguration; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.cs new file mode 100644 index 00000000000..28fea45497e --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration + { + /// + /// The ARN of the lambda to use for custom transformation. + /// + public readonly string LambdaArn; + + [OutputConstructor] + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration(string lambdaArn) + { + LambdaArn = lambdaArn; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailVersionTimeouts.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailVersionTimeouts.cs new file mode 100644 index 00000000000..2d077caa84e --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailVersionTimeouts.cs @@ -0,0 +1,35 @@ +// *** 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.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailVersionTimeouts + { + /// + /// 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; + + [OutputConstructor] + private GuardrailVersionTimeouts( + string? create, + + string? delete) + { + Create = create; + Delete = delete; + } + } +} diff --git a/sdk/dotnet/DataZone/FormType.cs b/sdk/dotnet/DataZone/FormType.cs index af37ebabde2..f84ea947f44 100644 --- a/sdk/dotnet/DataZone/FormType.cs +++ b/sdk/dotnet/DataZone/FormType.cs @@ -27,7 +27,7 @@ namespace Pulumi.Aws.DataZone /// { /// var domainExecutionRole = new Aws.Iam.Role("domain_execution_role", new() /// { - /// Name = "example name", + /// Name = "example-role", /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> /// { /// ["Version"] = "2012-10-17", @@ -65,7 +65,7 @@ namespace Pulumi.Aws.DataZone /// { /// new Aws.Iam.Inputs.RoleInlinePolicyArgs /// { - /// Name = "example name", + /// Name = "example-policy", /// Policy = JsonSerializer.Serialize(new Dictionary<string, object?> /// { /// ["Version"] = "2012-10-17", @@ -91,13 +91,13 @@ namespace Pulumi.Aws.DataZone /// /// var test = new Aws.DataZone.Domain("test", new() /// { - /// Name = "example name", + /// Name = "example", /// DomainExecutionRole = domainExecutionRole.Arn, /// }); /// /// var testSecurityGroup = new Aws.Ec2.SecurityGroup("test", new() /// { - /// Name = "example name", + /// Name = "example", /// }); /// /// var testProject = new Aws.DataZone.Project("test", new() diff --git a/sdk/dotnet/Ebs/GetSnapshot.cs b/sdk/dotnet/Ebs/GetSnapshot.cs index 7f731d9c62d..f6599775f19 100644 --- a/sdk/dotnet/Ebs/GetSnapshot.cs +++ b/sdk/dotnet/Ebs/GetSnapshot.cs @@ -309,6 +309,10 @@ public sealed class GetSnapshotResult public readonly string SnapshotId; public readonly ImmutableArray SnapshotIds; /// + /// Time stamp when the snapshot was initiated. + /// + public readonly string StartTime; + /// /// Snapshot state. /// public readonly string State; @@ -361,6 +365,8 @@ private GetSnapshotResult( ImmutableArray snapshotIds, + string startTime, + string state, string storageTier, @@ -386,6 +392,7 @@ private GetSnapshotResult( RestorableByUserIds = restorableByUserIds; SnapshotId = snapshotId; SnapshotIds = snapshotIds; + StartTime = startTime; State = state; StorageTier = storageTier; Tags = tags; diff --git a/sdk/dotnet/Ec2TransitGateway/DefaultRouteTableAssociation.cs b/sdk/dotnet/Ec2TransitGateway/DefaultRouteTableAssociation.cs new file mode 100644 index 00000000000..473a84b5854 --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/DefaultRouteTableAssociation.cs @@ -0,0 +1,149 @@ +// *** 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.Ec2TransitGateway +{ + /// + /// Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Ec2TransitGateway.DefaultRouteTableAssociation("example", new() + /// { + /// TransitGatewayId = exampleAwsEc2TransitGateway.Id, + /// TransitGatewayRouteTableId = exampleAwsEc2TransitGatewayRouteTable.Id, + /// }); + /// + /// }); + /// ``` + /// + [AwsResourceType("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation")] + public partial class DefaultRouteTableAssociation : global::Pulumi.CustomResource + { + [Output("originalDefaultRouteTableId")] + public Output OriginalDefaultRouteTableId { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Output("transitGatewayId")] + public Output TransitGatewayId { get; private set; } = null!; + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Output("transitGatewayRouteTableId")] + public Output TransitGatewayRouteTableId { get; private set; } = null!; + + + /// + /// Create a DefaultRouteTableAssociation 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 DefaultRouteTableAssociation(string name, DefaultRouteTableAssociationArgs args, CustomResourceOptions? options = null) + : base("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", name, args ?? new DefaultRouteTableAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private DefaultRouteTableAssociation(string name, Input id, DefaultRouteTableAssociationState? state = null, CustomResourceOptions? options = null) + : base("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", 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 DefaultRouteTableAssociation 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 DefaultRouteTableAssociation Get(string name, Input id, DefaultRouteTableAssociationState? state = null, CustomResourceOptions? options = null) + { + return new DefaultRouteTableAssociation(name, id, state, options); + } + } + + public sealed class DefaultRouteTableAssociationArgs : global::Pulumi.ResourceArgs + { + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Input("transitGatewayId", required: true)] + public Input TransitGatewayId { get; set; } = null!; + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Input("transitGatewayRouteTableId", required: true)] + public Input TransitGatewayRouteTableId { get; set; } = null!; + + public DefaultRouteTableAssociationArgs() + { + } + public static new DefaultRouteTableAssociationArgs Empty => new DefaultRouteTableAssociationArgs(); + } + + public sealed class DefaultRouteTableAssociationState : global::Pulumi.ResourceArgs + { + [Input("originalDefaultRouteTableId")] + public Input? OriginalDefaultRouteTableId { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Input("transitGatewayId")] + public Input? TransitGatewayId { get; set; } + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Input("transitGatewayRouteTableId")] + public Input? TransitGatewayRouteTableId { get; set; } + + public DefaultRouteTableAssociationState() + { + } + public static new DefaultRouteTableAssociationState Empty => new DefaultRouteTableAssociationState(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/DefaultRouteTablePropagation.cs b/sdk/dotnet/Ec2TransitGateway/DefaultRouteTablePropagation.cs new file mode 100644 index 00000000000..6baa207797b --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/DefaultRouteTablePropagation.cs @@ -0,0 +1,149 @@ +// *** 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.Ec2TransitGateway +{ + /// + /// Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Ec2TransitGateway.DefaultRouteTablePropagation("example", new() + /// { + /// TransitGatewayId = exampleAwsEc2TransitGateway.Id, + /// TransitGatewayRouteTableId = exampleAwsEc2TransitGatewayRouteTable.Id, + /// }); + /// + /// }); + /// ``` + /// + [AwsResourceType("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation")] + public partial class DefaultRouteTablePropagation : global::Pulumi.CustomResource + { + [Output("originalDefaultRouteTableId")] + public Output OriginalDefaultRouteTableId { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Output("transitGatewayId")] + public Output TransitGatewayId { get; private set; } = null!; + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Output("transitGatewayRouteTableId")] + public Output TransitGatewayRouteTableId { get; private set; } = null!; + + + /// + /// Create a DefaultRouteTablePropagation 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 DefaultRouteTablePropagation(string name, DefaultRouteTablePropagationArgs args, CustomResourceOptions? options = null) + : base("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", name, args ?? new DefaultRouteTablePropagationArgs(), MakeResourceOptions(options, "")) + { + } + + private DefaultRouteTablePropagation(string name, Input id, DefaultRouteTablePropagationState? state = null, CustomResourceOptions? options = null) + : base("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", 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 DefaultRouteTablePropagation 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 DefaultRouteTablePropagation Get(string name, Input id, DefaultRouteTablePropagationState? state = null, CustomResourceOptions? options = null) + { + return new DefaultRouteTablePropagation(name, id, state, options); + } + } + + public sealed class DefaultRouteTablePropagationArgs : global::Pulumi.ResourceArgs + { + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Input("transitGatewayId", required: true)] + public Input TransitGatewayId { get; set; } = null!; + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Input("transitGatewayRouteTableId", required: true)] + public Input TransitGatewayRouteTableId { get; set; } = null!; + + public DefaultRouteTablePropagationArgs() + { + } + public static new DefaultRouteTablePropagationArgs Empty => new DefaultRouteTablePropagationArgs(); + } + + public sealed class DefaultRouteTablePropagationState : global::Pulumi.ResourceArgs + { + [Input("originalDefaultRouteTableId")] + public Input? OriginalDefaultRouteTableId { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// ID of the Transit Gateway to change the default association route table on. + /// + [Input("transitGatewayId")] + public Input? TransitGatewayId { get; set; } + + /// + /// ID of the Transit Gateway Route Table to be made the default association route table. + /// + [Input("transitGatewayRouteTableId")] + public Input? TransitGatewayRouteTableId { get; set; } + + public DefaultRouteTablePropagationState() + { + } + public static new DefaultRouteTablePropagationState Empty => new DefaultRouteTablePropagationState(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsArgs.cs b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsArgs.cs new file mode 100644 index 00000000000..ad8db617ffe --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsArgs.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.Ec2TransitGateway.Inputs +{ + + public sealed class DefaultRouteTableAssociationTimeoutsArgs : 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 DefaultRouteTableAssociationTimeoutsArgs() + { + } + public static new DefaultRouteTableAssociationTimeoutsArgs Empty => new DefaultRouteTableAssociationTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsGetArgs.cs b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsGetArgs.cs new file mode 100644 index 00000000000..99975bdcb77 --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTableAssociationTimeoutsGetArgs.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.Ec2TransitGateway.Inputs +{ + + public sealed class DefaultRouteTableAssociationTimeoutsGetArgs : 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 DefaultRouteTableAssociationTimeoutsGetArgs() + { + } + public static new DefaultRouteTableAssociationTimeoutsGetArgs Empty => new DefaultRouteTableAssociationTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsArgs.cs b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsArgs.cs new file mode 100644 index 00000000000..1a7b42bf9fa --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsArgs.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.Ec2TransitGateway.Inputs +{ + + public sealed class DefaultRouteTablePropagationTimeoutsArgs : 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 DefaultRouteTablePropagationTimeoutsArgs() + { + } + public static new DefaultRouteTablePropagationTimeoutsArgs Empty => new DefaultRouteTablePropagationTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsGetArgs.cs b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsGetArgs.cs new file mode 100644 index 00000000000..2f3698534ef --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Inputs/DefaultRouteTablePropagationTimeoutsGetArgs.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.Ec2TransitGateway.Inputs +{ + + public sealed class DefaultRouteTablePropagationTimeoutsGetArgs : 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 DefaultRouteTablePropagationTimeoutsGetArgs() + { + } + public static new DefaultRouteTablePropagationTimeoutsGetArgs Empty => new DefaultRouteTablePropagationTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTableAssociationTimeouts.cs b/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTableAssociationTimeouts.cs new file mode 100644 index 00000000000..b126043165b --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTableAssociationTimeouts.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.Ec2TransitGateway.Outputs +{ + + [OutputType] + public sealed class DefaultRouteTableAssociationTimeouts + { + /// + /// 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 DefaultRouteTableAssociationTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTablePropagationTimeouts.cs b/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTablePropagationTimeouts.cs new file mode 100644 index 00000000000..9edf1fc9524 --- /dev/null +++ b/sdk/dotnet/Ec2TransitGateway/Outputs/DefaultRouteTablePropagationTimeouts.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.Ec2TransitGateway.Outputs +{ + + [OutputType] + public sealed class DefaultRouteTablePropagationTimeouts + { + /// + /// 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 DefaultRouteTablePropagationTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/Ec2TransitGateway/VpcAttachment.cs b/sdk/dotnet/Ec2TransitGateway/VpcAttachment.cs index 03bada7e5fa..e98cf8c581c 100644 --- a/sdk/dotnet/Ec2TransitGateway/VpcAttachment.cs +++ b/sdk/dotnet/Ec2TransitGateway/VpcAttachment.cs @@ -65,10 +65,10 @@ public partial class VpcAttachment : global::Pulumi.CustomResource public Output Ipv6Support { get; private set; } = null!; /// - /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. /// [Output("securityGroupReferencingSupport")] - public Output SecurityGroupReferencingSupport { get; private set; } = null!; + public Output SecurityGroupReferencingSupport { get; private set; } = null!; /// /// Identifiers of EC2 Subnets. @@ -183,7 +183,7 @@ public sealed class VpcAttachmentArgs : global::Pulumi.ResourceArgs public Input? Ipv6Support { get; set; } /// - /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. /// [Input("securityGroupReferencingSupport")] public Input? SecurityGroupReferencingSupport { get; set; } @@ -263,7 +263,7 @@ public sealed class VpcAttachmentState : global::Pulumi.ResourceArgs public Input? Ipv6Support { get; set; } /// - /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + /// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. /// [Input("securityGroupReferencingSupport")] public Input? SecurityGroupReferencingSupport { get; set; } diff --git a/sdk/dotnet/ElastiCache/ReservedCacheNode.cs b/sdk/dotnet/ElastiCache/ReservedCacheNode.cs index 27ae3904f4b..88f33ff9001 100644 --- a/sdk/dotnet/ElastiCache/ReservedCacheNode.cs +++ b/sdk/dotnet/ElastiCache/ReservedCacheNode.cs @@ -33,6 +33,10 @@ public partial class ReservedCacheNode : global::Pulumi.CustomResource [Output("arn")] public Output Arn { get; private set; } = null!; + /// + /// Number of cache node instances to reserve. + /// Default value is `1`. + /// [Output("cacheNodeCount")] public Output CacheNodeCount { get; private set; } = null!; @@ -160,6 +164,10 @@ public static ReservedCacheNode Get(string name, Input id, ReservedCache public sealed class ReservedCacheNodeArgs : global::Pulumi.ResourceArgs { + /// + /// Number of cache node instances to reserve. + /// Default value is `1`. + /// [Input("cacheNodeCount")] public Input? CacheNodeCount { get; set; } @@ -201,6 +209,10 @@ public sealed class ReservedCacheNodeState : global::Pulumi.ResourceArgs [Input("arn")] public Input? Arn { get; set; } + /// + /// Number of cache node instances to reserve. + /// Default value is `1`. + /// [Input("cacheNodeCount")] public Input? CacheNodeCount { get; set; } diff --git a/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationArgs.cs b/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationArgs.cs index 4b8b09bbef6..2f91157ff54 100644 --- a/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationArgs.cs +++ b/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.GlobalAccelerator.Inputs public sealed class EndpointGroupEndpointConfigurationArgs : global::Pulumi.ResourceArgs { + /// + /// An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + /// + [Input("attachmentArn")] + public Input? AttachmentArn { get; set; } + /// /// Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. /// **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. diff --git a/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationGetArgs.cs b/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationGetArgs.cs index 3b7c408765d..2cf7daa851d 100644 --- a/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationGetArgs.cs +++ b/sdk/dotnet/GlobalAccelerator/Inputs/EndpointGroupEndpointConfigurationGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.GlobalAccelerator.Inputs public sealed class EndpointGroupEndpointConfigurationGetArgs : global::Pulumi.ResourceArgs { + /// + /// An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + /// + [Input("attachmentArn")] + public Input? AttachmentArn { get; set; } + /// /// Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. /// **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. diff --git a/sdk/dotnet/GlobalAccelerator/Outputs/EndpointGroupEndpointConfiguration.cs b/sdk/dotnet/GlobalAccelerator/Outputs/EndpointGroupEndpointConfiguration.cs index 0239b3f078d..2b8d0776980 100644 --- a/sdk/dotnet/GlobalAccelerator/Outputs/EndpointGroupEndpointConfiguration.cs +++ b/sdk/dotnet/GlobalAccelerator/Outputs/EndpointGroupEndpointConfiguration.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.GlobalAccelerator.Outputs [OutputType] public sealed class EndpointGroupEndpointConfiguration { + /// + /// An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + /// + public readonly string? AttachmentArn; /// /// Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. /// **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -29,12 +33,15 @@ public sealed class EndpointGroupEndpointConfiguration [OutputConstructor] private EndpointGroupEndpointConfiguration( + string? attachmentArn, + bool? clientIpPreservationEnabled, string? endpointId, int? weight) { + AttachmentArn = attachmentArn; ClientIpPreservationEnabled = clientIpPreservationEnabled; EndpointId = endpointId; Weight = weight; diff --git a/sdk/dotnet/Iam/GroupPoliciesExclusive.cs b/sdk/dotnet/Iam/GroupPoliciesExclusive.cs new file mode 100644 index 00000000000..501a9474fdf --- /dev/null +++ b/sdk/dotnet/Iam/GroupPoliciesExclusive.cs @@ -0,0 +1,131 @@ +// *** 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.Iam +{ + /// + /// ## Import + /// + /// Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: + /// + /// ```sh + /// $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup + /// ``` + /// + [AwsResourceType("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive")] + public partial class GroupPoliciesExclusive : global::Pulumi.CustomResource + { + /// + /// IAM group name. + /// + [Output("groupName")] + public Output GroupName { get; private set; } = null!; + + /// + /// A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + /// + [Output("policyNames")] + public Output> PolicyNames { get; private set; } = null!; + + + /// + /// Create a GroupPoliciesExclusive 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 GroupPoliciesExclusive(string name, GroupPoliciesExclusiveArgs args, CustomResourceOptions? options = null) + : base("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", name, args ?? new GroupPoliciesExclusiveArgs(), MakeResourceOptions(options, "")) + { + } + + private GroupPoliciesExclusive(string name, Input id, GroupPoliciesExclusiveState? state = null, CustomResourceOptions? options = null) + : base("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", 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 GroupPoliciesExclusive 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 GroupPoliciesExclusive Get(string name, Input id, GroupPoliciesExclusiveState? state = null, CustomResourceOptions? options = null) + { + return new GroupPoliciesExclusive(name, id, state, options); + } + } + + public sealed class GroupPoliciesExclusiveArgs : global::Pulumi.ResourceArgs + { + /// + /// IAM group name. + /// + [Input("groupName", required: true)] + public Input GroupName { get; set; } = null!; + + [Input("policyNames", required: true)] + private InputList? _policyNames; + + /// + /// A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + /// + public InputList PolicyNames + { + get => _policyNames ?? (_policyNames = new InputList()); + set => _policyNames = value; + } + + public GroupPoliciesExclusiveArgs() + { + } + public static new GroupPoliciesExclusiveArgs Empty => new GroupPoliciesExclusiveArgs(); + } + + public sealed class GroupPoliciesExclusiveState : global::Pulumi.ResourceArgs + { + /// + /// IAM group name. + /// + [Input("groupName")] + public Input? GroupName { get; set; } + + [Input("policyNames")] + private InputList? _policyNames; + + /// + /// A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + /// + public InputList PolicyNames + { + get => _policyNames ?? (_policyNames = new InputList()); + set => _policyNames = value; + } + + public GroupPoliciesExclusiveState() + { + } + public static new GroupPoliciesExclusiveState Empty => new GroupPoliciesExclusiveState(); + } +} diff --git a/sdk/dotnet/Iam/UserPoliciesExclusive.cs b/sdk/dotnet/Iam/UserPoliciesExclusive.cs new file mode 100644 index 00000000000..586de5208cd --- /dev/null +++ b/sdk/dotnet/Iam/UserPoliciesExclusive.cs @@ -0,0 +1,131 @@ +// *** 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.Iam +{ + /// + /// ## Import + /// + /// Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: + /// + /// ```sh + /// $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser + /// ``` + /// + [AwsResourceType("aws:iam/userPoliciesExclusive:UserPoliciesExclusive")] + public partial class UserPoliciesExclusive : global::Pulumi.CustomResource + { + /// + /// A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + /// + [Output("policyNames")] + public Output> PolicyNames { get; private set; } = null!; + + /// + /// IAM user name. + /// + [Output("userName")] + public Output UserName { get; private set; } = null!; + + + /// + /// Create a UserPoliciesExclusive 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 UserPoliciesExclusive(string name, UserPoliciesExclusiveArgs args, CustomResourceOptions? options = null) + : base("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", name, args ?? new UserPoliciesExclusiveArgs(), MakeResourceOptions(options, "")) + { + } + + private UserPoliciesExclusive(string name, Input id, UserPoliciesExclusiveState? state = null, CustomResourceOptions? options = null) + : base("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", 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 UserPoliciesExclusive 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 UserPoliciesExclusive Get(string name, Input id, UserPoliciesExclusiveState? state = null, CustomResourceOptions? options = null) + { + return new UserPoliciesExclusive(name, id, state, options); + } + } + + public sealed class UserPoliciesExclusiveArgs : global::Pulumi.ResourceArgs + { + [Input("policyNames", required: true)] + private InputList? _policyNames; + + /// + /// A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + /// + public InputList PolicyNames + { + get => _policyNames ?? (_policyNames = new InputList()); + set => _policyNames = value; + } + + /// + /// IAM user name. + /// + [Input("userName", required: true)] + public Input UserName { get; set; } = null!; + + public UserPoliciesExclusiveArgs() + { + } + public static new UserPoliciesExclusiveArgs Empty => new UserPoliciesExclusiveArgs(); + } + + public sealed class UserPoliciesExclusiveState : global::Pulumi.ResourceArgs + { + [Input("policyNames")] + private InputList? _policyNames; + + /// + /// A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + /// + public InputList PolicyNames + { + get => _policyNames ?? (_policyNames = new InputList()); + set => _policyNames = value; + } + + /// + /// IAM user name. + /// + [Input("userName")] + public Input? UserName { get; set; } + + public UserPoliciesExclusiveState() + { + } + public static new UserPoliciesExclusiveState Empty => new UserPoliciesExclusiveState(); + } +} diff --git a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs index 41ed7b8bbdf..e6631941af1 100644 --- a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs +++ b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs @@ -101,7 +101,7 @@ namespace Pulumi.Aws.Kinesis /// Name = "firehose_lambda_processor", /// Role = lambdaIam.Arn, /// Handler = "exports.handler", - /// Runtime = Aws.Lambda.Runtime.NodeJS16dX, + /// Runtime = Aws.Lambda.Runtime.NodeJS20dX, /// }); /// /// var extendedS3Stream = new Aws.Kinesis.FirehoseDeliveryStream("extended_s3_stream", new() diff --git a/sdk/dotnet/Lambda/CodeSigningConfig.cs b/sdk/dotnet/Lambda/CodeSigningConfig.cs index c789de1457d..1b933b18179 100644 --- a/sdk/dotnet/Lambda/CodeSigningConfig.cs +++ b/sdk/dotnet/Lambda/CodeSigningConfig.cs @@ -39,6 +39,10 @@ namespace Pulumi.Aws.Lambda /// UntrustedArtifactOnDeployment = "Warn", /// }, /// Description = "My awesome code signing config.", + /// Tags = + /// { + /// { "Name", "dynamodb" }, + /// }, /// }); /// /// }); @@ -91,6 +95,18 @@ public partial class CodeSigningConfig : global::Pulumi.CustomResource [Output("policies")] public Output Policies { get; private set; } = null!; + /// + /// Map of tags to assign to the object. 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!; + /// /// Create a CodeSigningConfig resource with the given unique name, arguments, and options. @@ -155,6 +171,18 @@ public sealed class CodeSigningConfigArgs : global::Pulumi.ResourceArgs [Input("policies")] public Input? Policies { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// Map of tags to assign to the object. 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 CodeSigningConfigArgs() { } @@ -199,6 +227,31 @@ public sealed class CodeSigningConfigState : global::Pulumi.ResourceArgs [Input("policies")] public Input? Policies { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// Map of tags to assign to the object. 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; + } + public CodeSigningConfigState() { } diff --git a/sdk/dotnet/Lambda/EventSourceMapping.cs b/sdk/dotnet/Lambda/EventSourceMapping.cs index 44cb4fa3e93..c8c23feac0c 100644 --- a/sdk/dotnet/Lambda/EventSourceMapping.cs +++ b/sdk/dotnet/Lambda/EventSourceMapping.cs @@ -32,6 +32,10 @@ namespace Pulumi.Aws.Lambda /// EventSourceArn = exampleAwsDynamodbTable.StreamArn, /// FunctionName = exampleAwsLambdaFunction.Arn, /// StartingPosition = "LATEST", + /// Tags = + /// { + /// { "Name", "dynamodb" }, + /// }, /// }); /// /// }); @@ -282,6 +286,12 @@ public partial class EventSourceMapping : global::Pulumi.CustomResource [Output("amazonManagedKafkaEventSourceConfig")] public Output AmazonManagedKafkaEventSourceConfig { get; private set; } = null!; + /// + /// The event source mapping ARN. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + /// /// The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. /// @@ -325,7 +335,7 @@ public partial class EventSourceMapping : global::Pulumi.CustomResource public Output FilterCriteria { get; private set; } = null!; /// - /// The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + /// The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) /// [Output("functionArn")] public Output FunctionArn { get; private set; } = null!; @@ -438,6 +448,18 @@ public partial class EventSourceMapping : global::Pulumi.CustomResource [Output("stateTransitionReason")] public Output StateTransitionReason { get; private set; } = null!; + /// + /// Map of tags to assign to the object. 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!; + /// /// The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. /// @@ -646,6 +668,18 @@ public InputList SourceA [Input("startingPositionTimestamp")] public Input? StartingPositionTimestamp { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// Map of tags to assign to the object. 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("topics")] private InputList? _topics; @@ -678,6 +712,12 @@ public sealed class EventSourceMappingState : global::Pulumi.ResourceArgs [Input("amazonManagedKafkaEventSourceConfig")] public Input? AmazonManagedKafkaEventSourceConfig { get; set; } + /// + /// The event source mapping ARN. + /// + [Input("arn")] + public Input? Arn { get; set; } + /// /// The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. /// @@ -721,7 +761,7 @@ public sealed class EventSourceMappingState : global::Pulumi.ResourceArgs public Input? FilterCriteria { get; set; } /// - /// The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + /// The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) /// [Input("functionArn")] public Input? FunctionArn { get; set; } @@ -846,6 +886,31 @@ public InputList Sour [Input("stateTransitionReason")] public Input? StateTransitionReason { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// Map of tags to assign to the object. 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("topics")] private InputList? _topics; diff --git a/sdk/dotnet/Lambda/LayerVersion.cs b/sdk/dotnet/Lambda/LayerVersion.cs index d7fb46db240..1b1a25b4d86 100644 --- a/sdk/dotnet/Lambda/LayerVersion.cs +++ b/sdk/dotnet/Lambda/LayerVersion.cs @@ -32,7 +32,7 @@ namespace Pulumi.Aws.Lambda /// LayerName = "lambda_layer_name", /// CompatibleRuntimes = new[] /// { - /// "nodejs16.x", + /// "nodejs20.x", /// }, /// }); /// diff --git a/sdk/dotnet/Lambda/Permission.cs b/sdk/dotnet/Lambda/Permission.cs index 1d6bb692b35..ada9d6708eb 100644 --- a/sdk/dotnet/Lambda/Permission.cs +++ b/sdk/dotnet/Lambda/Permission.cs @@ -53,7 +53,7 @@ namespace Pulumi.Aws.Lambda /// Name = "lambda_function_name", /// Role = iamForLambda.Arn, /// Handler = "exports.handler", - /// Runtime = Aws.Lambda.Runtime.NodeJS16dX, + /// Runtime = Aws.Lambda.Runtime.NodeJS20dX, /// }); /// /// var testAlias = new Aws.Lambda.Alias("test_alias", new() @@ -121,7 +121,7 @@ namespace Pulumi.Aws.Lambda /// Name = "lambda_called_from_sns", /// Role = defaultRole.Arn, /// Handler = "exports.handler", - /// Runtime = Aws.Lambda.Runtime.Python3d7, + /// Runtime = Aws.Lambda.Runtime.Python3d12, /// }); /// /// var withSns = new Aws.Lambda.Permission("with_sns", new() @@ -224,7 +224,7 @@ namespace Pulumi.Aws.Lambda /// Name = "lambda_called_from_cloudwatch_logs", /// Handler = "exports.handler", /// Role = defaultRole.Arn, - /// Runtime = Aws.Lambda.Runtime.Python3d7, + /// Runtime = Aws.Lambda.Runtime.Python3d12, /// }); /// /// var logging = new Aws.Lambda.Permission("logging", new() diff --git a/sdk/dotnet/S3/AnalyticsConfiguration.cs b/sdk/dotnet/S3/AnalyticsConfiguration.cs index f20b48c4ddb..27a04dd1c6e 100644 --- a/sdk/dotnet/S3/AnalyticsConfiguration.cs +++ b/sdk/dotnet/S3/AnalyticsConfiguration.cs @@ -33,7 +33,7 @@ namespace Pulumi.Aws.S3 /// /// var analytics = new Aws.S3.BucketV2("analytics", new() /// { - /// Bucket = "analytics destination", + /// Bucket = "analytics-destination", /// }); /// /// var example_entire_bucket = new Aws.S3.AnalyticsConfiguration("example-entire-bucket", new() diff --git a/sdk/dotnet/S3/BucketLifecycleConfigurationV2.cs b/sdk/dotnet/S3/BucketLifecycleConfigurationV2.cs index a5f70b47944..8427f448489 100644 --- a/sdk/dotnet/S3/BucketLifecycleConfigurationV2.cs +++ b/sdk/dotnet/S3/BucketLifecycleConfigurationV2.cs @@ -278,7 +278,7 @@ namespace Pulumi.Aws.S3 /// /// ### Specifying a filter based on object size /// - /// Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). + /// Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`object_size_greater_than`) or a maximum size (`object_size_less_than`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: /// /// ```csharp /// using System.Collections.Generic; @@ -295,12 +295,20 @@ namespace Pulumi.Aws.S3 /// { /// new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleArgs /// { - /// Id = "rule-1", + /// Id = "Allow small object transitions", /// Filter = new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleFilterArgs /// { - /// ObjectSizeGreaterThan = "500", + /// ObjectSizeGreaterThan = "1", /// }, /// Status = "Enabled", + /// Transitions = new[] + /// { + /// new Aws.S3.Inputs.BucketLifecycleConfigurationV2RuleTransitionArgs + /// { + /// Days = 365, + /// StorageClass = "GLACIER_IR", + /// }, + /// }, /// }, /// }, /// }); @@ -522,6 +530,12 @@ public partial class BucketLifecycleConfigurationV2 : global::Pulumi.CustomResou [Output("rules")] public Output> Rules { get; private set; } = null!; + /// + /// The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + /// + [Output("transitionDefaultMinimumObjectSize")] + public Output TransitionDefaultMinimumObjectSize { get; private set; } = null!; + /// /// Create a BucketLifecycleConfigurationV2 resource with the given unique name, arguments, and options. @@ -592,6 +606,12 @@ public InputList Rules set => _rules = value; } + /// + /// The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + /// + [Input("transitionDefaultMinimumObjectSize")] + public Input? TransitionDefaultMinimumObjectSize { get; set; } + public BucketLifecycleConfigurationV2Args() { } @@ -624,6 +644,12 @@ public InputList Rules set => _rules = value; } + /// + /// The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + /// + [Input("transitionDefaultMinimumObjectSize")] + public Input? TransitionDefaultMinimumObjectSize { get; set; } + public BucketLifecycleConfigurationV2State() { } diff --git a/sdk/dotnet/S3/BucketNotification.cs b/sdk/dotnet/S3/BucketNotification.cs index f8c07fcbf87..17d4020896e 100644 --- a/sdk/dotnet/S3/BucketNotification.cs +++ b/sdk/dotnet/S3/BucketNotification.cs @@ -232,7 +232,7 @@ namespace Pulumi.Aws.S3 /// Name = "example_lambda_name", /// Role = iamForLambda.Arn, /// Handler = "exports.example", - /// Runtime = Aws.Lambda.Runtime.Go1dx, + /// Runtime = Aws.Lambda.Runtime.NodeJS20dX, /// }); /// /// var bucket = new Aws.S3.BucketV2("bucket", new() @@ -324,7 +324,7 @@ namespace Pulumi.Aws.S3 /// Name = "example_lambda_name1", /// Role = iamForLambda.Arn, /// Handler = "exports.example", - /// Runtime = Aws.Lambda.Runtime.Go1dx, + /// Runtime = Aws.Lambda.Runtime.NodeJS20dX, /// }); /// /// var bucket = new Aws.S3.BucketV2("bucket", new() diff --git a/sdk/dotnet/S3/BucketObjectLockConfigurationV2.cs b/sdk/dotnet/S3/BucketObjectLockConfigurationV2.cs index 8c749ea49a3..265030b9aa5 100644 --- a/sdk/dotnet/S3/BucketObjectLockConfigurationV2.cs +++ b/sdk/dotnet/S3/BucketObjectLockConfigurationV2.cs @@ -60,21 +60,14 @@ namespace Pulumi.Aws.S3 /// /// ## Import /// - /// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + /// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: /// - /// import { - /// to = aws_s3_bucket_object_lock_configuration.example - /// id = "bucket-name,123456789012" - /// } - /// - /// __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: - /// - /// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: + /// __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: /// /// ```sh /// $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name /// ``` - /// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + /// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: /// /// ```sh /// $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 diff --git a/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.cs b/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.cs index 046f5f3df95..f8e8e85adb4 100644 --- a/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.cs +++ b/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.S3.Inputs public sealed class BucketLifecycleConfigurationV2RuleFilterAndArgs : global::Pulumi.ResourceArgs { /// - /// Minimum object size to which the rule applies. Value must be at least `0` if specified. + /// Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. /// [Input("objectSizeGreaterThan")] public Input? ObjectSizeGreaterThan { get; set; } diff --git a/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndGetArgs.cs b/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndGetArgs.cs index b62f1a3395c..b0b4eff5f47 100644 --- a/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndGetArgs.cs +++ b/sdk/dotnet/S3/Inputs/BucketLifecycleConfigurationV2RuleFilterAndGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.S3.Inputs public sealed class BucketLifecycleConfigurationV2RuleFilterAndGetArgs : global::Pulumi.ResourceArgs { /// - /// Minimum object size to which the rule applies. Value must be at least `0` if specified. + /// Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. /// [Input("objectSizeGreaterThan")] public Input? ObjectSizeGreaterThan { get; set; } diff --git a/sdk/dotnet/S3/Outputs/BucketLifecycleConfigurationV2RuleFilterAnd.cs b/sdk/dotnet/S3/Outputs/BucketLifecycleConfigurationV2RuleFilterAnd.cs index c757ab122b3..f9d592ff2e0 100644 --- a/sdk/dotnet/S3/Outputs/BucketLifecycleConfigurationV2RuleFilterAnd.cs +++ b/sdk/dotnet/S3/Outputs/BucketLifecycleConfigurationV2RuleFilterAnd.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.S3.Outputs public sealed class BucketLifecycleConfigurationV2RuleFilterAnd { /// - /// Minimum object size to which the rule applies. Value must be at least `0` if specified. + /// Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. /// public readonly int? ObjectSizeGreaterThan; /// diff --git a/sdk/dotnet/SecurityHub/GetStandardsControlAssociations.cs b/sdk/dotnet/SecurityHub/GetStandardsControlAssociations.cs index 6aafdd32904..6ce9fc11413 100644 --- a/sdk/dotnet/SecurityHub/GetStandardsControlAssociations.cs +++ b/sdk/dotnet/SecurityHub/GetStandardsControlAssociations.cs @@ -77,19 +77,6 @@ public sealed class GetStandardsControlAssociationsArgs : global::Pulumi.InvokeA [Input("securityControlId", required: true)] public string SecurityControlId { get; set; } = null!; - [Input("standardsControlAssociations")] - private List? _standardsControlAssociations; - - /// - /// A list that provides the status and other details for each security control that applies to each enabled standard. - /// See `standards_control_associations` below. - /// - public List StandardsControlAssociations - { - get => _standardsControlAssociations ?? (_standardsControlAssociations = new List()); - set => _standardsControlAssociations = value; - } - public GetStandardsControlAssociationsArgs() { } @@ -104,19 +91,6 @@ public sealed class GetStandardsControlAssociationsInvokeArgs : global::Pulumi.I [Input("securityControlId", required: true)] public Input SecurityControlId { get; set; } = null!; - [Input("standardsControlAssociations")] - private InputList? _standardsControlAssociations; - - /// - /// A list that provides the status and other details for each security control that applies to each enabled standard. - /// See `standards_control_associations` below. - /// - public InputList StandardsControlAssociations - { - get => _standardsControlAssociations ?? (_standardsControlAssociations = new InputList()); - set => _standardsControlAssociations = value; - } - public GetStandardsControlAssociationsInvokeArgs() { } diff --git a/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociation.cs b/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociation.cs deleted file mode 100644 index 3cb75ad92a8..00000000000 --- a/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociation.cs +++ /dev/null @@ -1,80 +0,0 @@ -// *** 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.SecurityHub.Inputs -{ - - public sealed class GetStandardsControlAssociationsStandardsControlAssociationArgs : global::Pulumi.InvokeArgs - { - /// - /// Enablement status of a control in a specific standard. - /// - [Input("associationStatus", required: true)] - public string AssociationStatus { get; set; } = null!; - - [Input("relatedRequirements", required: true)] - private List? _relatedRequirements; - - /// - /// List of underlying requirements in the compliance framework related to the standard. - /// - public List RelatedRequirements - { - get => _relatedRequirements ?? (_relatedRequirements = new List()); - set => _relatedRequirements = value; - } - - /// - /// ARN of the security control. - /// - [Input("securityControlArn", required: true)] - public string SecurityControlArn { get; set; } = null!; - - /// - /// The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - /// - [Input("securityControlId", required: true)] - public string SecurityControlId { get; set; } = null!; - - /// - /// ARN of the standard. - /// - [Input("standardsArn", required: true)] - public string StandardsArn { get; set; } = null!; - - /// - /// Description of the standard. - /// - [Input("standardsControlDescription", required: true)] - public string StandardsControlDescription { get; set; } = null!; - - /// - /// Title of the standard. - /// - [Input("standardsControlTitle", required: true)] - public string StandardsControlTitle { get; set; } = null!; - - /// - /// Last time that a control's enablement status in a specified standard was updated. - /// - [Input("updatedAt", required: true)] - public string UpdatedAt { get; set; } = null!; - - /// - /// Reason for updating a control's enablement status in a specified standard. - /// - [Input("updatedReason", required: true)] - public string UpdatedReason { get; set; } = null!; - - public GetStandardsControlAssociationsStandardsControlAssociationArgs() - { - } - public static new GetStandardsControlAssociationsStandardsControlAssociationArgs Empty => new GetStandardsControlAssociationsStandardsControlAssociationArgs(); - } -} diff --git a/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.cs b/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.cs deleted file mode 100644 index 9a6d4fd6814..00000000000 --- a/sdk/dotnet/SecurityHub/Inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.cs +++ /dev/null @@ -1,80 +0,0 @@ -// *** 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.SecurityHub.Inputs -{ - - public sealed class GetStandardsControlAssociationsStandardsControlAssociationInputArgs : global::Pulumi.ResourceArgs - { - /// - /// Enablement status of a control in a specific standard. - /// - [Input("associationStatus", required: true)] - public Input AssociationStatus { get; set; } = null!; - - [Input("relatedRequirements", required: true)] - private InputList? _relatedRequirements; - - /// - /// List of underlying requirements in the compliance framework related to the standard. - /// - public InputList RelatedRequirements - { - get => _relatedRequirements ?? (_relatedRequirements = new InputList()); - set => _relatedRequirements = value; - } - - /// - /// ARN of the security control. - /// - [Input("securityControlArn", required: true)] - public Input SecurityControlArn { get; set; } = null!; - - /// - /// The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - /// - [Input("securityControlId", required: true)] - public Input SecurityControlId { get; set; } = null!; - - /// - /// ARN of the standard. - /// - [Input("standardsArn", required: true)] - public Input StandardsArn { get; set; } = null!; - - /// - /// Description of the standard. - /// - [Input("standardsControlDescription", required: true)] - public Input StandardsControlDescription { get; set; } = null!; - - /// - /// Title of the standard. - /// - [Input("standardsControlTitle", required: true)] - public Input StandardsControlTitle { get; set; } = null!; - - /// - /// Last time that a control's enablement status in a specified standard was updated. - /// - [Input("updatedAt", required: true)] - public Input UpdatedAt { get; set; } = null!; - - /// - /// Reason for updating a control's enablement status in a specified standard. - /// - [Input("updatedReason", required: true)] - public Input UpdatedReason { get; set; } = null!; - - public GetStandardsControlAssociationsStandardsControlAssociationInputArgs() - { - } - public static new GetStandardsControlAssociationsStandardsControlAssociationInputArgs Empty => new GetStandardsControlAssociationsStandardsControlAssociationInputArgs(); - } -} diff --git a/sdk/dotnet/SecurityHub/StandardsControlAssociation.cs b/sdk/dotnet/SecurityHub/StandardsControlAssociation.cs new file mode 100644 index 00000000000..173af78b7cc --- /dev/null +++ b/sdk/dotnet/SecurityHub/StandardsControlAssociation.cs @@ -0,0 +1,189 @@ +// *** 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.SecurityHub +{ + /// + /// ## Example Usage + /// + /// ### Basic usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.SecurityHub.Account("example"); + /// + /// var cisAwsFoundationsBenchmark = new Aws.SecurityHub.StandardsSubscription("cis_aws_foundations_benchmark", new() + /// { + /// StandardsArn = "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// example, + /// }, + /// }); + /// + /// var cisAwsFoundationsBenchmarkDisableIam1 = new Aws.Index.StandardsControlAssociation("cis_aws_foundations_benchmark_disable_iam_1", new() + /// { + /// StandardsArn = cisAwsFoundationsBenchmark.StandardsArn, + /// SecurityControlId = "IAM.1", + /// AssociationStatus = "DISABLED", + /// UpdatedReason = "Not needed", + /// }); + /// + /// }); + /// ``` + /// + [AwsResourceType("aws:securityhub/standardsControlAssociation:StandardsControlAssociation")] + public partial class StandardsControlAssociation : global::Pulumi.CustomResource + { + /// + /// The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + /// + [Output("associationStatus")] + public Output AssociationStatus { get; private set; } = null!; + + /// + /// The unique identifier for the security control whose enablement status you want to update. + /// + [Output("securityControlId")] + public Output SecurityControlId { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + /// + /// The following arguments are optional: + /// + [Output("standardsArn")] + public Output StandardsArn { get; private set; } = null!; + + /// + /// The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + /// + [Output("updatedReason")] + public Output UpdatedReason { get; private set; } = null!; + + + /// + /// Create a StandardsControlAssociation 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 StandardsControlAssociation(string name, StandardsControlAssociationArgs args, CustomResourceOptions? options = null) + : base("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", name, args ?? new StandardsControlAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private StandardsControlAssociation(string name, Input id, StandardsControlAssociationState? state = null, CustomResourceOptions? options = null) + : base("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", 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 StandardsControlAssociation 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 StandardsControlAssociation Get(string name, Input id, StandardsControlAssociationState? state = null, CustomResourceOptions? options = null) + { + return new StandardsControlAssociation(name, id, state, options); + } + } + + public sealed class StandardsControlAssociationArgs : global::Pulumi.ResourceArgs + { + /// + /// The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("associationStatus", required: true)] + public Input AssociationStatus { get; set; } = null!; + + /// + /// The unique identifier for the security control whose enablement status you want to update. + /// + [Input("securityControlId", required: true)] + public Input SecurityControlId { get; set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + /// + /// The following arguments are optional: + /// + [Input("standardsArn", required: true)] + public Input StandardsArn { get; set; } = null!; + + /// + /// The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + /// + [Input("updatedReason")] + public Input? UpdatedReason { get; set; } + + public StandardsControlAssociationArgs() + { + } + public static new StandardsControlAssociationArgs Empty => new StandardsControlAssociationArgs(); + } + + public sealed class StandardsControlAssociationState : global::Pulumi.ResourceArgs + { + /// + /// The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + /// + [Input("associationStatus")] + public Input? AssociationStatus { get; set; } + + /// + /// The unique identifier for the security control whose enablement status you want to update. + /// + [Input("securityControlId")] + public Input? SecurityControlId { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + /// + /// The following arguments are optional: + /// + [Input("standardsArn")] + public Input? StandardsArn { get; set; } + + /// + /// The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + /// + [Input("updatedReason")] + public Input? UpdatedReason { get; set; } + + public StandardsControlAssociationState() + { + } + public static new StandardsControlAssociationState Empty => new StandardsControlAssociationState(); + } +} diff --git a/sdk/dotnet/Shield/ApplicationLayerAutomaticResponse.cs b/sdk/dotnet/Shield/ApplicationLayerAutomaticResponse.cs index 6405c76f961..85e2d009eea 100644 --- a/sdk/dotnet/Shield/ApplicationLayerAutomaticResponse.cs +++ b/sdk/dotnet/Shield/ApplicationLayerAutomaticResponse.cs @@ -13,6 +13,39 @@ namespace Pulumi.Aws.Shield /// Resource for managing an AWS Shield Application Layer Automatic Response for automatic DDoS mitigation. /// /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Aws.GetRegion.Invoke(); + /// + /// var currentGetCallerIdentity = Aws.GetCallerIdentity.Invoke(); + /// + /// var currentGetPartition = Aws.GetPartition.Invoke(); + /// + /// var config = new Config(); + /// // The Cloudfront Distribution on which to enable the Application Layer Automatic Response. + /// var distributionId = config.Require("distributionId"); + /// var example = new Aws.Shield.ApplicationLayerAutomaticResponse("example", new() + /// { + /// ResourceArn = Output.Tuple(currentGetPartition, currentGetCallerIdentity).Apply(values => + /// { + /// var currentGetPartition = values.Item1; + /// var currentGetCallerIdentity = values.Item2; + /// return $"arn:{currentGetPartition.Apply(getPartitionResult => getPartitionResult.Partition)}:cloudfront:{currentGetCallerIdentity.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId)}:distribution/{distributionId}"; + /// }), + /// Action = "COUNT", + /// }); + /// + /// }); + /// ``` /// [AwsResourceType("aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse")] public partial class ApplicationLayerAutomaticResponse : global::Pulumi.CustomResource diff --git a/sdk/dotnet/Shield/DrtAccessRoleArnAssociation.cs b/sdk/dotnet/Shield/DrtAccessRoleArnAssociation.cs index c2394578ffb..cb17ed7a7b4 100644 --- a/sdk/dotnet/Shield/DrtAccessRoleArnAssociation.cs +++ b/sdk/dotnet/Shield/DrtAccessRoleArnAssociation.cs @@ -26,9 +26,9 @@ namespace Pulumi.Aws.Shield /// /// return await Deployment.RunAsync(() => /// { - /// var test = new Aws.Iam.Role("test", new() + /// var exampleRole = new Aws.Iam.Role("example", new() /// { - /// Name = awsShieldDrtAccessRoleArn, + /// Name = "example-role", /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> /// { /// ["Version"] = "2012-10-17", @@ -48,15 +48,15 @@ namespace Pulumi.Aws.Shield /// }), /// }); /// - /// var testRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("test", new() + /// var example = new Aws.Shield.DrtAccessRoleArnAssociation("example", new() /// { - /// Role = test.Name, - /// PolicyArn = "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", + /// RoleArn = exampleRole.Arn, /// }); /// - /// var testDrtAccessRoleArnAssociation = new Aws.Shield.DrtAccessRoleArnAssociation("test", new() + /// var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new() /// { - /// RoleArn = test.Arn, + /// Role = exampleRole.Name, + /// PolicyArn = "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", /// }); /// /// }); diff --git a/sdk/dotnet/Shield/ProactiveEngagement.cs b/sdk/dotnet/Shield/ProactiveEngagement.cs index 37cae33d36a..3e66b8e1ba2 100644 --- a/sdk/dotnet/Shield/ProactiveEngagement.cs +++ b/sdk/dotnet/Shield/ProactiveEngagement.cs @@ -26,9 +26,9 @@ namespace Pulumi.Aws.Shield /// /// return await Deployment.RunAsync(() => /// { - /// var example = new Aws.Iam.Role("example", new() + /// var exampleRole = new Aws.Iam.Role("example", new() /// { - /// Name = awsShieldDrtAccessRoleArn, + /// Name = "example-role", /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> /// { /// ["Version"] = "2012-10-17", @@ -48,25 +48,12 @@ namespace Pulumi.Aws.Shield /// }), /// }); /// - /// var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new() - /// { - /// Role = example.Name, - /// PolicyArn = "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", - /// }); - /// /// var exampleDrtAccessRoleArnAssociation = new Aws.Shield.DrtAccessRoleArnAssociation("example", new() /// { - /// RoleArn = example.Arn, - /// }); - /// - /// var test = new Aws.Shield.ProtectionGroup("test", new() - /// { - /// ProtectionGroupId = "example", - /// Aggregation = "MAX", - /// Pattern = "ALL", + /// RoleArn = exampleRole.Arn, /// }); /// - /// var testProactiveEngagement = new Aws.Shield.ProactiveEngagement("test", new() + /// var example = new Aws.Shield.ProactiveEngagement("example", new() /// { /// Enabled = true, /// EmergencyContacts = new[] @@ -74,13 +61,13 @@ namespace Pulumi.Aws.Shield /// new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs /// { /// ContactNotes = "Notes", - /// EmailAddress = "test@company.com", + /// EmailAddress = "contact1@example.com", /// PhoneNumber = "+12358132134", /// }, /// new Aws.Shield.Inputs.ProactiveEngagementEmergencyContactArgs /// { /// ContactNotes = "Notes 2", - /// EmailAddress = "test2@company.com", + /// EmailAddress = "contact2@example.com", /// PhoneNumber = "+12358132134", /// }, /// }, @@ -88,10 +75,23 @@ namespace Pulumi.Aws.Shield /// { /// DependsOn = /// { - /// testAwsShieldDrtAccessRoleArnAssociation, + /// exampleDrtAccessRoleArnAssociation, /// }, /// }); /// + /// var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new() + /// { + /// Role = exampleRole.Name, + /// PolicyArn = "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", + /// }); + /// + /// var exampleProtectionGroup = new Aws.Shield.ProtectionGroup("example", new() + /// { + /// ProtectionGroupId = "example", + /// Aggregation = "MAX", + /// Pattern = "ALL", + /// }); + /// /// }); /// ``` /// diff --git a/sdk/go/aws/apigateway/integration.go b/sdk/go/aws/apigateway/integration.go index 7f04a543a02..81b841e8696 100644 --- a/sdk/go/aws/apigateway/integration.go +++ b/sdk/go/aws/apigateway/integration.go @@ -165,7 +165,7 @@ import ( // Name: pulumi.String("mylambda"), // Role: role.Arn, // Handler: pulumi.String("lambda.lambda_handler"), -// Runtime: pulumi.String(lambda.RuntimePython3d7), +// Runtime: pulumi.String(lambda.RuntimePython3d12), // SourceCodeHash: pulumi.String(invokeFilebase64sha256.Result), // }) // if err != nil { diff --git a/sdk/go/aws/apigatewayv2/integration.go b/sdk/go/aws/apigatewayv2/integration.go index a3135dfe6c1..c1ba56b1442 100644 --- a/sdk/go/aws/apigatewayv2/integration.go +++ b/sdk/go/aws/apigatewayv2/integration.go @@ -65,7 +65,7 @@ import ( // Name: pulumi.String("Example"), // Role: pulumi.Any(exampleAwsIamRole.Arn), // Handler: pulumi.String("index.handler"), -// Runtime: pulumi.String(lambda.RuntimeNodeJS16dX), +// Runtime: pulumi.String(lambda.RuntimeNodeJS20dX), // }) // if err != nil { // return err diff --git a/sdk/go/aws/appflow/connectorProfile.go b/sdk/go/aws/appflow/connectorProfile.go index 777e2893fe6..6e6db6d9c68 100644 --- a/sdk/go/aws/appflow/connectorProfile.go +++ b/sdk/go/aws/appflow/connectorProfile.go @@ -72,7 +72,7 @@ import ( // return err // } // exampleBucketV2, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{ -// Bucket: pulumi.String("example_bucket"), +// Bucket: pulumi.String("example-bucket"), // }) // if err != nil { // return err diff --git a/sdk/go/aws/backup/init.go b/sdk/go/aws/backup/init.go index 1b2f646188c..af7767c1a06 100644 --- a/sdk/go/aws/backup/init.go +++ b/sdk/go/aws/backup/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Framework{} case "aws:backup/globalSettings:GlobalSettings": r = &GlobalSettings{} + case "aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault": + r = &LogicallyAirGappedVault{} case "aws:backup/plan:Plan": r = &Plan{} case "aws:backup/regionSettings:RegionSettings": @@ -64,6 +66,11 @@ func init() { "backup/globalSettings", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "backup/logicallyAirGappedVault", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "backup/plan", diff --git a/sdk/go/aws/backup/logicallyAirGappedVault.go b/sdk/go/aws/backup/logicallyAirGappedVault.go new file mode 100644 index 00000000000..bf087580176 --- /dev/null +++ b/sdk/go/aws/backup/logicallyAirGappedVault.go @@ -0,0 +1,344 @@ +// 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 backup + +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 Backup Logically Air Gapped Vault. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := backup.NewLogicallyAirGappedVault(ctx, "example", &backup.LogicallyAirGappedVaultArgs{ +// Name: pulumi.String("lag-example-vault"), +// MaxRetentionDays: pulumi.Int(7), +// MinRetentionDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: +// +// ```sh +// $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault +// ``` +type LogicallyAirGappedVault struct { + pulumi.CustomResourceState + + // The ARN of the Logically Air Gapped Backup Vault. + Arn pulumi.StringOutput `pulumi:"arn"` + // Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MaxRetentionDays pulumi.IntOutput `pulumi:"maxRetentionDays"` + // Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MinRetentionDays pulumi.IntOutput `pulumi:"minRetentionDays"` + // Name of the Logically Air Gapped Backup Vault to create. + Name pulumi.StringOutput `pulumi:"name"` + // Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewLogicallyAirGappedVault registers a new resource with the given unique name, arguments, and options. +func NewLogicallyAirGappedVault(ctx *pulumi.Context, + name string, args *LogicallyAirGappedVaultArgs, opts ...pulumi.ResourceOption) (*LogicallyAirGappedVault, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.MaxRetentionDays == nil { + return nil, errors.New("invalid value for required argument 'MaxRetentionDays'") + } + if args.MinRetentionDays == nil { + return nil, errors.New("invalid value for required argument 'MinRetentionDays'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogicallyAirGappedVault + err := ctx.RegisterResource("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogicallyAirGappedVault gets an existing LogicallyAirGappedVault 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 GetLogicallyAirGappedVault(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogicallyAirGappedVaultState, opts ...pulumi.ResourceOption) (*LogicallyAirGappedVault, error) { + var resource LogicallyAirGappedVault + err := ctx.ReadResource("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogicallyAirGappedVault resources. +type logicallyAirGappedVaultState struct { + // The ARN of the Logically Air Gapped Backup Vault. + Arn *string `pulumi:"arn"` + // Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MaxRetentionDays *int `pulumi:"maxRetentionDays"` + // Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MinRetentionDays *int `pulumi:"minRetentionDays"` + // Name of the Logically Air Gapped Backup Vault to create. + Name *string `pulumi:"name"` + // Metadata that you can assign to help organize the resources that you create. 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 *LogicallyAirGappedVaultTimeouts `pulumi:"timeouts"` +} + +type LogicallyAirGappedVaultState struct { + // The ARN of the Logically Air Gapped Backup Vault. + Arn pulumi.StringPtrInput + // Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MaxRetentionDays pulumi.IntPtrInput + // Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MinRetentionDays pulumi.IntPtrInput + // Name of the Logically Air Gapped Backup Vault to create. + Name pulumi.StringPtrInput + // Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultTimeoutsPtrInput +} + +func (LogicallyAirGappedVaultState) ElementType() reflect.Type { + return reflect.TypeOf((*logicallyAirGappedVaultState)(nil)).Elem() +} + +type logicallyAirGappedVaultArgs struct { + // Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MaxRetentionDays int `pulumi:"maxRetentionDays"` + // Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MinRetentionDays int `pulumi:"minRetentionDays"` + // Name of the Logically Air Gapped Backup Vault to create. + Name *string `pulumi:"name"` + // Metadata that you can assign to help organize the resources that you create. 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 *LogicallyAirGappedVaultTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a LogicallyAirGappedVault resource. +type LogicallyAirGappedVaultArgs struct { + // Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MaxRetentionDays pulumi.IntInput + // Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + MinRetentionDays pulumi.IntInput + // Name of the Logically Air Gapped Backup Vault to create. + Name pulumi.StringPtrInput + // Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultTimeoutsPtrInput +} + +func (LogicallyAirGappedVaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logicallyAirGappedVaultArgs)(nil)).Elem() +} + +type LogicallyAirGappedVaultInput interface { + pulumi.Input + + ToLogicallyAirGappedVaultOutput() LogicallyAirGappedVaultOutput + ToLogicallyAirGappedVaultOutputWithContext(ctx context.Context) LogicallyAirGappedVaultOutput +} + +func (*LogicallyAirGappedVault) ElementType() reflect.Type { + return reflect.TypeOf((**LogicallyAirGappedVault)(nil)).Elem() +} + +func (i *LogicallyAirGappedVault) ToLogicallyAirGappedVaultOutput() LogicallyAirGappedVaultOutput { + return i.ToLogicallyAirGappedVaultOutputWithContext(context.Background()) +} + +func (i *LogicallyAirGappedVault) ToLogicallyAirGappedVaultOutputWithContext(ctx context.Context) LogicallyAirGappedVaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultOutput) +} + +// LogicallyAirGappedVaultArrayInput is an input type that accepts LogicallyAirGappedVaultArray and LogicallyAirGappedVaultArrayOutput values. +// You can construct a concrete instance of `LogicallyAirGappedVaultArrayInput` via: +// +// LogicallyAirGappedVaultArray{ LogicallyAirGappedVaultArgs{...} } +type LogicallyAirGappedVaultArrayInput interface { + pulumi.Input + + ToLogicallyAirGappedVaultArrayOutput() LogicallyAirGappedVaultArrayOutput + ToLogicallyAirGappedVaultArrayOutputWithContext(context.Context) LogicallyAirGappedVaultArrayOutput +} + +type LogicallyAirGappedVaultArray []LogicallyAirGappedVaultInput + +func (LogicallyAirGappedVaultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogicallyAirGappedVault)(nil)).Elem() +} + +func (i LogicallyAirGappedVaultArray) ToLogicallyAirGappedVaultArrayOutput() LogicallyAirGappedVaultArrayOutput { + return i.ToLogicallyAirGappedVaultArrayOutputWithContext(context.Background()) +} + +func (i LogicallyAirGappedVaultArray) ToLogicallyAirGappedVaultArrayOutputWithContext(ctx context.Context) LogicallyAirGappedVaultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultArrayOutput) +} + +// LogicallyAirGappedVaultMapInput is an input type that accepts LogicallyAirGappedVaultMap and LogicallyAirGappedVaultMapOutput values. +// You can construct a concrete instance of `LogicallyAirGappedVaultMapInput` via: +// +// LogicallyAirGappedVaultMap{ "key": LogicallyAirGappedVaultArgs{...} } +type LogicallyAirGappedVaultMapInput interface { + pulumi.Input + + ToLogicallyAirGappedVaultMapOutput() LogicallyAirGappedVaultMapOutput + ToLogicallyAirGappedVaultMapOutputWithContext(context.Context) LogicallyAirGappedVaultMapOutput +} + +type LogicallyAirGappedVaultMap map[string]LogicallyAirGappedVaultInput + +func (LogicallyAirGappedVaultMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogicallyAirGappedVault)(nil)).Elem() +} + +func (i LogicallyAirGappedVaultMap) ToLogicallyAirGappedVaultMapOutput() LogicallyAirGappedVaultMapOutput { + return i.ToLogicallyAirGappedVaultMapOutputWithContext(context.Background()) +} + +func (i LogicallyAirGappedVaultMap) ToLogicallyAirGappedVaultMapOutputWithContext(ctx context.Context) LogicallyAirGappedVaultMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultMapOutput) +} + +type LogicallyAirGappedVaultOutput struct{ *pulumi.OutputState } + +func (LogicallyAirGappedVaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogicallyAirGappedVault)(nil)).Elem() +} + +func (o LogicallyAirGappedVaultOutput) ToLogicallyAirGappedVaultOutput() LogicallyAirGappedVaultOutput { + return o +} + +func (o LogicallyAirGappedVaultOutput) ToLogicallyAirGappedVaultOutputWithContext(ctx context.Context) LogicallyAirGappedVaultOutput { + return o +} + +// The ARN of the Logically Air Gapped Backup Vault. +func (o LogicallyAirGappedVaultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. +func (o LogicallyAirGappedVaultOutput) MaxRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) pulumi.IntOutput { return v.MaxRetentionDays }).(pulumi.IntOutput) +} + +// Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. +func (o LogicallyAirGappedVaultOutput) MinRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) pulumi.IntOutput { return v.MinRetentionDays }).(pulumi.IntOutput) +} + +// Name of the Logically Air Gapped Backup Vault to create. +func (o LogicallyAirGappedVaultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Metadata that you can assign to help organize the resources that you create. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LogicallyAirGappedVaultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) 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 LogicallyAirGappedVaultOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o LogicallyAirGappedVaultOutput) Timeouts() LogicallyAirGappedVaultTimeoutsPtrOutput { + return o.ApplyT(func(v *LogicallyAirGappedVault) LogicallyAirGappedVaultTimeoutsPtrOutput { return v.Timeouts }).(LogicallyAirGappedVaultTimeoutsPtrOutput) +} + +type LogicallyAirGappedVaultArrayOutput struct{ *pulumi.OutputState } + +func (LogicallyAirGappedVaultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogicallyAirGappedVault)(nil)).Elem() +} + +func (o LogicallyAirGappedVaultArrayOutput) ToLogicallyAirGappedVaultArrayOutput() LogicallyAirGappedVaultArrayOutput { + return o +} + +func (o LogicallyAirGappedVaultArrayOutput) ToLogicallyAirGappedVaultArrayOutputWithContext(ctx context.Context) LogicallyAirGappedVaultArrayOutput { + return o +} + +func (o LogicallyAirGappedVaultArrayOutput) Index(i pulumi.IntInput) LogicallyAirGappedVaultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogicallyAirGappedVault { + return vs[0].([]*LogicallyAirGappedVault)[vs[1].(int)] + }).(LogicallyAirGappedVaultOutput) +} + +type LogicallyAirGappedVaultMapOutput struct{ *pulumi.OutputState } + +func (LogicallyAirGappedVaultMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogicallyAirGappedVault)(nil)).Elem() +} + +func (o LogicallyAirGappedVaultMapOutput) ToLogicallyAirGappedVaultMapOutput() LogicallyAirGappedVaultMapOutput { + return o +} + +func (o LogicallyAirGappedVaultMapOutput) ToLogicallyAirGappedVaultMapOutputWithContext(ctx context.Context) LogicallyAirGappedVaultMapOutput { + return o +} + +func (o LogicallyAirGappedVaultMapOutput) MapIndex(k pulumi.StringInput) LogicallyAirGappedVaultOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogicallyAirGappedVault { + return vs[0].(map[string]*LogicallyAirGappedVault)[vs[1].(string)] + }).(LogicallyAirGappedVaultOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogicallyAirGappedVaultInput)(nil)).Elem(), &LogicallyAirGappedVault{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogicallyAirGappedVaultArrayInput)(nil)).Elem(), LogicallyAirGappedVaultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogicallyAirGappedVaultMapInput)(nil)).Elem(), LogicallyAirGappedVaultMap{}) + pulumi.RegisterOutputType(LogicallyAirGappedVaultOutput{}) + pulumi.RegisterOutputType(LogicallyAirGappedVaultArrayOutput{}) + pulumi.RegisterOutputType(LogicallyAirGappedVaultMapOutput{}) +} diff --git a/sdk/go/aws/backup/pulumiTypes.go b/sdk/go/aws/backup/pulumiTypes.go index b12e80eca74..478a0ad217f 100644 --- a/sdk/go/aws/backup/pulumiTypes.go +++ b/sdk/go/aws/backup/pulumiTypes.go @@ -409,6 +409,143 @@ func (o FrameworkControlScopePtrOutput) Tags() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } +type LogicallyAirGappedVaultTimeouts 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"` +} + +// LogicallyAirGappedVaultTimeoutsInput is an input type that accepts LogicallyAirGappedVaultTimeoutsArgs and LogicallyAirGappedVaultTimeoutsOutput values. +// You can construct a concrete instance of `LogicallyAirGappedVaultTimeoutsInput` via: +// +// LogicallyAirGappedVaultTimeoutsArgs{...} +type LogicallyAirGappedVaultTimeoutsInput interface { + pulumi.Input + + ToLogicallyAirGappedVaultTimeoutsOutput() LogicallyAirGappedVaultTimeoutsOutput + ToLogicallyAirGappedVaultTimeoutsOutputWithContext(context.Context) LogicallyAirGappedVaultTimeoutsOutput +} + +type LogicallyAirGappedVaultTimeoutsArgs 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 (LogicallyAirGappedVaultTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogicallyAirGappedVaultTimeouts)(nil)).Elem() +} + +func (i LogicallyAirGappedVaultTimeoutsArgs) ToLogicallyAirGappedVaultTimeoutsOutput() LogicallyAirGappedVaultTimeoutsOutput { + return i.ToLogicallyAirGappedVaultTimeoutsOutputWithContext(context.Background()) +} + +func (i LogicallyAirGappedVaultTimeoutsArgs) ToLogicallyAirGappedVaultTimeoutsOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultTimeoutsOutput) +} + +func (i LogicallyAirGappedVaultTimeoutsArgs) ToLogicallyAirGappedVaultTimeoutsPtrOutput() LogicallyAirGappedVaultTimeoutsPtrOutput { + return i.ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i LogicallyAirGappedVaultTimeoutsArgs) ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultTimeoutsOutput).ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(ctx) +} + +// LogicallyAirGappedVaultTimeoutsPtrInput is an input type that accepts LogicallyAirGappedVaultTimeoutsArgs, LogicallyAirGappedVaultTimeoutsPtr and LogicallyAirGappedVaultTimeoutsPtrOutput values. +// You can construct a concrete instance of `LogicallyAirGappedVaultTimeoutsPtrInput` via: +// +// LogicallyAirGappedVaultTimeoutsArgs{...} +// +// or: +// +// nil +type LogicallyAirGappedVaultTimeoutsPtrInput interface { + pulumi.Input + + ToLogicallyAirGappedVaultTimeoutsPtrOutput() LogicallyAirGappedVaultTimeoutsPtrOutput + ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(context.Context) LogicallyAirGappedVaultTimeoutsPtrOutput +} + +type logicallyAirGappedVaultTimeoutsPtrType LogicallyAirGappedVaultTimeoutsArgs + +func LogicallyAirGappedVaultTimeoutsPtr(v *LogicallyAirGappedVaultTimeoutsArgs) LogicallyAirGappedVaultTimeoutsPtrInput { + return (*logicallyAirGappedVaultTimeoutsPtrType)(v) +} + +func (*logicallyAirGappedVaultTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogicallyAirGappedVaultTimeouts)(nil)).Elem() +} + +func (i *logicallyAirGappedVaultTimeoutsPtrType) ToLogicallyAirGappedVaultTimeoutsPtrOutput() LogicallyAirGappedVaultTimeoutsPtrOutput { + return i.ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *logicallyAirGappedVaultTimeoutsPtrType) ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogicallyAirGappedVaultTimeoutsPtrOutput) +} + +type LogicallyAirGappedVaultTimeoutsOutput struct{ *pulumi.OutputState } + +func (LogicallyAirGappedVaultTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogicallyAirGappedVaultTimeouts)(nil)).Elem() +} + +func (o LogicallyAirGappedVaultTimeoutsOutput) ToLogicallyAirGappedVaultTimeoutsOutput() LogicallyAirGappedVaultTimeoutsOutput { + return o +} + +func (o LogicallyAirGappedVaultTimeoutsOutput) ToLogicallyAirGappedVaultTimeoutsOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsOutput { + return o +} + +func (o LogicallyAirGappedVaultTimeoutsOutput) ToLogicallyAirGappedVaultTimeoutsPtrOutput() LogicallyAirGappedVaultTimeoutsPtrOutput { + return o.ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o LogicallyAirGappedVaultTimeoutsOutput) ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LogicallyAirGappedVaultTimeouts) *LogicallyAirGappedVaultTimeouts { + return &v + }).(LogicallyAirGappedVaultTimeoutsPtrOutput) +} + +// 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 LogicallyAirGappedVaultTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogicallyAirGappedVaultTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +type LogicallyAirGappedVaultTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (LogicallyAirGappedVaultTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogicallyAirGappedVaultTimeouts)(nil)).Elem() +} + +func (o LogicallyAirGappedVaultTimeoutsPtrOutput) ToLogicallyAirGappedVaultTimeoutsPtrOutput() LogicallyAirGappedVaultTimeoutsPtrOutput { + return o +} + +func (o LogicallyAirGappedVaultTimeoutsPtrOutput) ToLogicallyAirGappedVaultTimeoutsPtrOutputWithContext(ctx context.Context) LogicallyAirGappedVaultTimeoutsPtrOutput { + return o +} + +func (o LogicallyAirGappedVaultTimeoutsPtrOutput) Elem() LogicallyAirGappedVaultTimeoutsOutput { + return o.ApplyT(func(v *LogicallyAirGappedVaultTimeouts) LogicallyAirGappedVaultTimeouts { + if v != nil { + return *v + } + var ret LogicallyAirGappedVaultTimeouts + return ret + }).(LogicallyAirGappedVaultTimeoutsOutput) +} + +// 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 LogicallyAirGappedVaultTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogicallyAirGappedVaultTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + type PlanAdvancedBackupSetting struct { // Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. BackupOptions map[string]string `pulumi:"backupOptions"` @@ -3252,6 +3389,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FrameworkControlInputParameterArrayInput)(nil)).Elem(), FrameworkControlInputParameterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FrameworkControlScopeInput)(nil)).Elem(), FrameworkControlScopeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FrameworkControlScopePtrInput)(nil)).Elem(), FrameworkControlScopeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogicallyAirGappedVaultTimeoutsInput)(nil)).Elem(), LogicallyAirGappedVaultTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogicallyAirGappedVaultTimeoutsPtrInput)(nil)).Elem(), LogicallyAirGappedVaultTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PlanAdvancedBackupSettingInput)(nil)).Elem(), PlanAdvancedBackupSettingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PlanAdvancedBackupSettingArrayInput)(nil)).Elem(), PlanAdvancedBackupSettingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PlanRuleInput)(nil)).Elem(), PlanRuleArgs{}) @@ -3302,6 +3441,8 @@ func init() { pulumi.RegisterOutputType(FrameworkControlInputParameterArrayOutput{}) pulumi.RegisterOutputType(FrameworkControlScopeOutput{}) pulumi.RegisterOutputType(FrameworkControlScopePtrOutput{}) + pulumi.RegisterOutputType(LogicallyAirGappedVaultTimeoutsOutput{}) + pulumi.RegisterOutputType(LogicallyAirGappedVaultTimeoutsPtrOutput{}) pulumi.RegisterOutputType(PlanAdvancedBackupSettingOutput{}) pulumi.RegisterOutputType(PlanAdvancedBackupSettingArrayOutput{}) pulumi.RegisterOutputType(PlanRuleOutput{}) diff --git a/sdk/go/aws/bedrock/agentAgentActionGroup.go b/sdk/go/aws/bedrock/agentAgentActionGroup.go index 15558432281..9b0d11d8c30 100644 --- a/sdk/go/aws/bedrock/agentAgentActionGroup.go +++ b/sdk/go/aws/bedrock/agentAgentActionGroup.go @@ -228,8 +228,11 @@ type AgentAgentActionGroup struct { FunctionSchema AgentAgentActionGroupFunctionSchemaPtrOutput `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrOutput `pulumi:"parentActionGroupSignature"` + // Whether or not to prepare the agent after creation or modification. Defaults to `true`. + PrepareAgent pulumi.BoolOutput `pulumi:"prepareAgent"` // Whether the in-use check is skipped when deleting the action group. - SkipResourceInUseCheck pulumi.BoolOutput `pulumi:"skipResourceInUseCheck"` + SkipResourceInUseCheck pulumi.BoolOutput `pulumi:"skipResourceInUseCheck"` + Timeouts AgentAgentActionGroupTimeoutsPtrOutput `pulumi:"timeouts"` } // NewAgentAgentActionGroup registers a new resource with the given unique name, arguments, and options. @@ -295,8 +298,11 @@ type agentAgentActionGroupState struct { FunctionSchema *AgentAgentActionGroupFunctionSchema `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature *string `pulumi:"parentActionGroupSignature"` + // Whether or not to prepare the agent after creation or modification. Defaults to `true`. + PrepareAgent *bool `pulumi:"prepareAgent"` // Whether the in-use check is skipped when deleting the action group. - SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` + SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` + Timeouts *AgentAgentActionGroupTimeouts `pulumi:"timeouts"` } type AgentAgentActionGroupState struct { @@ -324,8 +330,11 @@ type AgentAgentActionGroupState struct { FunctionSchema AgentAgentActionGroupFunctionSchemaPtrInput // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrInput + // Whether or not to prepare the agent after creation or modification. Defaults to `true`. + PrepareAgent pulumi.BoolPtrInput // Whether the in-use check is skipped when deleting the action group. SkipResourceInUseCheck pulumi.BoolPtrInput + Timeouts AgentAgentActionGroupTimeoutsPtrInput } func (AgentAgentActionGroupState) ElementType() reflect.Type { @@ -355,8 +364,11 @@ type agentAgentActionGroupArgs struct { FunctionSchema *AgentAgentActionGroupFunctionSchema `pulumi:"functionSchema"` // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature *string `pulumi:"parentActionGroupSignature"` + // Whether or not to prepare the agent after creation or modification. Defaults to `true`. + PrepareAgent *bool `pulumi:"prepareAgent"` // Whether the in-use check is skipped when deleting the action group. - SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` + SkipResourceInUseCheck *bool `pulumi:"skipResourceInUseCheck"` + Timeouts *AgentAgentActionGroupTimeouts `pulumi:"timeouts"` } // The set of arguments for constructing a AgentAgentActionGroup resource. @@ -383,8 +395,11 @@ type AgentAgentActionGroupArgs struct { FunctionSchema AgentAgentActionGroupFunctionSchemaPtrInput // To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. ParentActionGroupSignature pulumi.StringPtrInput + // Whether or not to prepare the agent after creation or modification. Defaults to `true`. + PrepareAgent pulumi.BoolPtrInput // Whether the in-use check is skipped when deleting the action group. SkipResourceInUseCheck pulumi.BoolPtrInput + Timeouts AgentAgentActionGroupTimeoutsPtrInput } func (AgentAgentActionGroupArgs) ElementType() reflect.Type { @@ -530,11 +545,20 @@ func (o AgentAgentActionGroupOutput) ParentActionGroupSignature() pulumi.StringP return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.StringPtrOutput { return v.ParentActionGroupSignature }).(pulumi.StringPtrOutput) } +// Whether or not to prepare the agent after creation or modification. Defaults to `true`. +func (o AgentAgentActionGroupOutput) PrepareAgent() pulumi.BoolOutput { + return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.BoolOutput { return v.PrepareAgent }).(pulumi.BoolOutput) +} + // Whether the in-use check is skipped when deleting the action group. func (o AgentAgentActionGroupOutput) SkipResourceInUseCheck() pulumi.BoolOutput { return o.ApplyT(func(v *AgentAgentActionGroup) pulumi.BoolOutput { return v.SkipResourceInUseCheck }).(pulumi.BoolOutput) } +func (o AgentAgentActionGroupOutput) Timeouts() AgentAgentActionGroupTimeoutsPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroup) AgentAgentActionGroupTimeoutsPtrOutput { return v.Timeouts }).(AgentAgentActionGroupTimeoutsPtrOutput) +} + type AgentAgentActionGroupArrayOutput struct{ *pulumi.OutputState } func (AgentAgentActionGroupArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/bedrock/guardrailVersion.go b/sdk/go/aws/bedrock/guardrailVersion.go new file mode 100644 index 00000000000..5f301b2497d --- /dev/null +++ b/sdk/go/aws/bedrock/guardrailVersion.go @@ -0,0 +1,319 @@ +// 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 bedrock + +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 Bedrock Guardrail Version. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := bedrock.NewGuardrailVersion(ctx, "example", &bedrock.GuardrailVersionArgs{ +// Description: pulumi.String("example"), +// GuardrailArn: pulumi.Any(test.GuardrailArn), +// SkipDestroy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: +// +// ```sh +// $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 +// ``` +type GuardrailVersion struct { + pulumi.CustomResourceState + + // Description of the Guardrail version. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Guardrail ARN. + // + // The following arguments are optional: + GuardrailArn pulumi.StringOutput `pulumi:"guardrailArn"` + // Whether to retain the old version of a previously deployed Guardrail. Default is `false` + SkipDestroy pulumi.BoolPtrOutput `pulumi:"skipDestroy"` + Timeouts GuardrailVersionTimeoutsPtrOutput `pulumi:"timeouts"` + // Guardrail version. + Version pulumi.StringOutput `pulumi:"version"` +} + +// NewGuardrailVersion registers a new resource with the given unique name, arguments, and options. +func NewGuardrailVersion(ctx *pulumi.Context, + name string, args *GuardrailVersionArgs, opts ...pulumi.ResourceOption) (*GuardrailVersion, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GuardrailArn == nil { + return nil, errors.New("invalid value for required argument 'GuardrailArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GuardrailVersion + err := ctx.RegisterResource("aws:bedrock/guardrailVersion:GuardrailVersion", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGuardrailVersion gets an existing GuardrailVersion 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 GetGuardrailVersion(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GuardrailVersionState, opts ...pulumi.ResourceOption) (*GuardrailVersion, error) { + var resource GuardrailVersion + err := ctx.ReadResource("aws:bedrock/guardrailVersion:GuardrailVersion", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GuardrailVersion resources. +type guardrailVersionState struct { + // Description of the Guardrail version. + Description *string `pulumi:"description"` + // Guardrail ARN. + // + // The following arguments are optional: + GuardrailArn *string `pulumi:"guardrailArn"` + // Whether to retain the old version of a previously deployed Guardrail. Default is `false` + SkipDestroy *bool `pulumi:"skipDestroy"` + Timeouts *GuardrailVersionTimeouts `pulumi:"timeouts"` + // Guardrail version. + Version *string `pulumi:"version"` +} + +type GuardrailVersionState struct { + // Description of the Guardrail version. + Description pulumi.StringPtrInput + // Guardrail ARN. + // + // The following arguments are optional: + GuardrailArn pulumi.StringPtrInput + // Whether to retain the old version of a previously deployed Guardrail. Default is `false` + SkipDestroy pulumi.BoolPtrInput + Timeouts GuardrailVersionTimeoutsPtrInput + // Guardrail version. + Version pulumi.StringPtrInput +} + +func (GuardrailVersionState) ElementType() reflect.Type { + return reflect.TypeOf((*guardrailVersionState)(nil)).Elem() +} + +type guardrailVersionArgs struct { + // Description of the Guardrail version. + Description *string `pulumi:"description"` + // Guardrail ARN. + // + // The following arguments are optional: + GuardrailArn string `pulumi:"guardrailArn"` + // Whether to retain the old version of a previously deployed Guardrail. Default is `false` + SkipDestroy *bool `pulumi:"skipDestroy"` + Timeouts *GuardrailVersionTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a GuardrailVersion resource. +type GuardrailVersionArgs struct { + // Description of the Guardrail version. + Description pulumi.StringPtrInput + // Guardrail ARN. + // + // The following arguments are optional: + GuardrailArn pulumi.StringInput + // Whether to retain the old version of a previously deployed Guardrail. Default is `false` + SkipDestroy pulumi.BoolPtrInput + Timeouts GuardrailVersionTimeoutsPtrInput +} + +func (GuardrailVersionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*guardrailVersionArgs)(nil)).Elem() +} + +type GuardrailVersionInput interface { + pulumi.Input + + ToGuardrailVersionOutput() GuardrailVersionOutput + ToGuardrailVersionOutputWithContext(ctx context.Context) GuardrailVersionOutput +} + +func (*GuardrailVersion) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailVersion)(nil)).Elem() +} + +func (i *GuardrailVersion) ToGuardrailVersionOutput() GuardrailVersionOutput { + return i.ToGuardrailVersionOutputWithContext(context.Background()) +} + +func (i *GuardrailVersion) ToGuardrailVersionOutputWithContext(ctx context.Context) GuardrailVersionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionOutput) +} + +// GuardrailVersionArrayInput is an input type that accepts GuardrailVersionArray and GuardrailVersionArrayOutput values. +// You can construct a concrete instance of `GuardrailVersionArrayInput` via: +// +// GuardrailVersionArray{ GuardrailVersionArgs{...} } +type GuardrailVersionArrayInput interface { + pulumi.Input + + ToGuardrailVersionArrayOutput() GuardrailVersionArrayOutput + ToGuardrailVersionArrayOutputWithContext(context.Context) GuardrailVersionArrayOutput +} + +type GuardrailVersionArray []GuardrailVersionInput + +func (GuardrailVersionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GuardrailVersion)(nil)).Elem() +} + +func (i GuardrailVersionArray) ToGuardrailVersionArrayOutput() GuardrailVersionArrayOutput { + return i.ToGuardrailVersionArrayOutputWithContext(context.Background()) +} + +func (i GuardrailVersionArray) ToGuardrailVersionArrayOutputWithContext(ctx context.Context) GuardrailVersionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionArrayOutput) +} + +// GuardrailVersionMapInput is an input type that accepts GuardrailVersionMap and GuardrailVersionMapOutput values. +// You can construct a concrete instance of `GuardrailVersionMapInput` via: +// +// GuardrailVersionMap{ "key": GuardrailVersionArgs{...} } +type GuardrailVersionMapInput interface { + pulumi.Input + + ToGuardrailVersionMapOutput() GuardrailVersionMapOutput + ToGuardrailVersionMapOutputWithContext(context.Context) GuardrailVersionMapOutput +} + +type GuardrailVersionMap map[string]GuardrailVersionInput + +func (GuardrailVersionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GuardrailVersion)(nil)).Elem() +} + +func (i GuardrailVersionMap) ToGuardrailVersionMapOutput() GuardrailVersionMapOutput { + return i.ToGuardrailVersionMapOutputWithContext(context.Background()) +} + +func (i GuardrailVersionMap) ToGuardrailVersionMapOutputWithContext(ctx context.Context) GuardrailVersionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionMapOutput) +} + +type GuardrailVersionOutput struct{ *pulumi.OutputState } + +func (GuardrailVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailVersion)(nil)).Elem() +} + +func (o GuardrailVersionOutput) ToGuardrailVersionOutput() GuardrailVersionOutput { + return o +} + +func (o GuardrailVersionOutput) ToGuardrailVersionOutputWithContext(ctx context.Context) GuardrailVersionOutput { + return o +} + +// Description of the Guardrail version. +func (o GuardrailVersionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailVersion) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Guardrail ARN. +// +// The following arguments are optional: +func (o GuardrailVersionOutput) GuardrailArn() pulumi.StringOutput { + return o.ApplyT(func(v *GuardrailVersion) pulumi.StringOutput { return v.GuardrailArn }).(pulumi.StringOutput) +} + +// Whether to retain the old version of a previously deployed Guardrail. Default is `false` +func (o GuardrailVersionOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GuardrailVersion) pulumi.BoolPtrOutput { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +func (o GuardrailVersionOutput) Timeouts() GuardrailVersionTimeoutsPtrOutput { + return o.ApplyT(func(v *GuardrailVersion) GuardrailVersionTimeoutsPtrOutput { return v.Timeouts }).(GuardrailVersionTimeoutsPtrOutput) +} + +// Guardrail version. +func (o GuardrailVersionOutput) Version() pulumi.StringOutput { + return o.ApplyT(func(v *GuardrailVersion) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput) +} + +type GuardrailVersionArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailVersionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GuardrailVersion)(nil)).Elem() +} + +func (o GuardrailVersionArrayOutput) ToGuardrailVersionArrayOutput() GuardrailVersionArrayOutput { + return o +} + +func (o GuardrailVersionArrayOutput) ToGuardrailVersionArrayOutputWithContext(ctx context.Context) GuardrailVersionArrayOutput { + return o +} + +func (o GuardrailVersionArrayOutput) Index(i pulumi.IntInput) GuardrailVersionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GuardrailVersion { + return vs[0].([]*GuardrailVersion)[vs[1].(int)] + }).(GuardrailVersionOutput) +} + +type GuardrailVersionMapOutput struct{ *pulumi.OutputState } + +func (GuardrailVersionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GuardrailVersion)(nil)).Elem() +} + +func (o GuardrailVersionMapOutput) ToGuardrailVersionMapOutput() GuardrailVersionMapOutput { + return o +} + +func (o GuardrailVersionMapOutput) ToGuardrailVersionMapOutputWithContext(ctx context.Context) GuardrailVersionMapOutput { + return o +} + +func (o GuardrailVersionMapOutput) MapIndex(k pulumi.StringInput) GuardrailVersionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GuardrailVersion { + return vs[0].(map[string]*GuardrailVersion)[vs[1].(string)] + }).(GuardrailVersionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailVersionInput)(nil)).Elem(), &GuardrailVersion{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailVersionArrayInput)(nil)).Elem(), GuardrailVersionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailVersionMapInput)(nil)).Elem(), GuardrailVersionMap{}) + pulumi.RegisterOutputType(GuardrailVersionOutput{}) + pulumi.RegisterOutputType(GuardrailVersionArrayOutput{}) + pulumi.RegisterOutputType(GuardrailVersionMapOutput{}) +} diff --git a/sdk/go/aws/bedrock/init.go b/sdk/go/aws/bedrock/init.go index 0fb69345feb..9deabbb895e 100644 --- a/sdk/go/aws/bedrock/init.go +++ b/sdk/go/aws/bedrock/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &CustomModel{} case "aws:bedrock/guardrail:Guardrail": r = &Guardrail{} + case "aws:bedrock/guardrailVersion:GuardrailVersion": + r = &GuardrailVersion{} case "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": r = &ProvisionedModelThroughput{} default: @@ -92,6 +94,11 @@ func init() { "bedrock/guardrail", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "bedrock/guardrailVersion", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "bedrock/provisionedModelThroughput", diff --git a/sdk/go/aws/bedrock/pulumiTypes.go b/sdk/go/aws/bedrock/pulumiTypes.go index 3aa87fbff18..9c4bc3702e4 100644 --- a/sdk/go/aws/bedrock/pulumiTypes.go +++ b/sdk/go/aws/bedrock/pulumiTypes.go @@ -1038,6 +1038,162 @@ func (o AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray }).(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput) } +type AgentAgentActionGroupTimeouts 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). + Update *string `pulumi:"update"` +} + +// AgentAgentActionGroupTimeoutsInput is an input type that accepts AgentAgentActionGroupTimeoutsArgs and AgentAgentActionGroupTimeoutsOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupTimeoutsInput` via: +// +// AgentAgentActionGroupTimeoutsArgs{...} +type AgentAgentActionGroupTimeoutsInput interface { + pulumi.Input + + ToAgentAgentActionGroupTimeoutsOutput() AgentAgentActionGroupTimeoutsOutput + ToAgentAgentActionGroupTimeoutsOutputWithContext(context.Context) AgentAgentActionGroupTimeoutsOutput +} + +type AgentAgentActionGroupTimeoutsArgs 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). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (AgentAgentActionGroupTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupTimeouts)(nil)).Elem() +} + +func (i AgentAgentActionGroupTimeoutsArgs) ToAgentAgentActionGroupTimeoutsOutput() AgentAgentActionGroupTimeoutsOutput { + return i.ToAgentAgentActionGroupTimeoutsOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupTimeoutsArgs) ToAgentAgentActionGroupTimeoutsOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupTimeoutsOutput) +} + +func (i AgentAgentActionGroupTimeoutsArgs) ToAgentAgentActionGroupTimeoutsPtrOutput() AgentAgentActionGroupTimeoutsPtrOutput { + return i.ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i AgentAgentActionGroupTimeoutsArgs) ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupTimeoutsOutput).ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(ctx) +} + +// AgentAgentActionGroupTimeoutsPtrInput is an input type that accepts AgentAgentActionGroupTimeoutsArgs, AgentAgentActionGroupTimeoutsPtr and AgentAgentActionGroupTimeoutsPtrOutput values. +// You can construct a concrete instance of `AgentAgentActionGroupTimeoutsPtrInput` via: +// +// AgentAgentActionGroupTimeoutsArgs{...} +// +// or: +// +// nil +type AgentAgentActionGroupTimeoutsPtrInput interface { + pulumi.Input + + ToAgentAgentActionGroupTimeoutsPtrOutput() AgentAgentActionGroupTimeoutsPtrOutput + ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(context.Context) AgentAgentActionGroupTimeoutsPtrOutput +} + +type agentAgentActionGroupTimeoutsPtrType AgentAgentActionGroupTimeoutsArgs + +func AgentAgentActionGroupTimeoutsPtr(v *AgentAgentActionGroupTimeoutsArgs) AgentAgentActionGroupTimeoutsPtrInput { + return (*agentAgentActionGroupTimeoutsPtrType)(v) +} + +func (*agentAgentActionGroupTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupTimeouts)(nil)).Elem() +} + +func (i *agentAgentActionGroupTimeoutsPtrType) ToAgentAgentActionGroupTimeoutsPtrOutput() AgentAgentActionGroupTimeoutsPtrOutput { + return i.ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *agentAgentActionGroupTimeoutsPtrType) ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentActionGroupTimeoutsPtrOutput) +} + +type AgentAgentActionGroupTimeoutsOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentActionGroupTimeouts)(nil)).Elem() +} + +func (o AgentAgentActionGroupTimeoutsOutput) ToAgentAgentActionGroupTimeoutsOutput() AgentAgentActionGroupTimeoutsOutput { + return o +} + +func (o AgentAgentActionGroupTimeoutsOutput) ToAgentAgentActionGroupTimeoutsOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsOutput { + return o +} + +func (o AgentAgentActionGroupTimeoutsOutput) ToAgentAgentActionGroupTimeoutsPtrOutput() AgentAgentActionGroupTimeoutsPtrOutput { + return o.ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o AgentAgentActionGroupTimeoutsOutput) ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentAgentActionGroupTimeouts) *AgentAgentActionGroupTimeouts { + return &v + }).(AgentAgentActionGroupTimeoutsPtrOutput) +} + +// 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 AgentAgentActionGroupTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupTimeouts) *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). +func (o AgentAgentActionGroupTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentActionGroupTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type AgentAgentActionGroupTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (AgentAgentActionGroupTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentActionGroupTimeouts)(nil)).Elem() +} + +func (o AgentAgentActionGroupTimeoutsPtrOutput) ToAgentAgentActionGroupTimeoutsPtrOutput() AgentAgentActionGroupTimeoutsPtrOutput { + return o +} + +func (o AgentAgentActionGroupTimeoutsPtrOutput) ToAgentAgentActionGroupTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentActionGroupTimeoutsPtrOutput { + return o +} + +func (o AgentAgentActionGroupTimeoutsPtrOutput) Elem() AgentAgentActionGroupTimeoutsOutput { + return o.ApplyT(func(v *AgentAgentActionGroupTimeouts) AgentAgentActionGroupTimeouts { + if v != nil { + return *v + } + var ret AgentAgentActionGroupTimeouts + return ret + }).(AgentAgentActionGroupTimeoutsOutput) +} + +// 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 AgentAgentActionGroupTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroupTimeouts) *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). +func (o AgentAgentActionGroupTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAgentActionGroupTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type AgentAgentAliasRoutingConfiguration struct { // Version of the agent with which the alias is associated. AgentVersion string `pulumi:"agentVersion"` @@ -2780,6 +2936,8 @@ func (o AgentDataSourceTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { type AgentDataSourceVectorIngestionConfiguration struct { // Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunkingConfiguration` block for details. ChunkingConfiguration *AgentDataSourceVectorIngestionConfigurationChunkingConfiguration `pulumi:"chunkingConfiguration"` + // Configuration for custom transformation of data source documents. + CustomTransformationConfiguration *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration `pulumi:"customTransformationConfiguration"` // Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. ParsingConfiguration *AgentDataSourceVectorIngestionConfigurationParsingConfiguration `pulumi:"parsingConfiguration"` } @@ -2798,6 +2956,8 @@ type AgentDataSourceVectorIngestionConfigurationInput interface { type AgentDataSourceVectorIngestionConfigurationArgs struct { // Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunkingConfiguration` block for details. ChunkingConfiguration AgentDataSourceVectorIngestionConfigurationChunkingConfigurationPtrInput `pulumi:"chunkingConfiguration"` + // Configuration for custom transformation of data source documents. + CustomTransformationConfiguration AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput `pulumi:"customTransformationConfiguration"` // Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. ParsingConfiguration AgentDataSourceVectorIngestionConfigurationParsingConfigurationPtrInput `pulumi:"parsingConfiguration"` } @@ -2886,6 +3046,13 @@ func (o AgentDataSourceVectorIngestionConfigurationOutput) ChunkingConfiguration }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationPtrOutput) } +// Configuration for custom transformation of data source documents. +func (o AgentDataSourceVectorIngestionConfigurationOutput) CustomTransformationConfiguration() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + return v.CustomTransformationConfiguration + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) +} + // Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. func (o AgentDataSourceVectorIngestionConfigurationOutput) ParsingConfiguration() AgentDataSourceVectorIngestionConfigurationParsingConfigurationPtrOutput { return o.ApplyT(func(v AgentDataSourceVectorIngestionConfiguration) *AgentDataSourceVectorIngestionConfigurationParsingConfiguration { @@ -2927,6 +3094,16 @@ func (o AgentDataSourceVectorIngestionConfigurationPtrOutput) ChunkingConfigurat }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationPtrOutput) } +// Configuration for custom transformation of data source documents. +func (o AgentDataSourceVectorIngestionConfigurationPtrOutput) CustomTransformationConfiguration() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + if v == nil { + return nil + } + return v.CustomTransformationConfiguration + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) +} + // Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. func (o AgentDataSourceVectorIngestionConfigurationPtrOutput) ParsingConfiguration() AgentDataSourceVectorIngestionConfigurationParsingConfigurationPtrOutput { return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfiguration) *AgentDataSourceVectorIngestionConfigurationParsingConfiguration { @@ -3488,251 +3665,1123 @@ func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarch return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutputWithContext(context.Background()) } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) +} + +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput` via: +// +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray{ AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArgs{...} } +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray []AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationInput + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { + return o +} + +// The maximum number of tokens that a chunk can contain in this layer. +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) MaxTokens() pulumi.Float64Output { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration) float64 { + return v.MaxTokens + }).(pulumi.Float64Output) +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) Index(i pulumi.IntInput) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration { + return vs[0].([]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)[vs[1].(int)] + }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration struct { + // The dissimilarity threshold for splitting chunks. + BreakpointPercentileThreshold float64 `pulumi:"breakpointPercentileThreshold"` + // The buffer size. + BufferSize float64 `pulumi:"bufferSize"` + MaxToken float64 `pulumi:"maxToken"` +} + +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput` via: +// +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{...} +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs struct { + // The dissimilarity threshold for splitting chunks. + BreakpointPercentileThreshold pulumi.Float64Input `pulumi:"breakpointPercentileThreshold"` + // The buffer size. + BufferSize pulumi.Float64Input `pulumi:"bufferSize"` + MaxToken pulumi.Float64Input `pulumi:"maxToken"` +} + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput).ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx) +} + +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs, AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtr and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput` via: +// +// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput +} + +type agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs + +func AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtr(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput { + return (*agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType)(v) +} + +func (*agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +} + +func (i *agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration { + return &v + }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) +} + +// The dissimilarity threshold for splitting chunks. +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) BreakpointPercentileThreshold() pulumi.Float64Output { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { + return v.BreakpointPercentileThreshold + }).(pulumi.Float64Output) +} + +// The buffer size. +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) BufferSize() pulumi.Float64Output { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { + return v.BufferSize + }).(pulumi.Float64Output) +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) MaxToken() pulumi.Float64Output { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { + return v.MaxToken + }).(pulumi.Float64Output) +} + +type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration + return ret + }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) +} + +// The dissimilarity threshold for splitting chunks. +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) BreakpointPercentileThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { + if v == nil { + return nil + } + return &v.BreakpointPercentileThreshold + }).(pulumi.Float64PtrOutput) +} + +// The buffer size. +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) BufferSize() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { + if v == nil { + return nil + } + return &v.BufferSize + }).(pulumi.Float64PtrOutput) +} + +func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) MaxToken() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { + if v == nil { + return nil + } + return &v.MaxToken + }).(pulumi.Float64PtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration struct { + // The intermediate storage for custom transformation. + IntermediateStorage *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage `pulumi:"intermediateStorage"` + Transformation *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation `pulumi:"transformation"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs struct { + // The intermediate storage for custom transformation. + IntermediateStorage AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput `pulumi:"intermediateStorage"` + Transformation AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput `pulumi:"transformation"` +} + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(ctx) +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput +} + +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs + +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrType)(v) +} + +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration)(nil)).Elem() +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + return &v + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) +} + +// The intermediate storage for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) IntermediateStorage() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + return v.IntermediateStorage + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) Transformation() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + return v.Transformation + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration + return ret + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput) +} + +// The intermediate storage for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) IntermediateStorage() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + if v == nil { + return nil + } + return v.IntermediateStorage + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput) Transformation() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + if v == nil { + return nil + } + return v.Transformation + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage struct { + // Configuration block for intermedia S3 storage. + S3Location *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location `pulumi:"s3Location"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs struct { + // Configuration block for intermedia S3 storage. + S3Location AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput `pulumi:"s3Location"` +} + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(ctx) +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput +} + +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs + +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrType)(v) +} + +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage)(nil)).Elem() +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(context.Background()) +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(context.Background()) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + return &v + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) +} + +// Configuration block for intermedia S3 storage. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) S3Location() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + return v.S3Location + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage + return ret + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput) +} + +// Configuration block for intermedia S3 storage. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput) S3Location() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + if v == nil { + return nil + } + return v.S3Location + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location struct { + // S3 URI for intermediate storage. + Uri string `pulumi:"uri"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs struct { + // S3 URI for intermediate storage. + Uri pulumi.StringInput `pulumi:"uri"` +} + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(ctx) +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput +} + +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs + +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrType)(v) +} + +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location)(nil)).Elem() +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(context.Background()) +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(context.Background()) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + return &v + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) +} + +// S3 URI for intermediate storage. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location) string { + return v.Uri + }).(pulumi.StringOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location + return ret + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput) +} + +// S3 URI for intermediate storage. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location) *string { + if v == nil { + return nil + } + return &v.Uri + }).(pulumi.StringPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation struct { + // Currently only `POST_CHUNKING` is supported. + StepToApply string `pulumi:"stepToApply"` + // The configuration of transformation function. + TransformationFunction *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction `pulumi:"transformationFunction"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs struct { + // Currently only `POST_CHUNKING` is supported. + StepToApply pulumi.StringInput `pulumi:"stepToApply"` + // The configuration of transformation function. + TransformationFunction AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput `pulumi:"transformationFunction"` +} + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(ctx) +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput +} + +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs + +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrType)(v) +} + +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation)(nil)).Elem() +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(context.Background()) +} + +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(context.Background()) +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + return &v + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) +} + +// Currently only `POST_CHUNKING` is supported. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) StepToApply() pulumi.StringOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) string { + return v.StepToApply + }).(pulumi.StringOutput) +} + +// The configuration of transformation function. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) TransformationFunction() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + return v.TransformationFunction + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput { + return o +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation + return ret + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput) +} + +// Currently only `POST_CHUNKING` is supported. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) StepToApply() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) *string { + if v == nil { + return nil + } + return &v.StepToApply + }).(pulumi.StringPtrOutput) +} + +// The configuration of transformation function. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput) TransformationFunction() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + if v == nil { + return nil + } + return v.TransformationFunction + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction struct { + // The lambda configuration for custom transformation. + TransformationLambdaConfiguration *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration `pulumi:"transformationLambdaConfiguration"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionInput` via: +// +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionInput interface { + pulumi.Input + + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput +} + +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs struct { + // The lambda configuration for custom transformation. + TransformationLambdaConfiguration AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput `pulumi:"transformationLambdaConfiguration"` +} + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction)(nil)).Elem() +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(context.Background()) +} + +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(ctx) } -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput values. -// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput` via: +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput` via: // -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray{ AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArgs{...} } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput interface { +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs{...} +// +// or: +// +// nil +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput interface { pulumi.Input - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray []AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationInput +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrType)(v) } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { - return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(context.Background()) +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction)(nil)).Elem() } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(context.Background()) } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput struct{ *pulumi.OutputState } +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) +} -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction)(nil)).Elem() } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput { return o } -// The maximum number of tokens that a chunk can contain in this layer. -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) MaxTokens() pulumi.Float64Output { - return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration) float64 { - return v.MaxTokens - }).(pulumi.Float64Output) +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(context.Background()) } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput struct{ *pulumi.OutputState } +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + return &v + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) +} -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)(nil)).Elem() +// The lambda configuration for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) TransformationLambdaConfiguration() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { + return v.TransformationLambdaConfiguration + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput struct{ *pulumi.OutputState } + +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction)(nil)).Elem() +} + +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput) Index(i pulumi.IntInput) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration { - return vs[0].([]AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration)[vs[1].(int)] - }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationOutput) +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + if v != nil { + return *v + } + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction + return ret + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput) } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration struct { - // The dissimilarity threshold for splitting chunks. - BreakpointPercentileThreshold float64 `pulumi:"breakpointPercentileThreshold"` - // The buffer size. - BufferSize float64 `pulumi:"bufferSize"` - MaxToken float64 `pulumi:"maxToken"` +// The lambda configuration for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput) TransformationLambdaConfiguration() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { + if v == nil { + return nil + } + return v.TransformationLambdaConfiguration + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) } -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput values. -// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput` via: +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration struct { + // The ARN of the lambda to use for custom transformation. + LambdaArn string `pulumi:"lambdaArn"` +} + +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationInput` via: // -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{...} -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput interface { +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs{...} +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationInput interface { pulumi.Input - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs struct { - // The dissimilarity threshold for splitting chunks. - BreakpointPercentileThreshold pulumi.Float64Input `pulumi:"breakpointPercentileThreshold"` - // The buffer size. - BufferSize pulumi.Float64Input `pulumi:"bufferSize"` - MaxToken pulumi.Float64Input `pulumi:"maxToken"` +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs struct { + // The ARN of the lambda to use for custom transformation. + LambdaArn pulumi.StringInput `pulumi:"lambdaArn"` } -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration)(nil)).Elem() } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { - return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(context.Background()) +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutputWithContext(context.Background()) } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(context.Background()) } -func (i AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput).ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx) +func (i AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput).ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(ctx) } -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs, AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtr and AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput values. -// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput` via: +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput is an input type that accepts AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs, AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtr and AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput values. +// You can construct a concrete instance of `AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput` via: // -// AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{...} +// AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs{...} // // or: // // nil -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput interface { +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput interface { pulumi.Input - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput - ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput + ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput } -type agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs +type agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrType AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs -func AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtr(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput { - return (*agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType)(v) +func AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtr(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput { + return (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrType)(v) } -func (*agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +func (*agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration)(nil)).Elem() } -func (i *agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return i.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return i.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(context.Background()) } -func (i *agentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) +func (i *agentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrType) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput struct{ *pulumi.OutputState } +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput struct{ *pulumi.OutputState } -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration)(nil)).Elem() } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return o.ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(context.Background()) +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return o.ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(context.Background()) } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration) *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { return &v - }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) -} - -// The dissimilarity threshold for splitting chunks. -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) BreakpointPercentileThreshold() pulumi.Float64Output { - return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { - return v.BreakpointPercentileThreshold - }).(pulumi.Float64Output) -} - -// The buffer size. -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) BufferSize() pulumi.Float64Output { - return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { - return v.BufferSize - }).(pulumi.Float64Output) + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) MaxToken() pulumi.Float64Output { - return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) float64 { - return v.MaxToken - }).(pulumi.Float64Output) +// The ARN of the lambda to use for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) LambdaArn() pulumi.StringOutput { + return o.ApplyT(func(v AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration) string { + return v.LambdaArn + }).(pulumi.StringOutput) } -type AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput struct{ *pulumi.OutputState } +type AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput struct{ *pulumi.OutputState } -func (AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration)(nil)).Elem() +func (AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration)(nil)).Elem() } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) ToAgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutputWithContext(ctx context.Context) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput { return o } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput { - return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration { +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) Elem() AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration) AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { if v != nil { return *v } - var ret AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration + var ret AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration return ret - }).(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput) -} - -// The dissimilarity threshold for splitting chunks. -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) BreakpointPercentileThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { - if v == nil { - return nil - } - return &v.BreakpointPercentileThreshold - }).(pulumi.Float64PtrOutput) -} - -// The buffer size. -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) BufferSize() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { - if v == nil { - return nil - } - return &v.BufferSize - }).(pulumi.Float64PtrOutput) + }).(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput) } -func (o AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput) MaxToken() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration) *float64 { +// The ARN of the lambda to use for custom transformation. +func (o AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput) LambdaArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration) *string { if v == nil { return nil } - return &v.MaxToken - }).(pulumi.Float64PtrOutput) + return &v.LambdaArn + }).(pulumi.StringPtrOutput) } type AgentDataSourceVectorIngestionConfigurationParsingConfiguration struct { @@ -8746,6 +9795,162 @@ func (o GuardrailTopicPolicyConfigTopicsConfigArrayOutput) Index(i pulumi.IntInp }).(GuardrailTopicPolicyConfigTopicsConfigOutput) } +type GuardrailVersionTimeouts 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"` +} + +// GuardrailVersionTimeoutsInput is an input type that accepts GuardrailVersionTimeoutsArgs and GuardrailVersionTimeoutsOutput values. +// You can construct a concrete instance of `GuardrailVersionTimeoutsInput` via: +// +// GuardrailVersionTimeoutsArgs{...} +type GuardrailVersionTimeoutsInput interface { + pulumi.Input + + ToGuardrailVersionTimeoutsOutput() GuardrailVersionTimeoutsOutput + ToGuardrailVersionTimeoutsOutputWithContext(context.Context) GuardrailVersionTimeoutsOutput +} + +type GuardrailVersionTimeoutsArgs 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"` +} + +func (GuardrailVersionTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailVersionTimeouts)(nil)).Elem() +} + +func (i GuardrailVersionTimeoutsArgs) ToGuardrailVersionTimeoutsOutput() GuardrailVersionTimeoutsOutput { + return i.ToGuardrailVersionTimeoutsOutputWithContext(context.Background()) +} + +func (i GuardrailVersionTimeoutsArgs) ToGuardrailVersionTimeoutsOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionTimeoutsOutput) +} + +func (i GuardrailVersionTimeoutsArgs) ToGuardrailVersionTimeoutsPtrOutput() GuardrailVersionTimeoutsPtrOutput { + return i.ToGuardrailVersionTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i GuardrailVersionTimeoutsArgs) ToGuardrailVersionTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionTimeoutsOutput).ToGuardrailVersionTimeoutsPtrOutputWithContext(ctx) +} + +// GuardrailVersionTimeoutsPtrInput is an input type that accepts GuardrailVersionTimeoutsArgs, GuardrailVersionTimeoutsPtr and GuardrailVersionTimeoutsPtrOutput values. +// You can construct a concrete instance of `GuardrailVersionTimeoutsPtrInput` via: +// +// GuardrailVersionTimeoutsArgs{...} +// +// or: +// +// nil +type GuardrailVersionTimeoutsPtrInput interface { + pulumi.Input + + ToGuardrailVersionTimeoutsPtrOutput() GuardrailVersionTimeoutsPtrOutput + ToGuardrailVersionTimeoutsPtrOutputWithContext(context.Context) GuardrailVersionTimeoutsPtrOutput +} + +type guardrailVersionTimeoutsPtrType GuardrailVersionTimeoutsArgs + +func GuardrailVersionTimeoutsPtr(v *GuardrailVersionTimeoutsArgs) GuardrailVersionTimeoutsPtrInput { + return (*guardrailVersionTimeoutsPtrType)(v) +} + +func (*guardrailVersionTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailVersionTimeouts)(nil)).Elem() +} + +func (i *guardrailVersionTimeoutsPtrType) ToGuardrailVersionTimeoutsPtrOutput() GuardrailVersionTimeoutsPtrOutput { + return i.ToGuardrailVersionTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *guardrailVersionTimeoutsPtrType) ToGuardrailVersionTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailVersionTimeoutsPtrOutput) +} + +type GuardrailVersionTimeoutsOutput struct{ *pulumi.OutputState } + +func (GuardrailVersionTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailVersionTimeouts)(nil)).Elem() +} + +func (o GuardrailVersionTimeoutsOutput) ToGuardrailVersionTimeoutsOutput() GuardrailVersionTimeoutsOutput { + return o +} + +func (o GuardrailVersionTimeoutsOutput) ToGuardrailVersionTimeoutsOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsOutput { + return o +} + +func (o GuardrailVersionTimeoutsOutput) ToGuardrailVersionTimeoutsPtrOutput() GuardrailVersionTimeoutsPtrOutput { + return o.ToGuardrailVersionTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o GuardrailVersionTimeoutsOutput) ToGuardrailVersionTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailVersionTimeouts) *GuardrailVersionTimeouts { + return &v + }).(GuardrailVersionTimeoutsPtrOutput) +} + +// 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 GuardrailVersionTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailVersionTimeouts) *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 GuardrailVersionTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailVersionTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +type GuardrailVersionTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailVersionTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailVersionTimeouts)(nil)).Elem() +} + +func (o GuardrailVersionTimeoutsPtrOutput) ToGuardrailVersionTimeoutsPtrOutput() GuardrailVersionTimeoutsPtrOutput { + return o +} + +func (o GuardrailVersionTimeoutsPtrOutput) ToGuardrailVersionTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailVersionTimeoutsPtrOutput { + return o +} + +func (o GuardrailVersionTimeoutsPtrOutput) Elem() GuardrailVersionTimeoutsOutput { + return o.ApplyT(func(v *GuardrailVersionTimeouts) GuardrailVersionTimeouts { + if v != nil { + return *v + } + var ret GuardrailVersionTimeouts + return ret + }).(GuardrailVersionTimeoutsOutput) +} + +// 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 GuardrailVersionTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailVersionTimeouts) *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 GuardrailVersionTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailVersionTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + type GuardrailWordPolicyConfig struct { // A config for the list of managed words. See Managed Word Lists Config for more information. ManagedWordListsConfigs []GuardrailWordPolicyConfigManagedWordListsConfig `pulumi:"managedWordListsConfigs"` @@ -10212,6 +11417,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayInput)(nil)).Elem(), AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupTimeoutsInput)(nil)).Elem(), AgentAgentActionGroupTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentActionGroupTimeoutsPtrInput)(nil)).Elem(), AgentAgentActionGroupTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasRoutingConfigurationInput)(nil)).Elem(), AgentAgentAliasRoutingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasRoutingConfigurationArrayInput)(nil)).Elem(), AgentAgentAliasRoutingConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasTimeoutsInput)(nil)).Elem(), AgentAgentAliasTimeoutsArgs{}) @@ -10248,6 +11455,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationParsingConfigurationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationParsingConfigurationPtrInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationInput)(nil)).Elem(), AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationArgs{}) @@ -10314,6 +11533,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigPtrInput)(nil)).Elem(), GuardrailTopicPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfigInput)(nil)).Elem(), GuardrailTopicPolicyConfigTopicsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfigArrayInput)(nil)).Elem(), GuardrailTopicPolicyConfigTopicsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailVersionTimeoutsInput)(nil)).Elem(), GuardrailVersionTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailVersionTimeoutsPtrInput)(nil)).Elem(), GuardrailVersionTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigInput)(nil)).Elem(), GuardrailWordPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigPtrInput)(nil)).Elem(), GuardrailWordPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigManagedWordListsConfigInput)(nil)).Elem(), GuardrailWordPolicyConfigManagedWordListsConfigArgs{}) @@ -10354,6 +11575,8 @@ func init() { pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArrayOutput{}) pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterOutput{}) pulumi.RegisterOutputType(AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArrayOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupTimeoutsOutput{}) + pulumi.RegisterOutputType(AgentAgentActionGroupTimeoutsPtrOutput{}) pulumi.RegisterOutputType(AgentAgentAliasRoutingConfigurationOutput{}) pulumi.RegisterOutputType(AgentAgentAliasRoutingConfigurationArrayOutput{}) pulumi.RegisterOutputType(AgentAgentAliasTimeoutsOutput{}) @@ -10390,6 +11613,18 @@ func init() { pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArrayOutput{}) pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationOutput{}) pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStoragePtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationPtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationPtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionPtrOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationOutput{}) + pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationPtrOutput{}) pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationParsingConfigurationOutput{}) pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationParsingConfigurationPtrOutput{}) pulumi.RegisterOutputType(AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationOutput{}) @@ -10456,6 +11691,8 @@ func init() { pulumi.RegisterOutputType(GuardrailTopicPolicyConfigPtrOutput{}) pulumi.RegisterOutputType(GuardrailTopicPolicyConfigTopicsConfigOutput{}) pulumi.RegisterOutputType(GuardrailTopicPolicyConfigTopicsConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailVersionTimeoutsOutput{}) + pulumi.RegisterOutputType(GuardrailVersionTimeoutsPtrOutput{}) pulumi.RegisterOutputType(GuardrailWordPolicyConfigOutput{}) pulumi.RegisterOutputType(GuardrailWordPolicyConfigPtrOutput{}) pulumi.RegisterOutputType(GuardrailWordPolicyConfigManagedWordListsConfigOutput{}) diff --git a/sdk/go/aws/datazone/formType.go b/sdk/go/aws/datazone/formType.go index 29eb52d89dd..4c6cf1dcfbc 100644 --- a/sdk/go/aws/datazone/formType.go +++ b/sdk/go/aws/datazone/formType.go @@ -83,11 +83,11 @@ import ( // } // json1 := string(tmpJSON1) // domainExecutionRole, err := iam.NewRole(ctx, "domain_execution_role", &iam.RoleArgs{ -// Name: pulumi.String("example name"), +// Name: pulumi.String("example-role"), // AssumeRolePolicy: pulumi.String(json0), // InlinePolicies: iam.RoleInlinePolicyArray{ // &iam.RoleInlinePolicyArgs{ -// Name: pulumi.String("example name"), +// Name: pulumi.String("example-policy"), // Policy: pulumi.String(json1), // }, // }, @@ -96,14 +96,14 @@ import ( // return err // } // test, err := datazone.NewDomain(ctx, "test", &datazone.DomainArgs{ -// Name: pulumi.String("example name"), +// Name: pulumi.String("example"), // DomainExecutionRole: domainExecutionRole.Arn, // }) // if err != nil { // return err // } // _, err = ec2.NewSecurityGroup(ctx, "test", &ec2.SecurityGroupArgs{ -// Name: pulumi.String("example name"), +// Name: pulumi.String("example"), // }) // if err != nil { // return err diff --git a/sdk/go/aws/ebs/getSnapshot.go b/sdk/go/aws/ebs/getSnapshot.go index 021397947ae..d00bacc0304 100644 --- a/sdk/go/aws/ebs/getSnapshot.go +++ b/sdk/go/aws/ebs/getSnapshot.go @@ -110,6 +110,8 @@ type LookupSnapshotResult struct { // Snapshot ID (e.g., snap-59fcb34e). SnapshotId string `pulumi:"snapshotId"` SnapshotIds []string `pulumi:"snapshotIds"` + // Time stamp when the snapshot was initiated. + StartTime string `pulumi:"startTime"` // Snapshot state. State string `pulumi:"state"` // Storage tier in which the snapshot is stored. @@ -248,6 +250,11 @@ func (o LookupSnapshotResultOutput) SnapshotIds() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupSnapshotResult) []string { return v.SnapshotIds }).(pulumi.StringArrayOutput) } +// Time stamp when the snapshot was initiated. +func (o LookupSnapshotResultOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupSnapshotResult) string { return v.StartTime }).(pulumi.StringOutput) +} + // Snapshot state. func (o LookupSnapshotResultOutput) State() pulumi.StringOutput { return o.ApplyT(func(v LookupSnapshotResult) string { return v.State }).(pulumi.StringOutput) diff --git a/sdk/go/aws/ec2transitgateway/defaultRouteTableAssociation.go b/sdk/go/aws/ec2transitgateway/defaultRouteTableAssociation.go new file mode 100644 index 00000000000..04f743a505b --- /dev/null +++ b/sdk/go/aws/ec2transitgateway/defaultRouteTableAssociation.go @@ -0,0 +1,282 @@ +// 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 ec2transitgateway + +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 EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2transitgateway.NewDefaultRouteTableAssociation(ctx, "example", &ec2transitgateway.DefaultRouteTableAssociationArgs{ +// TransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id), +// TransitGatewayRouteTableId: pulumi.Any(exampleAwsEc2TransitGatewayRouteTable.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type DefaultRouteTableAssociation struct { + pulumi.CustomResourceState + + OriginalDefaultRouteTableId pulumi.StringOutput `pulumi:"originalDefaultRouteTableId"` + Timeouts DefaultRouteTableAssociationTimeoutsPtrOutput `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringOutput `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringOutput `pulumi:"transitGatewayRouteTableId"` +} + +// NewDefaultRouteTableAssociation registers a new resource with the given unique name, arguments, and options. +func NewDefaultRouteTableAssociation(ctx *pulumi.Context, + name string, args *DefaultRouteTableAssociationArgs, opts ...pulumi.ResourceOption) (*DefaultRouteTableAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.TransitGatewayId == nil { + return nil, errors.New("invalid value for required argument 'TransitGatewayId'") + } + if args.TransitGatewayRouteTableId == nil { + return nil, errors.New("invalid value for required argument 'TransitGatewayRouteTableId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DefaultRouteTableAssociation + err := ctx.RegisterResource("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDefaultRouteTableAssociation gets an existing DefaultRouteTableAssociation 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 GetDefaultRouteTableAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DefaultRouteTableAssociationState, opts ...pulumi.ResourceOption) (*DefaultRouteTableAssociation, error) { + var resource DefaultRouteTableAssociation + err := ctx.ReadResource("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DefaultRouteTableAssociation resources. +type defaultRouteTableAssociationState struct { + OriginalDefaultRouteTableId *string `pulumi:"originalDefaultRouteTableId"` + Timeouts *DefaultRouteTableAssociationTimeouts `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId *string `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId *string `pulumi:"transitGatewayRouteTableId"` +} + +type DefaultRouteTableAssociationState struct { + OriginalDefaultRouteTableId pulumi.StringPtrInput + Timeouts DefaultRouteTableAssociationTimeoutsPtrInput + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringPtrInput + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringPtrInput +} + +func (DefaultRouteTableAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*defaultRouteTableAssociationState)(nil)).Elem() +} + +type defaultRouteTableAssociationArgs struct { + Timeouts *DefaultRouteTableAssociationTimeouts `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId string `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId string `pulumi:"transitGatewayRouteTableId"` +} + +// The set of arguments for constructing a DefaultRouteTableAssociation resource. +type DefaultRouteTableAssociationArgs struct { + Timeouts DefaultRouteTableAssociationTimeoutsPtrInput + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringInput + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringInput +} + +func (DefaultRouteTableAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*defaultRouteTableAssociationArgs)(nil)).Elem() +} + +type DefaultRouteTableAssociationInput interface { + pulumi.Input + + ToDefaultRouteTableAssociationOutput() DefaultRouteTableAssociationOutput + ToDefaultRouteTableAssociationOutputWithContext(ctx context.Context) DefaultRouteTableAssociationOutput +} + +func (*DefaultRouteTableAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTableAssociation)(nil)).Elem() +} + +func (i *DefaultRouteTableAssociation) ToDefaultRouteTableAssociationOutput() DefaultRouteTableAssociationOutput { + return i.ToDefaultRouteTableAssociationOutputWithContext(context.Background()) +} + +func (i *DefaultRouteTableAssociation) ToDefaultRouteTableAssociationOutputWithContext(ctx context.Context) DefaultRouteTableAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationOutput) +} + +// DefaultRouteTableAssociationArrayInput is an input type that accepts DefaultRouteTableAssociationArray and DefaultRouteTableAssociationArrayOutput values. +// You can construct a concrete instance of `DefaultRouteTableAssociationArrayInput` via: +// +// DefaultRouteTableAssociationArray{ DefaultRouteTableAssociationArgs{...} } +type DefaultRouteTableAssociationArrayInput interface { + pulumi.Input + + ToDefaultRouteTableAssociationArrayOutput() DefaultRouteTableAssociationArrayOutput + ToDefaultRouteTableAssociationArrayOutputWithContext(context.Context) DefaultRouteTableAssociationArrayOutput +} + +type DefaultRouteTableAssociationArray []DefaultRouteTableAssociationInput + +func (DefaultRouteTableAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DefaultRouteTableAssociation)(nil)).Elem() +} + +func (i DefaultRouteTableAssociationArray) ToDefaultRouteTableAssociationArrayOutput() DefaultRouteTableAssociationArrayOutput { + return i.ToDefaultRouteTableAssociationArrayOutputWithContext(context.Background()) +} + +func (i DefaultRouteTableAssociationArray) ToDefaultRouteTableAssociationArrayOutputWithContext(ctx context.Context) DefaultRouteTableAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationArrayOutput) +} + +// DefaultRouteTableAssociationMapInput is an input type that accepts DefaultRouteTableAssociationMap and DefaultRouteTableAssociationMapOutput values. +// You can construct a concrete instance of `DefaultRouteTableAssociationMapInput` via: +// +// DefaultRouteTableAssociationMap{ "key": DefaultRouteTableAssociationArgs{...} } +type DefaultRouteTableAssociationMapInput interface { + pulumi.Input + + ToDefaultRouteTableAssociationMapOutput() DefaultRouteTableAssociationMapOutput + ToDefaultRouteTableAssociationMapOutputWithContext(context.Context) DefaultRouteTableAssociationMapOutput +} + +type DefaultRouteTableAssociationMap map[string]DefaultRouteTableAssociationInput + +func (DefaultRouteTableAssociationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DefaultRouteTableAssociation)(nil)).Elem() +} + +func (i DefaultRouteTableAssociationMap) ToDefaultRouteTableAssociationMapOutput() DefaultRouteTableAssociationMapOutput { + return i.ToDefaultRouteTableAssociationMapOutputWithContext(context.Background()) +} + +func (i DefaultRouteTableAssociationMap) ToDefaultRouteTableAssociationMapOutputWithContext(ctx context.Context) DefaultRouteTableAssociationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationMapOutput) +} + +type DefaultRouteTableAssociationOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTableAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTableAssociation)(nil)).Elem() +} + +func (o DefaultRouteTableAssociationOutput) ToDefaultRouteTableAssociationOutput() DefaultRouteTableAssociationOutput { + return o +} + +func (o DefaultRouteTableAssociationOutput) ToDefaultRouteTableAssociationOutputWithContext(ctx context.Context) DefaultRouteTableAssociationOutput { + return o +} + +func (o DefaultRouteTableAssociationOutput) OriginalDefaultRouteTableId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociation) pulumi.StringOutput { return v.OriginalDefaultRouteTableId }).(pulumi.StringOutput) +} + +func (o DefaultRouteTableAssociationOutput) Timeouts() DefaultRouteTableAssociationTimeoutsPtrOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociation) DefaultRouteTableAssociationTimeoutsPtrOutput { return v.Timeouts }).(DefaultRouteTableAssociationTimeoutsPtrOutput) +} + +// ID of the Transit Gateway to change the default association route table on. +func (o DefaultRouteTableAssociationOutput) TransitGatewayId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociation) pulumi.StringOutput { return v.TransitGatewayId }).(pulumi.StringOutput) +} + +// ID of the Transit Gateway Route Table to be made the default association route table. +func (o DefaultRouteTableAssociationOutput) TransitGatewayRouteTableId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociation) pulumi.StringOutput { return v.TransitGatewayRouteTableId }).(pulumi.StringOutput) +} + +type DefaultRouteTableAssociationArrayOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTableAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DefaultRouteTableAssociation)(nil)).Elem() +} + +func (o DefaultRouteTableAssociationArrayOutput) ToDefaultRouteTableAssociationArrayOutput() DefaultRouteTableAssociationArrayOutput { + return o +} + +func (o DefaultRouteTableAssociationArrayOutput) ToDefaultRouteTableAssociationArrayOutputWithContext(ctx context.Context) DefaultRouteTableAssociationArrayOutput { + return o +} + +func (o DefaultRouteTableAssociationArrayOutput) Index(i pulumi.IntInput) DefaultRouteTableAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DefaultRouteTableAssociation { + return vs[0].([]*DefaultRouteTableAssociation)[vs[1].(int)] + }).(DefaultRouteTableAssociationOutput) +} + +type DefaultRouteTableAssociationMapOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTableAssociationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DefaultRouteTableAssociation)(nil)).Elem() +} + +func (o DefaultRouteTableAssociationMapOutput) ToDefaultRouteTableAssociationMapOutput() DefaultRouteTableAssociationMapOutput { + return o +} + +func (o DefaultRouteTableAssociationMapOutput) ToDefaultRouteTableAssociationMapOutputWithContext(ctx context.Context) DefaultRouteTableAssociationMapOutput { + return o +} + +func (o DefaultRouteTableAssociationMapOutput) MapIndex(k pulumi.StringInput) DefaultRouteTableAssociationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DefaultRouteTableAssociation { + return vs[0].(map[string]*DefaultRouteTableAssociation)[vs[1].(string)] + }).(DefaultRouteTableAssociationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTableAssociationInput)(nil)).Elem(), &DefaultRouteTableAssociation{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTableAssociationArrayInput)(nil)).Elem(), DefaultRouteTableAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTableAssociationMapInput)(nil)).Elem(), DefaultRouteTableAssociationMap{}) + pulumi.RegisterOutputType(DefaultRouteTableAssociationOutput{}) + pulumi.RegisterOutputType(DefaultRouteTableAssociationArrayOutput{}) + pulumi.RegisterOutputType(DefaultRouteTableAssociationMapOutput{}) +} diff --git a/sdk/go/aws/ec2transitgateway/defaultRouteTablePropagation.go b/sdk/go/aws/ec2transitgateway/defaultRouteTablePropagation.go new file mode 100644 index 00000000000..cfb8190fd01 --- /dev/null +++ b/sdk/go/aws/ec2transitgateway/defaultRouteTablePropagation.go @@ -0,0 +1,282 @@ +// 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 ec2transitgateway + +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 EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2transitgateway.NewDefaultRouteTablePropagation(ctx, "example", &ec2transitgateway.DefaultRouteTablePropagationArgs{ +// TransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id), +// TransitGatewayRouteTableId: pulumi.Any(exampleAwsEc2TransitGatewayRouteTable.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type DefaultRouteTablePropagation struct { + pulumi.CustomResourceState + + OriginalDefaultRouteTableId pulumi.StringOutput `pulumi:"originalDefaultRouteTableId"` + Timeouts DefaultRouteTablePropagationTimeoutsPtrOutput `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringOutput `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringOutput `pulumi:"transitGatewayRouteTableId"` +} + +// NewDefaultRouteTablePropagation registers a new resource with the given unique name, arguments, and options. +func NewDefaultRouteTablePropagation(ctx *pulumi.Context, + name string, args *DefaultRouteTablePropagationArgs, opts ...pulumi.ResourceOption) (*DefaultRouteTablePropagation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.TransitGatewayId == nil { + return nil, errors.New("invalid value for required argument 'TransitGatewayId'") + } + if args.TransitGatewayRouteTableId == nil { + return nil, errors.New("invalid value for required argument 'TransitGatewayRouteTableId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DefaultRouteTablePropagation + err := ctx.RegisterResource("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDefaultRouteTablePropagation gets an existing DefaultRouteTablePropagation 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 GetDefaultRouteTablePropagation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DefaultRouteTablePropagationState, opts ...pulumi.ResourceOption) (*DefaultRouteTablePropagation, error) { + var resource DefaultRouteTablePropagation + err := ctx.ReadResource("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DefaultRouteTablePropagation resources. +type defaultRouteTablePropagationState struct { + OriginalDefaultRouteTableId *string `pulumi:"originalDefaultRouteTableId"` + Timeouts *DefaultRouteTablePropagationTimeouts `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId *string `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId *string `pulumi:"transitGatewayRouteTableId"` +} + +type DefaultRouteTablePropagationState struct { + OriginalDefaultRouteTableId pulumi.StringPtrInput + Timeouts DefaultRouteTablePropagationTimeoutsPtrInput + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringPtrInput + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringPtrInput +} + +func (DefaultRouteTablePropagationState) ElementType() reflect.Type { + return reflect.TypeOf((*defaultRouteTablePropagationState)(nil)).Elem() +} + +type defaultRouteTablePropagationArgs struct { + Timeouts *DefaultRouteTablePropagationTimeouts `pulumi:"timeouts"` + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId string `pulumi:"transitGatewayId"` + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId string `pulumi:"transitGatewayRouteTableId"` +} + +// The set of arguments for constructing a DefaultRouteTablePropagation resource. +type DefaultRouteTablePropagationArgs struct { + Timeouts DefaultRouteTablePropagationTimeoutsPtrInput + // ID of the Transit Gateway to change the default association route table on. + TransitGatewayId pulumi.StringInput + // ID of the Transit Gateway Route Table to be made the default association route table. + TransitGatewayRouteTableId pulumi.StringInput +} + +func (DefaultRouteTablePropagationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*defaultRouteTablePropagationArgs)(nil)).Elem() +} + +type DefaultRouteTablePropagationInput interface { + pulumi.Input + + ToDefaultRouteTablePropagationOutput() DefaultRouteTablePropagationOutput + ToDefaultRouteTablePropagationOutputWithContext(ctx context.Context) DefaultRouteTablePropagationOutput +} + +func (*DefaultRouteTablePropagation) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTablePropagation)(nil)).Elem() +} + +func (i *DefaultRouteTablePropagation) ToDefaultRouteTablePropagationOutput() DefaultRouteTablePropagationOutput { + return i.ToDefaultRouteTablePropagationOutputWithContext(context.Background()) +} + +func (i *DefaultRouteTablePropagation) ToDefaultRouteTablePropagationOutputWithContext(ctx context.Context) DefaultRouteTablePropagationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationOutput) +} + +// DefaultRouteTablePropagationArrayInput is an input type that accepts DefaultRouteTablePropagationArray and DefaultRouteTablePropagationArrayOutput values. +// You can construct a concrete instance of `DefaultRouteTablePropagationArrayInput` via: +// +// DefaultRouteTablePropagationArray{ DefaultRouteTablePropagationArgs{...} } +type DefaultRouteTablePropagationArrayInput interface { + pulumi.Input + + ToDefaultRouteTablePropagationArrayOutput() DefaultRouteTablePropagationArrayOutput + ToDefaultRouteTablePropagationArrayOutputWithContext(context.Context) DefaultRouteTablePropagationArrayOutput +} + +type DefaultRouteTablePropagationArray []DefaultRouteTablePropagationInput + +func (DefaultRouteTablePropagationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DefaultRouteTablePropagation)(nil)).Elem() +} + +func (i DefaultRouteTablePropagationArray) ToDefaultRouteTablePropagationArrayOutput() DefaultRouteTablePropagationArrayOutput { + return i.ToDefaultRouteTablePropagationArrayOutputWithContext(context.Background()) +} + +func (i DefaultRouteTablePropagationArray) ToDefaultRouteTablePropagationArrayOutputWithContext(ctx context.Context) DefaultRouteTablePropagationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationArrayOutput) +} + +// DefaultRouteTablePropagationMapInput is an input type that accepts DefaultRouteTablePropagationMap and DefaultRouteTablePropagationMapOutput values. +// You can construct a concrete instance of `DefaultRouteTablePropagationMapInput` via: +// +// DefaultRouteTablePropagationMap{ "key": DefaultRouteTablePropagationArgs{...} } +type DefaultRouteTablePropagationMapInput interface { + pulumi.Input + + ToDefaultRouteTablePropagationMapOutput() DefaultRouteTablePropagationMapOutput + ToDefaultRouteTablePropagationMapOutputWithContext(context.Context) DefaultRouteTablePropagationMapOutput +} + +type DefaultRouteTablePropagationMap map[string]DefaultRouteTablePropagationInput + +func (DefaultRouteTablePropagationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DefaultRouteTablePropagation)(nil)).Elem() +} + +func (i DefaultRouteTablePropagationMap) ToDefaultRouteTablePropagationMapOutput() DefaultRouteTablePropagationMapOutput { + return i.ToDefaultRouteTablePropagationMapOutputWithContext(context.Background()) +} + +func (i DefaultRouteTablePropagationMap) ToDefaultRouteTablePropagationMapOutputWithContext(ctx context.Context) DefaultRouteTablePropagationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationMapOutput) +} + +type DefaultRouteTablePropagationOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTablePropagationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTablePropagation)(nil)).Elem() +} + +func (o DefaultRouteTablePropagationOutput) ToDefaultRouteTablePropagationOutput() DefaultRouteTablePropagationOutput { + return o +} + +func (o DefaultRouteTablePropagationOutput) ToDefaultRouteTablePropagationOutputWithContext(ctx context.Context) DefaultRouteTablePropagationOutput { + return o +} + +func (o DefaultRouteTablePropagationOutput) OriginalDefaultRouteTableId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagation) pulumi.StringOutput { return v.OriginalDefaultRouteTableId }).(pulumi.StringOutput) +} + +func (o DefaultRouteTablePropagationOutput) Timeouts() DefaultRouteTablePropagationTimeoutsPtrOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagation) DefaultRouteTablePropagationTimeoutsPtrOutput { return v.Timeouts }).(DefaultRouteTablePropagationTimeoutsPtrOutput) +} + +// ID of the Transit Gateway to change the default association route table on. +func (o DefaultRouteTablePropagationOutput) TransitGatewayId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagation) pulumi.StringOutput { return v.TransitGatewayId }).(pulumi.StringOutput) +} + +// ID of the Transit Gateway Route Table to be made the default association route table. +func (o DefaultRouteTablePropagationOutput) TransitGatewayRouteTableId() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagation) pulumi.StringOutput { return v.TransitGatewayRouteTableId }).(pulumi.StringOutput) +} + +type DefaultRouteTablePropagationArrayOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTablePropagationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DefaultRouteTablePropagation)(nil)).Elem() +} + +func (o DefaultRouteTablePropagationArrayOutput) ToDefaultRouteTablePropagationArrayOutput() DefaultRouteTablePropagationArrayOutput { + return o +} + +func (o DefaultRouteTablePropagationArrayOutput) ToDefaultRouteTablePropagationArrayOutputWithContext(ctx context.Context) DefaultRouteTablePropagationArrayOutput { + return o +} + +func (o DefaultRouteTablePropagationArrayOutput) Index(i pulumi.IntInput) DefaultRouteTablePropagationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DefaultRouteTablePropagation { + return vs[0].([]*DefaultRouteTablePropagation)[vs[1].(int)] + }).(DefaultRouteTablePropagationOutput) +} + +type DefaultRouteTablePropagationMapOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTablePropagationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DefaultRouteTablePropagation)(nil)).Elem() +} + +func (o DefaultRouteTablePropagationMapOutput) ToDefaultRouteTablePropagationMapOutput() DefaultRouteTablePropagationMapOutput { + return o +} + +func (o DefaultRouteTablePropagationMapOutput) ToDefaultRouteTablePropagationMapOutputWithContext(ctx context.Context) DefaultRouteTablePropagationMapOutput { + return o +} + +func (o DefaultRouteTablePropagationMapOutput) MapIndex(k pulumi.StringInput) DefaultRouteTablePropagationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DefaultRouteTablePropagation { + return vs[0].(map[string]*DefaultRouteTablePropagation)[vs[1].(string)] + }).(DefaultRouteTablePropagationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTablePropagationInput)(nil)).Elem(), &DefaultRouteTablePropagation{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTablePropagationArrayInput)(nil)).Elem(), DefaultRouteTablePropagationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTablePropagationMapInput)(nil)).Elem(), DefaultRouteTablePropagationMap{}) + pulumi.RegisterOutputType(DefaultRouteTablePropagationOutput{}) + pulumi.RegisterOutputType(DefaultRouteTablePropagationArrayOutput{}) + pulumi.RegisterOutputType(DefaultRouteTablePropagationMapOutput{}) +} diff --git a/sdk/go/aws/ec2transitgateway/init.go b/sdk/go/aws/ec2transitgateway/init.go index 82467715fe8..a03a38122d4 100644 --- a/sdk/go/aws/ec2transitgateway/init.go +++ b/sdk/go/aws/ec2transitgateway/init.go @@ -25,6 +25,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Connect{} case "aws:ec2transitgateway/connectPeer:ConnectPeer": r = &ConnectPeer{} + case "aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation": + r = &DefaultRouteTableAssociation{} + case "aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation": + r = &DefaultRouteTablePropagation{} case "aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint": r = &InstanceConnectEndpoint{} case "aws:ec2transitgateway/instanceState:InstanceState": @@ -84,6 +88,16 @@ func init() { "ec2transitgateway/connectPeer", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "ec2transitgateway/defaultRouteTableAssociation", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ec2transitgateway/defaultRouteTablePropagation", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "ec2transitgateway/instanceConnectEndpoint", diff --git a/sdk/go/aws/ec2transitgateway/pulumiTypes.go b/sdk/go/aws/ec2transitgateway/pulumiTypes.go index c72d92efdab..2a6008bce51 100644 --- a/sdk/go/aws/ec2transitgateway/pulumiTypes.go +++ b/sdk/go/aws/ec2transitgateway/pulumiTypes.go @@ -13,6 +13,356 @@ import ( var _ = internal.GetEnvOrDefault +type DefaultRouteTableAssociationTimeouts 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"` +} + +// DefaultRouteTableAssociationTimeoutsInput is an input type that accepts DefaultRouteTableAssociationTimeoutsArgs and DefaultRouteTableAssociationTimeoutsOutput values. +// You can construct a concrete instance of `DefaultRouteTableAssociationTimeoutsInput` via: +// +// DefaultRouteTableAssociationTimeoutsArgs{...} +type DefaultRouteTableAssociationTimeoutsInput interface { + pulumi.Input + + ToDefaultRouteTableAssociationTimeoutsOutput() DefaultRouteTableAssociationTimeoutsOutput + ToDefaultRouteTableAssociationTimeoutsOutputWithContext(context.Context) DefaultRouteTableAssociationTimeoutsOutput +} + +type DefaultRouteTableAssociationTimeoutsArgs 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 (DefaultRouteTableAssociationTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRouteTableAssociationTimeouts)(nil)).Elem() +} + +func (i DefaultRouteTableAssociationTimeoutsArgs) ToDefaultRouteTableAssociationTimeoutsOutput() DefaultRouteTableAssociationTimeoutsOutput { + return i.ToDefaultRouteTableAssociationTimeoutsOutputWithContext(context.Background()) +} + +func (i DefaultRouteTableAssociationTimeoutsArgs) ToDefaultRouteTableAssociationTimeoutsOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationTimeoutsOutput) +} + +func (i DefaultRouteTableAssociationTimeoutsArgs) ToDefaultRouteTableAssociationTimeoutsPtrOutput() DefaultRouteTableAssociationTimeoutsPtrOutput { + return i.ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i DefaultRouteTableAssociationTimeoutsArgs) ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationTimeoutsOutput).ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(ctx) +} + +// DefaultRouteTableAssociationTimeoutsPtrInput is an input type that accepts DefaultRouteTableAssociationTimeoutsArgs, DefaultRouteTableAssociationTimeoutsPtr and DefaultRouteTableAssociationTimeoutsPtrOutput values. +// You can construct a concrete instance of `DefaultRouteTableAssociationTimeoutsPtrInput` via: +// +// DefaultRouteTableAssociationTimeoutsArgs{...} +// +// or: +// +// nil +type DefaultRouteTableAssociationTimeoutsPtrInput interface { + pulumi.Input + + ToDefaultRouteTableAssociationTimeoutsPtrOutput() DefaultRouteTableAssociationTimeoutsPtrOutput + ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(context.Context) DefaultRouteTableAssociationTimeoutsPtrOutput +} + +type defaultRouteTableAssociationTimeoutsPtrType DefaultRouteTableAssociationTimeoutsArgs + +func DefaultRouteTableAssociationTimeoutsPtr(v *DefaultRouteTableAssociationTimeoutsArgs) DefaultRouteTableAssociationTimeoutsPtrInput { + return (*defaultRouteTableAssociationTimeoutsPtrType)(v) +} + +func (*defaultRouteTableAssociationTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTableAssociationTimeouts)(nil)).Elem() +} + +func (i *defaultRouteTableAssociationTimeoutsPtrType) ToDefaultRouteTableAssociationTimeoutsPtrOutput() DefaultRouteTableAssociationTimeoutsPtrOutput { + return i.ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *defaultRouteTableAssociationTimeoutsPtrType) ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTableAssociationTimeoutsPtrOutput) +} + +type DefaultRouteTableAssociationTimeoutsOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTableAssociationTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRouteTableAssociationTimeouts)(nil)).Elem() +} + +func (o DefaultRouteTableAssociationTimeoutsOutput) ToDefaultRouteTableAssociationTimeoutsOutput() DefaultRouteTableAssociationTimeoutsOutput { + return o +} + +func (o DefaultRouteTableAssociationTimeoutsOutput) ToDefaultRouteTableAssociationTimeoutsOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsOutput { + return o +} + +func (o DefaultRouteTableAssociationTimeoutsOutput) ToDefaultRouteTableAssociationTimeoutsPtrOutput() DefaultRouteTableAssociationTimeoutsPtrOutput { + return o.ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o DefaultRouteTableAssociationTimeoutsOutput) ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DefaultRouteTableAssociationTimeouts) *DefaultRouteTableAssociationTimeouts { + return &v + }).(DefaultRouteTableAssociationTimeoutsPtrOutput) +} + +// 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 DefaultRouteTableAssociationTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTableAssociationTimeouts) *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 DefaultRouteTableAssociationTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTableAssociationTimeouts) *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 DefaultRouteTableAssociationTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTableAssociationTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type DefaultRouteTableAssociationTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTableAssociationTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTableAssociationTimeouts)(nil)).Elem() +} + +func (o DefaultRouteTableAssociationTimeoutsPtrOutput) ToDefaultRouteTableAssociationTimeoutsPtrOutput() DefaultRouteTableAssociationTimeoutsPtrOutput { + return o +} + +func (o DefaultRouteTableAssociationTimeoutsPtrOutput) ToDefaultRouteTableAssociationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTableAssociationTimeoutsPtrOutput { + return o +} + +func (o DefaultRouteTableAssociationTimeoutsPtrOutput) Elem() DefaultRouteTableAssociationTimeoutsOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociationTimeouts) DefaultRouteTableAssociationTimeouts { + if v != nil { + return *v + } + var ret DefaultRouteTableAssociationTimeouts + return ret + }).(DefaultRouteTableAssociationTimeoutsOutput) +} + +// 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 DefaultRouteTableAssociationTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociationTimeouts) *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 DefaultRouteTableAssociationTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociationTimeouts) *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 DefaultRouteTableAssociationTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTableAssociationTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type DefaultRouteTablePropagationTimeouts 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"` +} + +// DefaultRouteTablePropagationTimeoutsInput is an input type that accepts DefaultRouteTablePropagationTimeoutsArgs and DefaultRouteTablePropagationTimeoutsOutput values. +// You can construct a concrete instance of `DefaultRouteTablePropagationTimeoutsInput` via: +// +// DefaultRouteTablePropagationTimeoutsArgs{...} +type DefaultRouteTablePropagationTimeoutsInput interface { + pulumi.Input + + ToDefaultRouteTablePropagationTimeoutsOutput() DefaultRouteTablePropagationTimeoutsOutput + ToDefaultRouteTablePropagationTimeoutsOutputWithContext(context.Context) DefaultRouteTablePropagationTimeoutsOutput +} + +type DefaultRouteTablePropagationTimeoutsArgs 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 (DefaultRouteTablePropagationTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRouteTablePropagationTimeouts)(nil)).Elem() +} + +func (i DefaultRouteTablePropagationTimeoutsArgs) ToDefaultRouteTablePropagationTimeoutsOutput() DefaultRouteTablePropagationTimeoutsOutput { + return i.ToDefaultRouteTablePropagationTimeoutsOutputWithContext(context.Background()) +} + +func (i DefaultRouteTablePropagationTimeoutsArgs) ToDefaultRouteTablePropagationTimeoutsOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationTimeoutsOutput) +} + +func (i DefaultRouteTablePropagationTimeoutsArgs) ToDefaultRouteTablePropagationTimeoutsPtrOutput() DefaultRouteTablePropagationTimeoutsPtrOutput { + return i.ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i DefaultRouteTablePropagationTimeoutsArgs) ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationTimeoutsOutput).ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(ctx) +} + +// DefaultRouteTablePropagationTimeoutsPtrInput is an input type that accepts DefaultRouteTablePropagationTimeoutsArgs, DefaultRouteTablePropagationTimeoutsPtr and DefaultRouteTablePropagationTimeoutsPtrOutput values. +// You can construct a concrete instance of `DefaultRouteTablePropagationTimeoutsPtrInput` via: +// +// DefaultRouteTablePropagationTimeoutsArgs{...} +// +// or: +// +// nil +type DefaultRouteTablePropagationTimeoutsPtrInput interface { + pulumi.Input + + ToDefaultRouteTablePropagationTimeoutsPtrOutput() DefaultRouteTablePropagationTimeoutsPtrOutput + ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(context.Context) DefaultRouteTablePropagationTimeoutsPtrOutput +} + +type defaultRouteTablePropagationTimeoutsPtrType DefaultRouteTablePropagationTimeoutsArgs + +func DefaultRouteTablePropagationTimeoutsPtr(v *DefaultRouteTablePropagationTimeoutsArgs) DefaultRouteTablePropagationTimeoutsPtrInput { + return (*defaultRouteTablePropagationTimeoutsPtrType)(v) +} + +func (*defaultRouteTablePropagationTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTablePropagationTimeouts)(nil)).Elem() +} + +func (i *defaultRouteTablePropagationTimeoutsPtrType) ToDefaultRouteTablePropagationTimeoutsPtrOutput() DefaultRouteTablePropagationTimeoutsPtrOutput { + return i.ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *defaultRouteTablePropagationTimeoutsPtrType) ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRouteTablePropagationTimeoutsPtrOutput) +} + +type DefaultRouteTablePropagationTimeoutsOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTablePropagationTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRouteTablePropagationTimeouts)(nil)).Elem() +} + +func (o DefaultRouteTablePropagationTimeoutsOutput) ToDefaultRouteTablePropagationTimeoutsOutput() DefaultRouteTablePropagationTimeoutsOutput { + return o +} + +func (o DefaultRouteTablePropagationTimeoutsOutput) ToDefaultRouteTablePropagationTimeoutsOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsOutput { + return o +} + +func (o DefaultRouteTablePropagationTimeoutsOutput) ToDefaultRouteTablePropagationTimeoutsPtrOutput() DefaultRouteTablePropagationTimeoutsPtrOutput { + return o.ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o DefaultRouteTablePropagationTimeoutsOutput) ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DefaultRouteTablePropagationTimeouts) *DefaultRouteTablePropagationTimeouts { + return &v + }).(DefaultRouteTablePropagationTimeoutsPtrOutput) +} + +// 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 DefaultRouteTablePropagationTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTablePropagationTimeouts) *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 DefaultRouteTablePropagationTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTablePropagationTimeouts) *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 DefaultRouteTablePropagationTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRouteTablePropagationTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type DefaultRouteTablePropagationTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (DefaultRouteTablePropagationTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRouteTablePropagationTimeouts)(nil)).Elem() +} + +func (o DefaultRouteTablePropagationTimeoutsPtrOutput) ToDefaultRouteTablePropagationTimeoutsPtrOutput() DefaultRouteTablePropagationTimeoutsPtrOutput { + return o +} + +func (o DefaultRouteTablePropagationTimeoutsPtrOutput) ToDefaultRouteTablePropagationTimeoutsPtrOutputWithContext(ctx context.Context) DefaultRouteTablePropagationTimeoutsPtrOutput { + return o +} + +func (o DefaultRouteTablePropagationTimeoutsPtrOutput) Elem() DefaultRouteTablePropagationTimeoutsOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagationTimeouts) DefaultRouteTablePropagationTimeouts { + if v != nil { + return *v + } + var ret DefaultRouteTablePropagationTimeouts + return ret + }).(DefaultRouteTablePropagationTimeoutsOutput) +} + +// 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 DefaultRouteTablePropagationTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagationTimeouts) *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 DefaultRouteTablePropagationTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagationTimeouts) *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 DefaultRouteTablePropagationTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRouteTablePropagationTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type InstanceConnectEndpointTimeouts 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"` @@ -2475,6 +2825,10 @@ func (o GetVpnAttachmentFilterArrayOutput) Index(i pulumi.IntInput) GetVpnAttach } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTableAssociationTimeoutsInput)(nil)).Elem(), DefaultRouteTableAssociationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTableAssociationTimeoutsPtrInput)(nil)).Elem(), DefaultRouteTableAssociationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTablePropagationTimeoutsInput)(nil)).Elem(), DefaultRouteTablePropagationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRouteTablePropagationTimeoutsPtrInput)(nil)).Elem(), DefaultRouteTablePropagationTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceConnectEndpointTimeoutsInput)(nil)).Elem(), InstanceConnectEndpointTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceConnectEndpointTimeoutsPtrInput)(nil)).Elem(), InstanceConnectEndpointTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PeeringAttachmentOptionsInput)(nil)).Elem(), PeeringAttachmentOptionsArgs{}) @@ -2519,6 +2873,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetVpcAttachmentsFilterArrayInput)(nil)).Elem(), GetVpcAttachmentsFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpnAttachmentFilterInput)(nil)).Elem(), GetVpnAttachmentFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpnAttachmentFilterArrayInput)(nil)).Elem(), GetVpnAttachmentFilterArray{}) + pulumi.RegisterOutputType(DefaultRouteTableAssociationTimeoutsOutput{}) + pulumi.RegisterOutputType(DefaultRouteTableAssociationTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(DefaultRouteTablePropagationTimeoutsOutput{}) + pulumi.RegisterOutputType(DefaultRouteTablePropagationTimeoutsPtrOutput{}) pulumi.RegisterOutputType(InstanceConnectEndpointTimeoutsOutput{}) pulumi.RegisterOutputType(InstanceConnectEndpointTimeoutsPtrOutput{}) pulumi.RegisterOutputType(PeeringAttachmentOptionsOutput{}) diff --git a/sdk/go/aws/ec2transitgateway/vpcAttachment.go b/sdk/go/aws/ec2transitgateway/vpcAttachment.go index 9b7c17aba90..a7e2c835d44 100644 --- a/sdk/go/aws/ec2transitgateway/vpcAttachment.go +++ b/sdk/go/aws/ec2transitgateway/vpcAttachment.go @@ -60,8 +60,8 @@ type VpcAttachment struct { DnsSupport pulumi.StringPtrOutput `pulumi:"dnsSupport"` // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. Ipv6Support pulumi.StringPtrOutput `pulumi:"ipv6Support"` - // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. - SecurityGroupReferencingSupport pulumi.StringPtrOutput `pulumi:"securityGroupReferencingSupport"` + // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. + SecurityGroupReferencingSupport pulumi.StringOutput `pulumi:"securityGroupReferencingSupport"` // Identifiers of EC2 Subnets. SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` // Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -127,7 +127,7 @@ type vpcAttachmentState struct { DnsSupport *string `pulumi:"dnsSupport"` // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. Ipv6Support *string `pulumi:"ipv6Support"` - // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. SecurityGroupReferencingSupport *string `pulumi:"securityGroupReferencingSupport"` // Identifiers of EC2 Subnets. SubnetIds []string `pulumi:"subnetIds"` @@ -156,7 +156,7 @@ type VpcAttachmentState struct { DnsSupport pulumi.StringPtrInput // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. Ipv6Support pulumi.StringPtrInput - // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. SecurityGroupReferencingSupport pulumi.StringPtrInput // Identifiers of EC2 Subnets. SubnetIds pulumi.StringArrayInput @@ -189,7 +189,7 @@ type vpcAttachmentArgs struct { DnsSupport *string `pulumi:"dnsSupport"` // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. Ipv6Support *string `pulumi:"ipv6Support"` - // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. SecurityGroupReferencingSupport *string `pulumi:"securityGroupReferencingSupport"` // Identifiers of EC2 Subnets. SubnetIds []string `pulumi:"subnetIds"` @@ -213,7 +213,7 @@ type VpcAttachmentArgs struct { DnsSupport pulumi.StringPtrInput // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. Ipv6Support pulumi.StringPtrInput - // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + // Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. SecurityGroupReferencingSupport pulumi.StringPtrInput // Identifiers of EC2 Subnets. SubnetIds pulumi.StringArrayInput @@ -331,9 +331,9 @@ func (o VpcAttachmentOutput) Ipv6Support() pulumi.StringPtrOutput { return o.ApplyT(func(v *VpcAttachment) pulumi.StringPtrOutput { return v.Ipv6Support }).(pulumi.StringPtrOutput) } -// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. -func (o VpcAttachmentOutput) SecurityGroupReferencingSupport() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VpcAttachment) pulumi.StringPtrOutput { return v.SecurityGroupReferencingSupport }).(pulumi.StringPtrOutput) +// Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. +func (o VpcAttachmentOutput) SecurityGroupReferencingSupport() pulumi.StringOutput { + return o.ApplyT(func(v *VpcAttachment) pulumi.StringOutput { return v.SecurityGroupReferencingSupport }).(pulumi.StringOutput) } // Identifiers of EC2 Subnets. diff --git a/sdk/go/aws/elasticache/reservedCacheNode.go b/sdk/go/aws/elasticache/reservedCacheNode.go index 73162cb7c6c..97fca5cf1b4 100644 --- a/sdk/go/aws/elasticache/reservedCacheNode.go +++ b/sdk/go/aws/elasticache/reservedCacheNode.go @@ -29,7 +29,9 @@ type ReservedCacheNode struct { pulumi.CustomResourceState // ARN for the reserved cache node. - Arn pulumi.StringOutput `pulumi:"arn"` + Arn pulumi.StringOutput `pulumi:"arn"` + // Number of cache node instances to reserve. + // Default value is `1`. CacheNodeCount pulumi.Float64Output `pulumi:"cacheNodeCount"` // Node type for the reserved cache nodes. CacheNodeType pulumi.StringOutput `pulumi:"cacheNodeType"` @@ -97,7 +99,9 @@ func GetReservedCacheNode(ctx *pulumi.Context, // Input properties used for looking up and filtering ReservedCacheNode resources. type reservedCacheNodeState struct { // ARN for the reserved cache node. - Arn *string `pulumi:"arn"` + Arn *string `pulumi:"arn"` + // Number of cache node instances to reserve. + // Default value is `1`. CacheNodeCount *float64 `pulumi:"cacheNodeCount"` // Node type for the reserved cache nodes. CacheNodeType *string `pulumi:"cacheNodeType"` @@ -133,7 +137,9 @@ type reservedCacheNodeState struct { type ReservedCacheNodeState struct { // ARN for the reserved cache node. - Arn pulumi.StringPtrInput + Arn pulumi.StringPtrInput + // Number of cache node instances to reserve. + // Default value is `1`. CacheNodeCount pulumi.Float64PtrInput // Node type for the reserved cache nodes. CacheNodeType pulumi.StringPtrInput @@ -172,6 +178,8 @@ func (ReservedCacheNodeState) ElementType() reflect.Type { } type reservedCacheNodeArgs struct { + // Number of cache node instances to reserve. + // Default value is `1`. CacheNodeCount *float64 `pulumi:"cacheNodeCount"` // ID of the reserved cache node offering to purchase. // To determine an `reservedCacheNodesOfferingId`, see the `elasticache.getReservedCacheNodeOffering` data source. @@ -185,6 +193,8 @@ type reservedCacheNodeArgs struct { // The set of arguments for constructing a ReservedCacheNode resource. type ReservedCacheNodeArgs struct { + // Number of cache node instances to reserve. + // Default value is `1`. CacheNodeCount pulumi.Float64PtrInput // ID of the reserved cache node offering to purchase. // To determine an `reservedCacheNodesOfferingId`, see the `elasticache.getReservedCacheNodeOffering` data source. @@ -288,6 +298,8 @@ func (o ReservedCacheNodeOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *ReservedCacheNode) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } +// Number of cache node instances to reserve. +// Default value is `1`. func (o ReservedCacheNodeOutput) CacheNodeCount() pulumi.Float64Output { return o.ApplyT(func(v *ReservedCacheNode) pulumi.Float64Output { return v.CacheNodeCount }).(pulumi.Float64Output) } diff --git a/sdk/go/aws/globalaccelerator/pulumiTypes.go b/sdk/go/aws/globalaccelerator/pulumiTypes.go index 1ff76e13718..61a50d96797 100644 --- a/sdk/go/aws/globalaccelerator/pulumiTypes.go +++ b/sdk/go/aws/globalaccelerator/pulumiTypes.go @@ -1009,6 +1009,8 @@ func (o CustomRoutingListenerPortRangeArrayOutput) Index(i pulumi.IntInput) Cust } type EndpointGroupEndpointConfiguration struct { + // An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + AttachmentArn *string `pulumi:"attachmentArn"` // Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. // **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. ClientIpPreservationEnabled *bool `pulumi:"clientIpPreservationEnabled"` @@ -1030,6 +1032,8 @@ type EndpointGroupEndpointConfigurationInput interface { } type EndpointGroupEndpointConfigurationArgs struct { + // An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + AttachmentArn pulumi.StringPtrInput `pulumi:"attachmentArn"` // Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. // **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. ClientIpPreservationEnabled pulumi.BoolPtrInput `pulumi:"clientIpPreservationEnabled"` @@ -1090,6 +1094,11 @@ func (o EndpointGroupEndpointConfigurationOutput) ToEndpointGroupEndpointConfigu return o } +// An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. +func (o EndpointGroupEndpointConfigurationOutput) AttachmentArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v EndpointGroupEndpointConfiguration) *string { return v.AttachmentArn }).(pulumi.StringPtrOutput) +} + // Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. // **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. func (o EndpointGroupEndpointConfigurationOutput) ClientIpPreservationEnabled() pulumi.BoolPtrOutput { diff --git a/sdk/go/aws/iam/groupPoliciesExclusive.go b/sdk/go/aws/iam/groupPoliciesExclusive.go new file mode 100644 index 00000000000..e7d0b157151 --- /dev/null +++ b/sdk/go/aws/iam/groupPoliciesExclusive.go @@ -0,0 +1,243 @@ +// 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 iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: +// +// ```sh +// $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup +// ``` +type GroupPoliciesExclusive struct { + pulumi.CustomResourceState + + // IAM group name. + GroupName pulumi.StringOutput `pulumi:"groupName"` + // A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayOutput `pulumi:"policyNames"` +} + +// NewGroupPoliciesExclusive registers a new resource with the given unique name, arguments, and options. +func NewGroupPoliciesExclusive(ctx *pulumi.Context, + name string, args *GroupPoliciesExclusiveArgs, opts ...pulumi.ResourceOption) (*GroupPoliciesExclusive, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GroupName == nil { + return nil, errors.New("invalid value for required argument 'GroupName'") + } + if args.PolicyNames == nil { + return nil, errors.New("invalid value for required argument 'PolicyNames'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GroupPoliciesExclusive + err := ctx.RegisterResource("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGroupPoliciesExclusive gets an existing GroupPoliciesExclusive 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 GetGroupPoliciesExclusive(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GroupPoliciesExclusiveState, opts ...pulumi.ResourceOption) (*GroupPoliciesExclusive, error) { + var resource GroupPoliciesExclusive + err := ctx.ReadResource("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GroupPoliciesExclusive resources. +type groupPoliciesExclusiveState struct { + // IAM group name. + GroupName *string `pulumi:"groupName"` + // A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + PolicyNames []string `pulumi:"policyNames"` +} + +type GroupPoliciesExclusiveState struct { + // IAM group name. + GroupName pulumi.StringPtrInput + // A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayInput +} + +func (GroupPoliciesExclusiveState) ElementType() reflect.Type { + return reflect.TypeOf((*groupPoliciesExclusiveState)(nil)).Elem() +} + +type groupPoliciesExclusiveArgs struct { + // IAM group name. + GroupName string `pulumi:"groupName"` + // A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + PolicyNames []string `pulumi:"policyNames"` +} + +// The set of arguments for constructing a GroupPoliciesExclusive resource. +type GroupPoliciesExclusiveArgs struct { + // IAM group name. + GroupName pulumi.StringInput + // A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayInput +} + +func (GroupPoliciesExclusiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*groupPoliciesExclusiveArgs)(nil)).Elem() +} + +type GroupPoliciesExclusiveInput interface { + pulumi.Input + + ToGroupPoliciesExclusiveOutput() GroupPoliciesExclusiveOutput + ToGroupPoliciesExclusiveOutputWithContext(ctx context.Context) GroupPoliciesExclusiveOutput +} + +func (*GroupPoliciesExclusive) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPoliciesExclusive)(nil)).Elem() +} + +func (i *GroupPoliciesExclusive) ToGroupPoliciesExclusiveOutput() GroupPoliciesExclusiveOutput { + return i.ToGroupPoliciesExclusiveOutputWithContext(context.Background()) +} + +func (i *GroupPoliciesExclusive) ToGroupPoliciesExclusiveOutputWithContext(ctx context.Context) GroupPoliciesExclusiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPoliciesExclusiveOutput) +} + +// GroupPoliciesExclusiveArrayInput is an input type that accepts GroupPoliciesExclusiveArray and GroupPoliciesExclusiveArrayOutput values. +// You can construct a concrete instance of `GroupPoliciesExclusiveArrayInput` via: +// +// GroupPoliciesExclusiveArray{ GroupPoliciesExclusiveArgs{...} } +type GroupPoliciesExclusiveArrayInput interface { + pulumi.Input + + ToGroupPoliciesExclusiveArrayOutput() GroupPoliciesExclusiveArrayOutput + ToGroupPoliciesExclusiveArrayOutputWithContext(context.Context) GroupPoliciesExclusiveArrayOutput +} + +type GroupPoliciesExclusiveArray []GroupPoliciesExclusiveInput + +func (GroupPoliciesExclusiveArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPoliciesExclusive)(nil)).Elem() +} + +func (i GroupPoliciesExclusiveArray) ToGroupPoliciesExclusiveArrayOutput() GroupPoliciesExclusiveArrayOutput { + return i.ToGroupPoliciesExclusiveArrayOutputWithContext(context.Background()) +} + +func (i GroupPoliciesExclusiveArray) ToGroupPoliciesExclusiveArrayOutputWithContext(ctx context.Context) GroupPoliciesExclusiveArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPoliciesExclusiveArrayOutput) +} + +// GroupPoliciesExclusiveMapInput is an input type that accepts GroupPoliciesExclusiveMap and GroupPoliciesExclusiveMapOutput values. +// You can construct a concrete instance of `GroupPoliciesExclusiveMapInput` via: +// +// GroupPoliciesExclusiveMap{ "key": GroupPoliciesExclusiveArgs{...} } +type GroupPoliciesExclusiveMapInput interface { + pulumi.Input + + ToGroupPoliciesExclusiveMapOutput() GroupPoliciesExclusiveMapOutput + ToGroupPoliciesExclusiveMapOutputWithContext(context.Context) GroupPoliciesExclusiveMapOutput +} + +type GroupPoliciesExclusiveMap map[string]GroupPoliciesExclusiveInput + +func (GroupPoliciesExclusiveMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPoliciesExclusive)(nil)).Elem() +} + +func (i GroupPoliciesExclusiveMap) ToGroupPoliciesExclusiveMapOutput() GroupPoliciesExclusiveMapOutput { + return i.ToGroupPoliciesExclusiveMapOutputWithContext(context.Background()) +} + +func (i GroupPoliciesExclusiveMap) ToGroupPoliciesExclusiveMapOutputWithContext(ctx context.Context) GroupPoliciesExclusiveMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPoliciesExclusiveMapOutput) +} + +type GroupPoliciesExclusiveOutput struct{ *pulumi.OutputState } + +func (GroupPoliciesExclusiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPoliciesExclusive)(nil)).Elem() +} + +func (o GroupPoliciesExclusiveOutput) ToGroupPoliciesExclusiveOutput() GroupPoliciesExclusiveOutput { + return o +} + +func (o GroupPoliciesExclusiveOutput) ToGroupPoliciesExclusiveOutputWithContext(ctx context.Context) GroupPoliciesExclusiveOutput { + return o +} + +// IAM group name. +func (o GroupPoliciesExclusiveOutput) GroupName() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPoliciesExclusive) pulumi.StringOutput { return v.GroupName }).(pulumi.StringOutput) +} + +// A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. +func (o GroupPoliciesExclusiveOutput) PolicyNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GroupPoliciesExclusive) pulumi.StringArrayOutput { return v.PolicyNames }).(pulumi.StringArrayOutput) +} + +type GroupPoliciesExclusiveArrayOutput struct{ *pulumi.OutputState } + +func (GroupPoliciesExclusiveArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPoliciesExclusive)(nil)).Elem() +} + +func (o GroupPoliciesExclusiveArrayOutput) ToGroupPoliciesExclusiveArrayOutput() GroupPoliciesExclusiveArrayOutput { + return o +} + +func (o GroupPoliciesExclusiveArrayOutput) ToGroupPoliciesExclusiveArrayOutputWithContext(ctx context.Context) GroupPoliciesExclusiveArrayOutput { + return o +} + +func (o GroupPoliciesExclusiveArrayOutput) Index(i pulumi.IntInput) GroupPoliciesExclusiveOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GroupPoliciesExclusive { + return vs[0].([]*GroupPoliciesExclusive)[vs[1].(int)] + }).(GroupPoliciesExclusiveOutput) +} + +type GroupPoliciesExclusiveMapOutput struct{ *pulumi.OutputState } + +func (GroupPoliciesExclusiveMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPoliciesExclusive)(nil)).Elem() +} + +func (o GroupPoliciesExclusiveMapOutput) ToGroupPoliciesExclusiveMapOutput() GroupPoliciesExclusiveMapOutput { + return o +} + +func (o GroupPoliciesExclusiveMapOutput) ToGroupPoliciesExclusiveMapOutputWithContext(ctx context.Context) GroupPoliciesExclusiveMapOutput { + return o +} + +func (o GroupPoliciesExclusiveMapOutput) MapIndex(k pulumi.StringInput) GroupPoliciesExclusiveOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GroupPoliciesExclusive { + return vs[0].(map[string]*GroupPoliciesExclusive)[vs[1].(string)] + }).(GroupPoliciesExclusiveOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupPoliciesExclusiveInput)(nil)).Elem(), &GroupPoliciesExclusive{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPoliciesExclusiveArrayInput)(nil)).Elem(), GroupPoliciesExclusiveArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPoliciesExclusiveMapInput)(nil)).Elem(), GroupPoliciesExclusiveMap{}) + pulumi.RegisterOutputType(GroupPoliciesExclusiveOutput{}) + pulumi.RegisterOutputType(GroupPoliciesExclusiveArrayOutput{}) + pulumi.RegisterOutputType(GroupPoliciesExclusiveMapOutput{}) +} diff --git a/sdk/go/aws/iam/init.go b/sdk/go/aws/iam/init.go index d8cd4998b53..87de16df404 100644 --- a/sdk/go/aws/iam/init.go +++ b/sdk/go/aws/iam/init.go @@ -31,6 +31,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Group{} case "aws:iam/groupMembership:GroupMembership": r = &GroupMembership{} + case "aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive": + r = &GroupPoliciesExclusive{} case "aws:iam/groupPolicy:GroupPolicy": r = &GroupPolicy{} case "aws:iam/groupPolicyAttachment:GroupPolicyAttachment": @@ -71,6 +73,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &UserGroupMembership{} case "aws:iam/userLoginProfile:UserLoginProfile": r = &UserLoginProfile{} + case "aws:iam/userPoliciesExclusive:UserPoliciesExclusive": + r = &UserPoliciesExclusive{} case "aws:iam/userPolicy:UserPolicy": r = &UserPolicy{} case "aws:iam/userPolicyAttachment:UserPolicyAttachment": @@ -115,6 +119,11 @@ func init() { "iam/groupMembership", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "iam/groupPoliciesExclusive", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "iam/groupPolicy", @@ -215,6 +224,11 @@ func init() { "iam/userLoginProfile", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "iam/userPoliciesExclusive", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "iam/userPolicy", diff --git a/sdk/go/aws/iam/userPoliciesExclusive.go b/sdk/go/aws/iam/userPoliciesExclusive.go new file mode 100644 index 00000000000..936b6c4170c --- /dev/null +++ b/sdk/go/aws/iam/userPoliciesExclusive.go @@ -0,0 +1,243 @@ +// 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 iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: +// +// ```sh +// $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser +// ``` +type UserPoliciesExclusive struct { + pulumi.CustomResourceState + + // A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayOutput `pulumi:"policyNames"` + // IAM user name. + UserName pulumi.StringOutput `pulumi:"userName"` +} + +// NewUserPoliciesExclusive registers a new resource with the given unique name, arguments, and options. +func NewUserPoliciesExclusive(ctx *pulumi.Context, + name string, args *UserPoliciesExclusiveArgs, opts ...pulumi.ResourceOption) (*UserPoliciesExclusive, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyNames == nil { + return nil, errors.New("invalid value for required argument 'PolicyNames'") + } + if args.UserName == nil { + return nil, errors.New("invalid value for required argument 'UserName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserPoliciesExclusive + err := ctx.RegisterResource("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserPoliciesExclusive gets an existing UserPoliciesExclusive 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 GetUserPoliciesExclusive(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserPoliciesExclusiveState, opts ...pulumi.ResourceOption) (*UserPoliciesExclusive, error) { + var resource UserPoliciesExclusive + err := ctx.ReadResource("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserPoliciesExclusive resources. +type userPoliciesExclusiveState struct { + // A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + PolicyNames []string `pulumi:"policyNames"` + // IAM user name. + UserName *string `pulumi:"userName"` +} + +type UserPoliciesExclusiveState struct { + // A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayInput + // IAM user name. + UserName pulumi.StringPtrInput +} + +func (UserPoliciesExclusiveState) ElementType() reflect.Type { + return reflect.TypeOf((*userPoliciesExclusiveState)(nil)).Elem() +} + +type userPoliciesExclusiveArgs struct { + // A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + PolicyNames []string `pulumi:"policyNames"` + // IAM user name. + UserName string `pulumi:"userName"` +} + +// The set of arguments for constructing a UserPoliciesExclusive resource. +type UserPoliciesExclusiveArgs struct { + // A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + PolicyNames pulumi.StringArrayInput + // IAM user name. + UserName pulumi.StringInput +} + +func (UserPoliciesExclusiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userPoliciesExclusiveArgs)(nil)).Elem() +} + +type UserPoliciesExclusiveInput interface { + pulumi.Input + + ToUserPoliciesExclusiveOutput() UserPoliciesExclusiveOutput + ToUserPoliciesExclusiveOutputWithContext(ctx context.Context) UserPoliciesExclusiveOutput +} + +func (*UserPoliciesExclusive) ElementType() reflect.Type { + return reflect.TypeOf((**UserPoliciesExclusive)(nil)).Elem() +} + +func (i *UserPoliciesExclusive) ToUserPoliciesExclusiveOutput() UserPoliciesExclusiveOutput { + return i.ToUserPoliciesExclusiveOutputWithContext(context.Background()) +} + +func (i *UserPoliciesExclusive) ToUserPoliciesExclusiveOutputWithContext(ctx context.Context) UserPoliciesExclusiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPoliciesExclusiveOutput) +} + +// UserPoliciesExclusiveArrayInput is an input type that accepts UserPoliciesExclusiveArray and UserPoliciesExclusiveArrayOutput values. +// You can construct a concrete instance of `UserPoliciesExclusiveArrayInput` via: +// +// UserPoliciesExclusiveArray{ UserPoliciesExclusiveArgs{...} } +type UserPoliciesExclusiveArrayInput interface { + pulumi.Input + + ToUserPoliciesExclusiveArrayOutput() UserPoliciesExclusiveArrayOutput + ToUserPoliciesExclusiveArrayOutputWithContext(context.Context) UserPoliciesExclusiveArrayOutput +} + +type UserPoliciesExclusiveArray []UserPoliciesExclusiveInput + +func (UserPoliciesExclusiveArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPoliciesExclusive)(nil)).Elem() +} + +func (i UserPoliciesExclusiveArray) ToUserPoliciesExclusiveArrayOutput() UserPoliciesExclusiveArrayOutput { + return i.ToUserPoliciesExclusiveArrayOutputWithContext(context.Background()) +} + +func (i UserPoliciesExclusiveArray) ToUserPoliciesExclusiveArrayOutputWithContext(ctx context.Context) UserPoliciesExclusiveArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPoliciesExclusiveArrayOutput) +} + +// UserPoliciesExclusiveMapInput is an input type that accepts UserPoliciesExclusiveMap and UserPoliciesExclusiveMapOutput values. +// You can construct a concrete instance of `UserPoliciesExclusiveMapInput` via: +// +// UserPoliciesExclusiveMap{ "key": UserPoliciesExclusiveArgs{...} } +type UserPoliciesExclusiveMapInput interface { + pulumi.Input + + ToUserPoliciesExclusiveMapOutput() UserPoliciesExclusiveMapOutput + ToUserPoliciesExclusiveMapOutputWithContext(context.Context) UserPoliciesExclusiveMapOutput +} + +type UserPoliciesExclusiveMap map[string]UserPoliciesExclusiveInput + +func (UserPoliciesExclusiveMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPoliciesExclusive)(nil)).Elem() +} + +func (i UserPoliciesExclusiveMap) ToUserPoliciesExclusiveMapOutput() UserPoliciesExclusiveMapOutput { + return i.ToUserPoliciesExclusiveMapOutputWithContext(context.Background()) +} + +func (i UserPoliciesExclusiveMap) ToUserPoliciesExclusiveMapOutputWithContext(ctx context.Context) UserPoliciesExclusiveMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPoliciesExclusiveMapOutput) +} + +type UserPoliciesExclusiveOutput struct{ *pulumi.OutputState } + +func (UserPoliciesExclusiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserPoliciesExclusive)(nil)).Elem() +} + +func (o UserPoliciesExclusiveOutput) ToUserPoliciesExclusiveOutput() UserPoliciesExclusiveOutput { + return o +} + +func (o UserPoliciesExclusiveOutput) ToUserPoliciesExclusiveOutputWithContext(ctx context.Context) UserPoliciesExclusiveOutput { + return o +} + +// A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. +func (o UserPoliciesExclusiveOutput) PolicyNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserPoliciesExclusive) pulumi.StringArrayOutput { return v.PolicyNames }).(pulumi.StringArrayOutput) +} + +// IAM user name. +func (o UserPoliciesExclusiveOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v *UserPoliciesExclusive) pulumi.StringOutput { return v.UserName }).(pulumi.StringOutput) +} + +type UserPoliciesExclusiveArrayOutput struct{ *pulumi.OutputState } + +func (UserPoliciesExclusiveArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPoliciesExclusive)(nil)).Elem() +} + +func (o UserPoliciesExclusiveArrayOutput) ToUserPoliciesExclusiveArrayOutput() UserPoliciesExclusiveArrayOutput { + return o +} + +func (o UserPoliciesExclusiveArrayOutput) ToUserPoliciesExclusiveArrayOutputWithContext(ctx context.Context) UserPoliciesExclusiveArrayOutput { + return o +} + +func (o UserPoliciesExclusiveArrayOutput) Index(i pulumi.IntInput) UserPoliciesExclusiveOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserPoliciesExclusive { + return vs[0].([]*UserPoliciesExclusive)[vs[1].(int)] + }).(UserPoliciesExclusiveOutput) +} + +type UserPoliciesExclusiveMapOutput struct{ *pulumi.OutputState } + +func (UserPoliciesExclusiveMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPoliciesExclusive)(nil)).Elem() +} + +func (o UserPoliciesExclusiveMapOutput) ToUserPoliciesExclusiveMapOutput() UserPoliciesExclusiveMapOutput { + return o +} + +func (o UserPoliciesExclusiveMapOutput) ToUserPoliciesExclusiveMapOutputWithContext(ctx context.Context) UserPoliciesExclusiveMapOutput { + return o +} + +func (o UserPoliciesExclusiveMapOutput) MapIndex(k pulumi.StringInput) UserPoliciesExclusiveOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserPoliciesExclusive { + return vs[0].(map[string]*UserPoliciesExclusive)[vs[1].(string)] + }).(UserPoliciesExclusiveOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserPoliciesExclusiveInput)(nil)).Elem(), &UserPoliciesExclusive{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPoliciesExclusiveArrayInput)(nil)).Elem(), UserPoliciesExclusiveArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPoliciesExclusiveMapInput)(nil)).Elem(), UserPoliciesExclusiveMap{}) + pulumi.RegisterOutputType(UserPoliciesExclusiveOutput{}) + pulumi.RegisterOutputType(UserPoliciesExclusiveArrayOutput{}) + pulumi.RegisterOutputType(UserPoliciesExclusiveMapOutput{}) +} diff --git a/sdk/go/aws/kinesis/firehoseDeliveryStream.go b/sdk/go/aws/kinesis/firehoseDeliveryStream.go index 9aaf61ece38..25817001b02 100644 --- a/sdk/go/aws/kinesis/firehoseDeliveryStream.go +++ b/sdk/go/aws/kinesis/firehoseDeliveryStream.go @@ -104,7 +104,7 @@ import ( // Name: pulumi.String("firehose_lambda_processor"), // Role: lambdaIam.Arn, // Handler: pulumi.String("exports.handler"), -// Runtime: pulumi.String(lambda.RuntimeNodeJS16dX), +// Runtime: pulumi.String(lambda.RuntimeNodeJS20dX), // }) // if err != nil { // return err diff --git a/sdk/go/aws/lambda/codeSigningConfig.go b/sdk/go/aws/lambda/codeSigningConfig.go index a91aaef8407..3c7a83830e9 100644 --- a/sdk/go/aws/lambda/codeSigningConfig.go +++ b/sdk/go/aws/lambda/codeSigningConfig.go @@ -41,6 +41,9 @@ import ( // UntrustedArtifactOnDeployment: pulumi.String("Warn"), // }, // Description: pulumi.String("My awesome code signing config."), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("dynamodb"), +// }, // }) // if err != nil { // return err @@ -73,6 +76,12 @@ type CodeSigningConfig struct { LastModified pulumi.StringOutput `pulumi:"lastModified"` // A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. Policies CodeSigningConfigPoliciesOutput `pulumi:"policies"` + // Map of tags to assign to the object. 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"` } // NewCodeSigningConfig registers a new resource with the given unique name, arguments, and options. @@ -120,6 +129,12 @@ type codeSigningConfigState struct { LastModified *string `pulumi:"lastModified"` // A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. Policies *CodeSigningConfigPolicies `pulumi:"policies"` + // Map of tags to assign to the object. 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"` } type CodeSigningConfigState struct { @@ -135,6 +150,12 @@ type CodeSigningConfigState struct { LastModified pulumi.StringPtrInput // A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. Policies CodeSigningConfigPoliciesPtrInput + // Map of tags to assign to the object. 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 } func (CodeSigningConfigState) ElementType() reflect.Type { @@ -148,6 +169,8 @@ type codeSigningConfigArgs struct { Description *string `pulumi:"description"` // A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. Policies *CodeSigningConfigPolicies `pulumi:"policies"` + // Map of tags to assign to the object. 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 CodeSigningConfig resource. @@ -158,6 +181,8 @@ type CodeSigningConfigArgs struct { Description pulumi.StringPtrInput // A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. Policies CodeSigningConfigPoliciesPtrInput + // Map of tags to assign to the object. 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 (CodeSigningConfigArgs) ElementType() reflect.Type { @@ -277,6 +302,18 @@ func (o CodeSigningConfigOutput) Policies() CodeSigningConfigPoliciesOutput { return o.ApplyT(func(v *CodeSigningConfig) CodeSigningConfigPoliciesOutput { return v.Policies }).(CodeSigningConfigPoliciesOutput) } +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o CodeSigningConfigOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *CodeSigningConfig) 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 CodeSigningConfigOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *CodeSigningConfig) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + type CodeSigningConfigArrayOutput struct{ *pulumi.OutputState } func (CodeSigningConfigArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/lambda/eventSourceMapping.go b/sdk/go/aws/lambda/eventSourceMapping.go index 6e7577175d5..f5315c3544c 100644 --- a/sdk/go/aws/lambda/eventSourceMapping.go +++ b/sdk/go/aws/lambda/eventSourceMapping.go @@ -37,6 +37,9 @@ import ( // EventSourceArn: pulumi.Any(exampleAwsDynamodbTable.StreamArn), // FunctionName: pulumi.Any(exampleAwsLambdaFunction.Arn), // StartingPosition: pulumi.String("LATEST"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("dynamodb"), +// }, // }) // if err != nil { // return err @@ -327,6 +330,8 @@ type EventSourceMapping struct { // Additional configuration block for Amazon Managed Kafka sources. Incompatible with "selfManagedEventSource" and "selfManagedKafkaEventSourceConfig". Detailed below. AmazonManagedKafkaEventSourceConfig EventSourceMappingAmazonManagedKafkaEventSourceConfigOutput `pulumi:"amazonManagedKafkaEventSourceConfig"` + // The event source mapping ARN. + Arn pulumi.StringOutput `pulumi:"arn"` // The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. BatchSize pulumi.IntPtrOutput `pulumi:"batchSize"` // - (Optional) If the function returns an error, split the batch in two and retry. Only available for stream sources (DynamoDB and Kinesis). Defaults to `false`. @@ -341,7 +346,7 @@ type EventSourceMapping struct { EventSourceArn pulumi.StringPtrOutput `pulumi:"eventSourceArn"` // The criteria to use for [event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) Kinesis stream, DynamoDB stream, SQS queue event sources. Detailed below. FilterCriteria EventSourceMappingFilterCriteriaPtrOutput `pulumi:"filterCriteria"` - // The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) + // The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) FunctionArn pulumi.StringOutput `pulumi:"functionArn"` // The name or the ARN of the Lambda function that will be subscribing to events. FunctionName pulumi.StringOutput `pulumi:"functionName"` @@ -379,6 +384,12 @@ type EventSourceMapping struct { State pulumi.StringOutput `pulumi:"state"` // The reason the event source mapping is in its current state. StateTransitionReason pulumi.StringOutput `pulumi:"stateTransitionReason"` + // Map of tags to assign to the object. 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"` // The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. Topics pulumi.StringArrayOutput `pulumi:"topics"` // The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). @@ -422,6 +433,8 @@ func GetEventSourceMapping(ctx *pulumi.Context, type eventSourceMappingState struct { // Additional configuration block for Amazon Managed Kafka sources. Incompatible with "selfManagedEventSource" and "selfManagedKafkaEventSourceConfig". Detailed below. AmazonManagedKafkaEventSourceConfig *EventSourceMappingAmazonManagedKafkaEventSourceConfig `pulumi:"amazonManagedKafkaEventSourceConfig"` + // The event source mapping ARN. + Arn *string `pulumi:"arn"` // The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. BatchSize *int `pulumi:"batchSize"` // - (Optional) If the function returns an error, split the batch in two and retry. Only available for stream sources (DynamoDB and Kinesis). Defaults to `false`. @@ -436,7 +449,7 @@ type eventSourceMappingState struct { EventSourceArn *string `pulumi:"eventSourceArn"` // The criteria to use for [event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) Kinesis stream, DynamoDB stream, SQS queue event sources. Detailed below. FilterCriteria *EventSourceMappingFilterCriteria `pulumi:"filterCriteria"` - // The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) + // The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) FunctionArn *string `pulumi:"functionArn"` // The name or the ARN of the Lambda function that will be subscribing to events. FunctionName *string `pulumi:"functionName"` @@ -474,6 +487,12 @@ type eventSourceMappingState struct { State *string `pulumi:"state"` // The reason the event source mapping is in its current state. StateTransitionReason *string `pulumi:"stateTransitionReason"` + // Map of tags to assign to the object. 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"` // The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. Topics []string `pulumi:"topics"` // The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). @@ -485,6 +504,8 @@ type eventSourceMappingState struct { type EventSourceMappingState struct { // Additional configuration block for Amazon Managed Kafka sources. Incompatible with "selfManagedEventSource" and "selfManagedKafkaEventSourceConfig". Detailed below. AmazonManagedKafkaEventSourceConfig EventSourceMappingAmazonManagedKafkaEventSourceConfigPtrInput + // The event source mapping ARN. + Arn pulumi.StringPtrInput // The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. BatchSize pulumi.IntPtrInput // - (Optional) If the function returns an error, split the batch in two and retry. Only available for stream sources (DynamoDB and Kinesis). Defaults to `false`. @@ -499,7 +520,7 @@ type EventSourceMappingState struct { EventSourceArn pulumi.StringPtrInput // The criteria to use for [event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) Kinesis stream, DynamoDB stream, SQS queue event sources. Detailed below. FilterCriteria EventSourceMappingFilterCriteriaPtrInput - // The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) + // The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) FunctionArn pulumi.StringPtrInput // The name or the ARN of the Lambda function that will be subscribing to events. FunctionName pulumi.StringPtrInput @@ -537,6 +558,12 @@ type EventSourceMappingState struct { State pulumi.StringPtrInput // The reason the event source mapping is in its current state. StateTransitionReason pulumi.StringPtrInput + // Map of tags to assign to the object. 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 // The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. Topics pulumi.StringArrayInput // The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). @@ -594,6 +621,8 @@ type eventSourceMappingArgs struct { StartingPosition *string `pulumi:"startingPosition"` // A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `startingPosition` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. StartingPositionTimestamp *string `pulumi:"startingPositionTimestamp"` + // Map of tags to assign to the object. 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 name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. Topics []string `pulumi:"topics"` // The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). @@ -646,6 +675,8 @@ type EventSourceMappingArgs struct { StartingPosition pulumi.StringPtrInput // A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `startingPosition` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. StartingPositionTimestamp pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput // The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. Topics pulumi.StringArrayInput // The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). @@ -746,6 +777,11 @@ func (o EventSourceMappingOutput) AmazonManagedKafkaEventSourceConfig() EventSou }).(EventSourceMappingAmazonManagedKafkaEventSourceConfigOutput) } +// The event source mapping ARN. +func (o EventSourceMappingOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventSourceMapping) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + // The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. func (o EventSourceMappingOutput) BatchSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *EventSourceMapping) pulumi.IntPtrOutput { return v.BatchSize }).(pulumi.IntPtrOutput) @@ -783,7 +819,7 @@ func (o EventSourceMappingOutput) FilterCriteria() EventSourceMappingFilterCrite return o.ApplyT(func(v *EventSourceMapping) EventSourceMappingFilterCriteriaPtrOutput { return v.FilterCriteria }).(EventSourceMappingFilterCriteriaPtrOutput) } -// The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) +// The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) func (o EventSourceMappingOutput) FunctionArn() pulumi.StringOutput { return o.ApplyT(func(v *EventSourceMapping) pulumi.StringOutput { return v.FunctionArn }).(pulumi.StringOutput) } @@ -884,6 +920,18 @@ func (o EventSourceMappingOutput) StateTransitionReason() pulumi.StringOutput { return o.ApplyT(func(v *EventSourceMapping) pulumi.StringOutput { return v.StateTransitionReason }).(pulumi.StringOutput) } +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EventSourceMappingOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventSourceMapping) 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 EventSourceMappingOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventSourceMapping) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + // The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. func (o EventSourceMappingOutput) Topics() pulumi.StringArrayOutput { return o.ApplyT(func(v *EventSourceMapping) pulumi.StringArrayOutput { return v.Topics }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/lambda/layerVersion.go b/sdk/go/aws/lambda/layerVersion.go index eecede16f5c..28c9e5b1d73 100644 --- a/sdk/go/aws/lambda/layerVersion.go +++ b/sdk/go/aws/lambda/layerVersion.go @@ -36,7 +36,7 @@ import ( // Code: pulumi.NewFileArchive("lambda_layer_payload.zip"), // LayerName: pulumi.String("lambda_layer_name"), // CompatibleRuntimes: pulumi.StringArray{ -// pulumi.String("nodejs16.x"), +// pulumi.String("nodejs20.x"), // }, // }) // if err != nil { diff --git a/sdk/go/aws/lambda/permission.go b/sdk/go/aws/lambda/permission.go index b483ff0e733..f121b810546 100644 --- a/sdk/go/aws/lambda/permission.go +++ b/sdk/go/aws/lambda/permission.go @@ -62,7 +62,7 @@ import ( // Name: pulumi.String("lambda_function_name"), // Role: iamForLambda.Arn, // Handler: pulumi.String("exports.handler"), -// Runtime: pulumi.String(lambda.RuntimeNodeJS16dX), +// Runtime: pulumi.String(lambda.RuntimeNodeJS20dX), // }) // if err != nil { // return err @@ -146,7 +146,7 @@ import ( // Name: pulumi.String("lambda_called_from_sns"), // Role: defaultRole.Arn, // Handler: pulumi.String("exports.handler"), -// Runtime: pulumi.String(lambda.RuntimePython3d7), +// Runtime: pulumi.String(lambda.RuntimePython3d12), // }) // if err != nil { // return err @@ -274,7 +274,7 @@ import ( // Name: pulumi.String("lambda_called_from_cloudwatch_logs"), // Handler: pulumi.String("exports.handler"), // Role: defaultRole.Arn, -// Runtime: pulumi.String(lambda.RuntimePython3d7), +// Runtime: pulumi.String(lambda.RuntimePython3d12), // }) // if err != nil { // return err diff --git a/sdk/go/aws/s3/analyticsConfiguration.go b/sdk/go/aws/s3/analyticsConfiguration.go index 14912fb34f7..06c6aaadf3f 100644 --- a/sdk/go/aws/s3/analyticsConfiguration.go +++ b/sdk/go/aws/s3/analyticsConfiguration.go @@ -39,7 +39,7 @@ import ( // return err // } // analytics, err := s3.NewBucketV2(ctx, "analytics", &s3.BucketV2Args{ -// Bucket: pulumi.String("analytics destination"), +// Bucket: pulumi.String("analytics-destination"), // }) // if err != nil { // return err diff --git a/sdk/go/aws/s3/bucketLifecycleConfigurationV2.go b/sdk/go/aws/s3/bucketLifecycleConfigurationV2.go index 0e82acf2230..3fad809dddc 100644 --- a/sdk/go/aws/s3/bucketLifecycleConfigurationV2.go +++ b/sdk/go/aws/s3/bucketLifecycleConfigurationV2.go @@ -310,7 +310,7 @@ import ( // // ### Specifying a filter based on object size // -// Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). +// Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`objectSizeGreaterThan`) or a maximum size (`objectSizeLessThan`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: // // ```go // package main @@ -328,11 +328,17 @@ import ( // Bucket: pulumi.Any(bucket.Id), // Rules: s3.BucketLifecycleConfigurationV2RuleArray{ // &s3.BucketLifecycleConfigurationV2RuleArgs{ -// Id: pulumi.String("rule-1"), +// Id: pulumi.String("Allow small object transitions"), // Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ -// ObjectSizeGreaterThan: pulumi.String("500"), +// ObjectSizeGreaterThan: pulumi.String("1"), // }, // Status: pulumi.String("Enabled"), +// Transitions: s3.BucketLifecycleConfigurationV2RuleTransitionArray{ +// &s3.BucketLifecycleConfigurationV2RuleTransitionArgs{ +// Days: pulumi.Int(365), +// StorageClass: pulumi.String("GLACIER_IR"), +// }, +// }, // }, // }, // }) @@ -540,6 +546,8 @@ type BucketLifecycleConfigurationV2 struct { ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` // List of configuration blocks describing the rules managing the replication. See below. Rules BucketLifecycleConfigurationV2RuleArrayOutput `pulumi:"rules"` + // The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + TransitionDefaultMinimumObjectSize pulumi.StringOutput `pulumi:"transitionDefaultMinimumObjectSize"` } // NewBucketLifecycleConfigurationV2 registers a new resource with the given unique name, arguments, and options. @@ -584,6 +592,8 @@ type bucketLifecycleConfigurationV2State struct { ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` // List of configuration blocks describing the rules managing the replication. See below. Rules []BucketLifecycleConfigurationV2Rule `pulumi:"rules"` + // The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + TransitionDefaultMinimumObjectSize *string `pulumi:"transitionDefaultMinimumObjectSize"` } type BucketLifecycleConfigurationV2State struct { @@ -593,6 +603,8 @@ type BucketLifecycleConfigurationV2State struct { ExpectedBucketOwner pulumi.StringPtrInput // List of configuration blocks describing the rules managing the replication. See below. Rules BucketLifecycleConfigurationV2RuleArrayInput + // The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + TransitionDefaultMinimumObjectSize pulumi.StringPtrInput } func (BucketLifecycleConfigurationV2State) ElementType() reflect.Type { @@ -606,6 +618,8 @@ type bucketLifecycleConfigurationV2Args struct { ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` // List of configuration blocks describing the rules managing the replication. See below. Rules []BucketLifecycleConfigurationV2Rule `pulumi:"rules"` + // The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + TransitionDefaultMinimumObjectSize *string `pulumi:"transitionDefaultMinimumObjectSize"` } // The set of arguments for constructing a BucketLifecycleConfigurationV2 resource. @@ -616,6 +630,8 @@ type BucketLifecycleConfigurationV2Args struct { ExpectedBucketOwner pulumi.StringPtrInput // List of configuration blocks describing the rules managing the replication. See below. Rules BucketLifecycleConfigurationV2RuleArrayInput + // The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + TransitionDefaultMinimumObjectSize pulumi.StringPtrInput } func (BucketLifecycleConfigurationV2Args) ElementType() reflect.Type { @@ -720,6 +736,13 @@ func (o BucketLifecycleConfigurationV2Output) Rules() BucketLifecycleConfigurati return o.ApplyT(func(v *BucketLifecycleConfigurationV2) BucketLifecycleConfigurationV2RuleArrayOutput { return v.Rules }).(BucketLifecycleConfigurationV2RuleArrayOutput) } +// The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. +func (o BucketLifecycleConfigurationV2Output) TransitionDefaultMinimumObjectSize() pulumi.StringOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2) pulumi.StringOutput { + return v.TransitionDefaultMinimumObjectSize + }).(pulumi.StringOutput) +} + type BucketLifecycleConfigurationV2ArrayOutput struct{ *pulumi.OutputState } func (BucketLifecycleConfigurationV2ArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/s3/bucketNotification.go b/sdk/go/aws/s3/bucketNotification.go index dce92c8301e..64f99f2291a 100644 --- a/sdk/go/aws/s3/bucketNotification.go +++ b/sdk/go/aws/s3/bucketNotification.go @@ -233,7 +233,7 @@ import ( // Name: pulumi.String("example_lambda_name"), // Role: iamForLambda.Arn, // Handler: pulumi.String("exports.example"), -// Runtime: pulumi.String(lambda.RuntimeGo1dx), +// Runtime: pulumi.String(lambda.RuntimeNodeJS20dX), // }) // if err != nil { // return err @@ -327,7 +327,7 @@ import ( // Name: pulumi.String("example_lambda_name1"), // Role: iamForLambda.Arn, // Handler: pulumi.String("exports.example"), -// Runtime: pulumi.String(lambda.RuntimeGo1dx), +// Runtime: pulumi.String(lambda.RuntimeNodeJS20dX), // }) // if err != nil { // return err diff --git a/sdk/go/aws/s3/bucketObjectLockConfigurationV2.go b/sdk/go/aws/s3/bucketObjectLockConfigurationV2.go index 88254a51137..4baafe91612 100644 --- a/sdk/go/aws/s3/bucketObjectLockConfigurationV2.go +++ b/sdk/go/aws/s3/bucketObjectLockConfigurationV2.go @@ -69,21 +69,14 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: // -// import { -// to = aws_s3_bucket_object_lock_configuration.example -// id = "bucket-name,123456789012" -// } -// -// __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: -// -// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 diff --git a/sdk/go/aws/s3/pulumiTypes.go b/sdk/go/aws/s3/pulumiTypes.go index 86f3e5ff4a0..e93b7bd69fb 100644 --- a/sdk/go/aws/s3/pulumiTypes.go +++ b/sdk/go/aws/s3/pulumiTypes.go @@ -3173,7 +3173,7 @@ func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) Tag() BucketLifecycle } type BucketLifecycleConfigurationV2RuleFilterAnd struct { - // Minimum object size to which the rule applies. Value must be at least `0` if specified. + // Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. ObjectSizeGreaterThan *int `pulumi:"objectSizeGreaterThan"` // Maximum object size to which the rule applies. Value must be at least `1` if specified. ObjectSizeLessThan *int `pulumi:"objectSizeLessThan"` @@ -3195,7 +3195,7 @@ type BucketLifecycleConfigurationV2RuleFilterAndInput interface { } type BucketLifecycleConfigurationV2RuleFilterAndArgs struct { - // Minimum object size to which the rule applies. Value must be at least `0` if specified. + // Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. ObjectSizeGreaterThan pulumi.IntPtrInput `pulumi:"objectSizeGreaterThan"` // Maximum object size to which the rule applies. Value must be at least `1` if specified. ObjectSizeLessThan pulumi.IntPtrInput `pulumi:"objectSizeLessThan"` @@ -3282,7 +3282,7 @@ func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ToBucketLifecycleConf }).(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) } -// Minimum object size to which the rule applies. Value must be at least `0` if specified. +// Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ObjectSizeGreaterThan() pulumi.IntPtrOutput { return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterAnd) *int { return v.ObjectSizeGreaterThan }).(pulumi.IntPtrOutput) } @@ -3326,7 +3326,7 @@ func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) Elem() BucketLifec }).(BucketLifecycleConfigurationV2RuleFilterAndOutput) } -// Minimum object size to which the rule applies. Value must be at least `0` if specified. +// Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ObjectSizeGreaterThan() pulumi.IntPtrOutput { return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) *int { if v == nil { diff --git a/sdk/go/aws/securityhub/getStandardsControlAssociations.go b/sdk/go/aws/securityhub/getStandardsControlAssociations.go index 730f1c1d824..dbbffa28a6d 100644 --- a/sdk/go/aws/securityhub/getStandardsControlAssociations.go +++ b/sdk/go/aws/securityhub/getStandardsControlAssociations.go @@ -58,9 +58,6 @@ func GetStandardsControlAssociations(ctx *pulumi.Context, args *GetStandardsCont type GetStandardsControlAssociationsArgs struct { // The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). SecurityControlId string `pulumi:"securityControlId"` - // A list that provides the status and other details for each security control that applies to each enabled standard. - // See `standardsControlAssociations` below. - StandardsControlAssociations []GetStandardsControlAssociationsStandardsControlAssociation `pulumi:"standardsControlAssociations"` } // A collection of values returned by getStandardsControlAssociations. @@ -96,9 +93,6 @@ func GetStandardsControlAssociationsOutput(ctx *pulumi.Context, args GetStandard type GetStandardsControlAssociationsOutputArgs struct { // The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). SecurityControlId pulumi.StringInput `pulumi:"securityControlId"` - // A list that provides the status and other details for each security control that applies to each enabled standard. - // See `standardsControlAssociations` below. - StandardsControlAssociations GetStandardsControlAssociationsStandardsControlAssociationArrayInput `pulumi:"standardsControlAssociations"` } func (GetStandardsControlAssociationsOutputArgs) ElementType() reflect.Type { diff --git a/sdk/go/aws/securityhub/init.go b/sdk/go/aws/securityhub/init.go index 50d5c767c25..d5fefb57a46 100644 --- a/sdk/go/aws/securityhub/init.go +++ b/sdk/go/aws/securityhub/init.go @@ -47,6 +47,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ProductSubscription{} case "aws:securityhub/standardsControl:StandardsControl": r = &StandardsControl{} + case "aws:securityhub/standardsControlAssociation:StandardsControlAssociation": + r = &StandardsControlAssociation{} case "aws:securityhub/standardsSubscription:StandardsSubscription": r = &StandardsSubscription{} default: @@ -127,6 +129,11 @@ func init() { "securityhub/standardsControl", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "securityhub/standardsControlAssociation", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "securityhub/standardsSubscription", diff --git a/sdk/go/aws/securityhub/standardsControlAssociation.go b/sdk/go/aws/securityhub/standardsControlAssociation.go new file mode 100644 index 00000000000..1e8668fb8d8 --- /dev/null +++ b/sdk/go/aws/securityhub/standardsControlAssociation.go @@ -0,0 +1,324 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Basic usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := securityhub.NewAccount(ctx, "example", nil) +// if err != nil { +// return err +// } +// cisAwsFoundationsBenchmark, err := securityhub.NewStandardsSubscription(ctx, "cis_aws_foundations_benchmark", &securityhub.StandardsSubscriptionArgs{ +// StandardsArn: pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// example, +// })) +// if err != nil { +// return err +// } +// _, err = aws.NewStandardsControlAssociation(ctx, "cis_aws_foundations_benchmark_disable_iam_1", &aws.StandardsControlAssociationArgs{ +// StandardsArn: cisAwsFoundationsBenchmark.StandardsArn, +// SecurityControlId: "IAM.1", +// AssociationStatus: "DISABLED", +// UpdatedReason: "Not needed", +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type StandardsControlAssociation struct { + pulumi.CustomResourceState + + // The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + AssociationStatus pulumi.StringOutput `pulumi:"associationStatus"` + // The unique identifier for the security control whose enablement status you want to update. + SecurityControlId pulumi.StringOutput `pulumi:"securityControlId"` + // The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + // + // The following arguments are optional: + StandardsArn pulumi.StringOutput `pulumi:"standardsArn"` + // The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + UpdatedReason pulumi.StringPtrOutput `pulumi:"updatedReason"` +} + +// NewStandardsControlAssociation registers a new resource with the given unique name, arguments, and options. +func NewStandardsControlAssociation(ctx *pulumi.Context, + name string, args *StandardsControlAssociationArgs, opts ...pulumi.ResourceOption) (*StandardsControlAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AssociationStatus == nil { + return nil, errors.New("invalid value for required argument 'AssociationStatus'") + } + if args.SecurityControlId == nil { + return nil, errors.New("invalid value for required argument 'SecurityControlId'") + } + if args.StandardsArn == nil { + return nil, errors.New("invalid value for required argument 'StandardsArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource StandardsControlAssociation + err := ctx.RegisterResource("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStandardsControlAssociation gets an existing StandardsControlAssociation 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 GetStandardsControlAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StandardsControlAssociationState, opts ...pulumi.ResourceOption) (*StandardsControlAssociation, error) { + var resource StandardsControlAssociation + err := ctx.ReadResource("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StandardsControlAssociation resources. +type standardsControlAssociationState struct { + // The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + AssociationStatus *string `pulumi:"associationStatus"` + // The unique identifier for the security control whose enablement status you want to update. + SecurityControlId *string `pulumi:"securityControlId"` + // The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + // + // The following arguments are optional: + StandardsArn *string `pulumi:"standardsArn"` + // The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + UpdatedReason *string `pulumi:"updatedReason"` +} + +type StandardsControlAssociationState struct { + // The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + AssociationStatus pulumi.StringPtrInput + // The unique identifier for the security control whose enablement status you want to update. + SecurityControlId pulumi.StringPtrInput + // The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + // + // The following arguments are optional: + StandardsArn pulumi.StringPtrInput + // The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + UpdatedReason pulumi.StringPtrInput +} + +func (StandardsControlAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*standardsControlAssociationState)(nil)).Elem() +} + +type standardsControlAssociationArgs struct { + // The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + AssociationStatus string `pulumi:"associationStatus"` + // The unique identifier for the security control whose enablement status you want to update. + SecurityControlId string `pulumi:"securityControlId"` + // The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + // + // The following arguments are optional: + StandardsArn string `pulumi:"standardsArn"` + // The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + UpdatedReason *string `pulumi:"updatedReason"` +} + +// The set of arguments for constructing a StandardsControlAssociation resource. +type StandardsControlAssociationArgs struct { + // The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + AssociationStatus pulumi.StringInput + // The unique identifier for the security control whose enablement status you want to update. + SecurityControlId pulumi.StringInput + // The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + // + // The following arguments are optional: + StandardsArn pulumi.StringInput + // The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + UpdatedReason pulumi.StringPtrInput +} + +func (StandardsControlAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*standardsControlAssociationArgs)(nil)).Elem() +} + +type StandardsControlAssociationInput interface { + pulumi.Input + + ToStandardsControlAssociationOutput() StandardsControlAssociationOutput + ToStandardsControlAssociationOutputWithContext(ctx context.Context) StandardsControlAssociationOutput +} + +func (*StandardsControlAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**StandardsControlAssociation)(nil)).Elem() +} + +func (i *StandardsControlAssociation) ToStandardsControlAssociationOutput() StandardsControlAssociationOutput { + return i.ToStandardsControlAssociationOutputWithContext(context.Background()) +} + +func (i *StandardsControlAssociation) ToStandardsControlAssociationOutputWithContext(ctx context.Context) StandardsControlAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StandardsControlAssociationOutput) +} + +// StandardsControlAssociationArrayInput is an input type that accepts StandardsControlAssociationArray and StandardsControlAssociationArrayOutput values. +// You can construct a concrete instance of `StandardsControlAssociationArrayInput` via: +// +// StandardsControlAssociationArray{ StandardsControlAssociationArgs{...} } +type StandardsControlAssociationArrayInput interface { + pulumi.Input + + ToStandardsControlAssociationArrayOutput() StandardsControlAssociationArrayOutput + ToStandardsControlAssociationArrayOutputWithContext(context.Context) StandardsControlAssociationArrayOutput +} + +type StandardsControlAssociationArray []StandardsControlAssociationInput + +func (StandardsControlAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StandardsControlAssociation)(nil)).Elem() +} + +func (i StandardsControlAssociationArray) ToStandardsControlAssociationArrayOutput() StandardsControlAssociationArrayOutput { + return i.ToStandardsControlAssociationArrayOutputWithContext(context.Background()) +} + +func (i StandardsControlAssociationArray) ToStandardsControlAssociationArrayOutputWithContext(ctx context.Context) StandardsControlAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StandardsControlAssociationArrayOutput) +} + +// StandardsControlAssociationMapInput is an input type that accepts StandardsControlAssociationMap and StandardsControlAssociationMapOutput values. +// You can construct a concrete instance of `StandardsControlAssociationMapInput` via: +// +// StandardsControlAssociationMap{ "key": StandardsControlAssociationArgs{...} } +type StandardsControlAssociationMapInput interface { + pulumi.Input + + ToStandardsControlAssociationMapOutput() StandardsControlAssociationMapOutput + ToStandardsControlAssociationMapOutputWithContext(context.Context) StandardsControlAssociationMapOutput +} + +type StandardsControlAssociationMap map[string]StandardsControlAssociationInput + +func (StandardsControlAssociationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StandardsControlAssociation)(nil)).Elem() +} + +func (i StandardsControlAssociationMap) ToStandardsControlAssociationMapOutput() StandardsControlAssociationMapOutput { + return i.ToStandardsControlAssociationMapOutputWithContext(context.Background()) +} + +func (i StandardsControlAssociationMap) ToStandardsControlAssociationMapOutputWithContext(ctx context.Context) StandardsControlAssociationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(StandardsControlAssociationMapOutput) +} + +type StandardsControlAssociationOutput struct{ *pulumi.OutputState } + +func (StandardsControlAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StandardsControlAssociation)(nil)).Elem() +} + +func (o StandardsControlAssociationOutput) ToStandardsControlAssociationOutput() StandardsControlAssociationOutput { + return o +} + +func (o StandardsControlAssociationOutput) ToStandardsControlAssociationOutputWithContext(ctx context.Context) StandardsControlAssociationOutput { + return o +} + +// The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. +func (o StandardsControlAssociationOutput) AssociationStatus() pulumi.StringOutput { + return o.ApplyT(func(v *StandardsControlAssociation) pulumi.StringOutput { return v.AssociationStatus }).(pulumi.StringOutput) +} + +// The unique identifier for the security control whose enablement status you want to update. +func (o StandardsControlAssociationOutput) SecurityControlId() pulumi.StringOutput { + return o.ApplyT(func(v *StandardsControlAssociation) pulumi.StringOutput { return v.SecurityControlId }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. +// +// The following arguments are optional: +func (o StandardsControlAssociationOutput) StandardsArn() pulumi.StringOutput { + return o.ApplyT(func(v *StandardsControlAssociation) pulumi.StringOutput { return v.StandardsArn }).(pulumi.StringOutput) +} + +// The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. +func (o StandardsControlAssociationOutput) UpdatedReason() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StandardsControlAssociation) pulumi.StringPtrOutput { return v.UpdatedReason }).(pulumi.StringPtrOutput) +} + +type StandardsControlAssociationArrayOutput struct{ *pulumi.OutputState } + +func (StandardsControlAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StandardsControlAssociation)(nil)).Elem() +} + +func (o StandardsControlAssociationArrayOutput) ToStandardsControlAssociationArrayOutput() StandardsControlAssociationArrayOutput { + return o +} + +func (o StandardsControlAssociationArrayOutput) ToStandardsControlAssociationArrayOutputWithContext(ctx context.Context) StandardsControlAssociationArrayOutput { + return o +} + +func (o StandardsControlAssociationArrayOutput) Index(i pulumi.IntInput) StandardsControlAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StandardsControlAssociation { + return vs[0].([]*StandardsControlAssociation)[vs[1].(int)] + }).(StandardsControlAssociationOutput) +} + +type StandardsControlAssociationMapOutput struct{ *pulumi.OutputState } + +func (StandardsControlAssociationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StandardsControlAssociation)(nil)).Elem() +} + +func (o StandardsControlAssociationMapOutput) ToStandardsControlAssociationMapOutput() StandardsControlAssociationMapOutput { + return o +} + +func (o StandardsControlAssociationMapOutput) ToStandardsControlAssociationMapOutputWithContext(ctx context.Context) StandardsControlAssociationMapOutput { + return o +} + +func (o StandardsControlAssociationMapOutput) MapIndex(k pulumi.StringInput) StandardsControlAssociationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StandardsControlAssociation { + return vs[0].(map[string]*StandardsControlAssociation)[vs[1].(string)] + }).(StandardsControlAssociationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StandardsControlAssociationInput)(nil)).Elem(), &StandardsControlAssociation{}) + pulumi.RegisterInputType(reflect.TypeOf((*StandardsControlAssociationArrayInput)(nil)).Elem(), StandardsControlAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StandardsControlAssociationMapInput)(nil)).Elem(), StandardsControlAssociationMap{}) + pulumi.RegisterOutputType(StandardsControlAssociationOutput{}) + pulumi.RegisterOutputType(StandardsControlAssociationArrayOutput{}) + pulumi.RegisterOutputType(StandardsControlAssociationMapOutput{}) +} diff --git a/sdk/go/aws/shield/applicationLayerAutomaticResponse.go b/sdk/go/aws/shield/applicationLayerAutomaticResponse.go index 4862f15d13f..82a2db4c0f0 100644 --- a/sdk/go/aws/shield/applicationLayerAutomaticResponse.go +++ b/sdk/go/aws/shield/applicationLayerAutomaticResponse.go @@ -15,6 +15,52 @@ import ( // Resource for managing an AWS Shield Application Layer Automatic Response for automatic DDoS mitigation. // // ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/shield" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := aws.GetRegion(ctx, nil, nil) +// if err != nil { +// return err +// } +// currentGetCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil) +// if err != nil { +// return err +// } +// currentGetPartition, err := aws.GetPartition(ctx, nil, nil) +// if err != nil { +// return err +// } +// cfg := config.New(ctx, "") +// // The Cloudfront Distribution on which to enable the Application Layer Automatic Response. +// distributionId := cfg.Require("distributionId") +// _, err = shield.NewApplicationLayerAutomaticResponse(ctx, "example", &shield.ApplicationLayerAutomaticResponseArgs{ +// ResourceArn: pulumi.Sprintf("arn:%v:cloudfront:%v:distribution/%v", currentGetPartition.Partition, currentGetCallerIdentity.AccountId, distributionId), +// Action: pulumi.String("COUNT"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type ApplicationLayerAutomaticResponse struct { pulumi.CustomResourceState diff --git a/sdk/go/aws/shield/drtAccessRoleArnAssociation.go b/sdk/go/aws/shield/drtAccessRoleArnAssociation.go index c93734c1e86..a5c53e2e238 100644 --- a/sdk/go/aws/shield/drtAccessRoleArnAssociation.go +++ b/sdk/go/aws/shield/drtAccessRoleArnAssociation.go @@ -51,22 +51,22 @@ import ( // return err // } // json0 := string(tmpJSON0) -// test, err := iam.NewRole(ctx, "test", &iam.RoleArgs{ -// Name: pulumi.Any(awsShieldDrtAccessRoleArn), +// exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// Name: pulumi.String("example-role"), // AssumeRolePolicy: pulumi.String(json0), // }) // if err != nil { // return err // } -// _, err = iam.NewRolePolicyAttachment(ctx, "test", &iam.RolePolicyAttachmentArgs{ -// Role: test.Name, -// PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy"), +// _, err = shield.NewDrtAccessRoleArnAssociation(ctx, "example", &shield.DrtAccessRoleArnAssociationArgs{ +// RoleArn: exampleRole.Arn, // }) // if err != nil { // return err // } -// _, err = shield.NewDrtAccessRoleArnAssociation(ctx, "test", &shield.DrtAccessRoleArnAssociationArgs{ -// RoleArn: test.Arn, +// _, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{ +// Role: exampleRole.Name, +// PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy"), // }) // if err != nil { // return err diff --git a/sdk/go/aws/shield/proactiveEngagement.go b/sdk/go/aws/shield/proactiveEngagement.go index 56421ae4bc3..753be3c2e5c 100644 --- a/sdk/go/aws/shield/proactiveEngagement.go +++ b/sdk/go/aws/shield/proactiveEngagement.go @@ -51,54 +51,54 @@ import ( // return err // } // json0 := string(tmpJSON0) -// example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ -// Name: pulumi.Any(awsShieldDrtAccessRoleArn), +// exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// Name: pulumi.String("example-role"), // AssumeRolePolicy: pulumi.String(json0), // }) // if err != nil { // return err // } -// _, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{ -// Role: example.Name, -// PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy"), -// }) -// if err != nil { -// return err -// } -// _, err = shield.NewDrtAccessRoleArnAssociation(ctx, "example", &shield.DrtAccessRoleArnAssociationArgs{ -// RoleArn: example.Arn, -// }) -// if err != nil { -// return err -// } -// _, err = shield.NewProtectionGroup(ctx, "test", &shield.ProtectionGroupArgs{ -// ProtectionGroupId: pulumi.String("example"), -// Aggregation: pulumi.String("MAX"), -// Pattern: pulumi.String("ALL"), +// exampleDrtAccessRoleArnAssociation, err := shield.NewDrtAccessRoleArnAssociation(ctx, "example", &shield.DrtAccessRoleArnAssociationArgs{ +// RoleArn: exampleRole.Arn, // }) // if err != nil { // return err // } -// _, err = shield.NewProactiveEngagement(ctx, "test", &shield.ProactiveEngagementArgs{ +// _, err = shield.NewProactiveEngagement(ctx, "example", &shield.ProactiveEngagementArgs{ // Enabled: pulumi.Bool(true), // EmergencyContacts: shield.ProactiveEngagementEmergencyContactArray{ // &shield.ProactiveEngagementEmergencyContactArgs{ // ContactNotes: pulumi.String("Notes"), -// EmailAddress: pulumi.String("test@company.com"), +// EmailAddress: pulumi.String("contact1@example.com"), // PhoneNumber: pulumi.String("+12358132134"), // }, // &shield.ProactiveEngagementEmergencyContactArgs{ // ContactNotes: pulumi.String("Notes 2"), -// EmailAddress: pulumi.String("test2@company.com"), +// EmailAddress: pulumi.String("contact2@example.com"), // PhoneNumber: pulumi.String("+12358132134"), // }, // }, // }, pulumi.DependsOn([]pulumi.Resource{ -// testAwsShieldDrtAccessRoleArnAssociation, +// exampleDrtAccessRoleArnAssociation, // })) // if err != nil { // return err // } +// _, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{ +// Role: exampleRole.Name, +// PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy"), +// }) +// if err != nil { +// return err +// } +// _, err = shield.NewProtectionGroup(ctx, "example", &shield.ProtectionGroupArgs{ +// ProtectionGroupId: pulumi.String("example"), +// Aggregation: pulumi.String("MAX"), +// Pattern: pulumi.String("ALL"), +// }) +// if err != nil { +// return err +// } // return nil // }) // } diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigateway/Integration.java b/sdk/java/src/main/java/com/pulumi/aws/apigateway/Integration.java index 668b4891550..eed2c4ba7ee 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/apigateway/Integration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/apigateway/Integration.java @@ -175,7 +175,7 @@ * .name("mylambda") * .role(role.arn()) * .handler("lambda.lambda_handler") - * .runtime("python3.7") + * .runtime("python3.12") * .sourceCodeHash(StdFunctions.filebase64sha256(Filebase64sha256Args.builder() * .input("lambda.zip") * .build()).result()) diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigatewayv2/Integration.java b/sdk/java/src/main/java/com/pulumi/aws/apigatewayv2/Integration.java index cc52ddfb958..d9b9209d166 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/apigatewayv2/Integration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/apigatewayv2/Integration.java @@ -94,7 +94,7 @@ * .name("Example") * .role(exampleAwsIamRole.arn()) * .handler("index.handler") - * .runtime("nodejs16.x") + * .runtime("nodejs20.x") * .build()); * * var exampleIntegration = new Integration("exampleIntegration", IntegrationArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/appflow/ConnectorProfile.java b/sdk/java/src/main/java/com/pulumi/aws/appflow/ConnectorProfile.java index 6519a0c11c0..b42c0cf1022 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/appflow/ConnectorProfile.java +++ b/sdk/java/src/main/java/com/pulumi/aws/appflow/ConnectorProfile.java @@ -83,7 +83,7 @@ * .build()); * * var exampleBucketV2 = new BucketV2("exampleBucketV2", BucketV2Args.builder() - * .bucket("example_bucket") + * .bucket("example-bucket") * .build()); * * var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVault.java b/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVault.java new file mode 100644 index 00000000000..4cb79f14e71 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVault.java @@ -0,0 +1,223 @@ +// *** 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.backup; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.backup.LogicallyAirGappedVaultArgs; +import com.pulumi.aws.backup.inputs.LogicallyAirGappedVaultState; +import com.pulumi.aws.backup.outputs.LogicallyAirGappedVaultTimeouts; +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.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Backup Logically Air Gapped Vault. + * + * ## 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.backup.LogicallyAirGappedVault;
+ * import com.pulumi.aws.backup.LogicallyAirGappedVaultArgs;
+ * 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 LogicallyAirGappedVault("example", LogicallyAirGappedVaultArgs.builder()
+ *             .name("lag-example-vault")
+ *             .maxRetentionDays(7)
+ *             .minRetentionDays(7)
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: + * + * ```sh + * $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault + * ``` + * + */ +@ResourceType(type="aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault") +public class LogicallyAirGappedVault extends com.pulumi.resources.CustomResource { + /** + * The ARN of the Logically Air Gapped Backup Vault. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The ARN of the Logically Air Gapped Backup Vault. + * + */ + public Output arn() { + return this.arn; + } + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Export(name="maxRetentionDays", refs={Integer.class}, tree="[0]") + private Output maxRetentionDays; + + /** + * @return Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Output maxRetentionDays() { + return this.maxRetentionDays; + } + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Export(name="minRetentionDays", refs={Integer.class}, tree="[0]") + private Output minRetentionDays; + + /** + * @return Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Output minRetentionDays() { + return this.minRetentionDays; + } + /** + * Name of the Logically Air Gapped Backup Vault to create. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the Logically Air Gapped Backup Vault to create. + * + */ + public Output name() { + return this.name; + } + /** + * Metadata that you can assign to help organize the resources that you create. 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 Metadata that you can assign to help organize the resources that you create. 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={LogicallyAirGappedVaultTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public LogicallyAirGappedVault(java.lang.String name) { + this(name, LogicallyAirGappedVaultArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public LogicallyAirGappedVault(java.lang.String name, LogicallyAirGappedVaultArgs 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 LogicallyAirGappedVault(java.lang.String name, LogicallyAirGappedVaultArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private LogicallyAirGappedVault(java.lang.String name, Output id, @Nullable LogicallyAirGappedVaultState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault", name, state, makeResourceOptions(options, id), false); + } + + private static LogicallyAirGappedVaultArgs makeArgs(LogicallyAirGappedVaultArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LogicallyAirGappedVaultArgs.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 LogicallyAirGappedVault get(java.lang.String name, Output id, @Nullable LogicallyAirGappedVaultState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new LogicallyAirGappedVault(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVaultArgs.java b/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVaultArgs.java new file mode 100644 index 00000000000..abfa2771729 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/backup/LogicallyAirGappedVaultArgs.java @@ -0,0 +1,221 @@ +// *** 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.backup; + +import com.pulumi.aws.backup.inputs.LogicallyAirGappedVaultTimeoutsArgs; +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.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LogicallyAirGappedVaultArgs extends com.pulumi.resources.ResourceArgs { + + public static final LogicallyAirGappedVaultArgs Empty = new LogicallyAirGappedVaultArgs(); + + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Import(name="maxRetentionDays", required=true) + private Output maxRetentionDays; + + /** + * @return Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Output maxRetentionDays() { + return this.maxRetentionDays; + } + + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Import(name="minRetentionDays", required=true) + private Output minRetentionDays; + + /** + * @return Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Output minRetentionDays() { + return this.minRetentionDays; + } + + /** + * Name of the Logically Air Gapped Backup Vault to create. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the Logically Air Gapped Backup Vault to create. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Metadata that you can assign to help organize the resources that you create. 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 Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultArgs() {} + + private LogicallyAirGappedVaultArgs(LogicallyAirGappedVaultArgs $) { + this.maxRetentionDays = $.maxRetentionDays; + this.minRetentionDays = $.minRetentionDays; + this.name = $.name; + this.tags = $.tags; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LogicallyAirGappedVaultArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LogicallyAirGappedVaultArgs $; + + public Builder() { + $ = new LogicallyAirGappedVaultArgs(); + } + + public Builder(LogicallyAirGappedVaultArgs defaults) { + $ = new LogicallyAirGappedVaultArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param maxRetentionDays Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder maxRetentionDays(Output maxRetentionDays) { + $.maxRetentionDays = maxRetentionDays; + return this; + } + + /** + * @param maxRetentionDays Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder maxRetentionDays(Integer maxRetentionDays) { + return maxRetentionDays(Output.of(maxRetentionDays)); + } + + /** + * @param minRetentionDays Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder minRetentionDays(Output minRetentionDays) { + $.minRetentionDays = minRetentionDays; + return this; + } + + /** + * @param minRetentionDays Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder minRetentionDays(Integer minRetentionDays) { + return minRetentionDays(Output.of(minRetentionDays)); + } + + /** + * @param name Name of the Logically Air Gapped Backup Vault to create. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the Logically Air Gapped Backup Vault to create. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param tags Metadata that you can assign to help organize the resources that you create. 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 Metadata that you can assign to help organize the resources that you create. 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(LogicallyAirGappedVaultTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public LogicallyAirGappedVaultArgs build() { + if ($.maxRetentionDays == null) { + throw new MissingRequiredPropertyException("LogicallyAirGappedVaultArgs", "maxRetentionDays"); + } + if ($.minRetentionDays == null) { + throw new MissingRequiredPropertyException("LogicallyAirGappedVaultArgs", "minRetentionDays"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultState.java b/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultState.java new file mode 100644 index 00000000000..28e4251bda7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultState.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.backup.inputs; + +import com.pulumi.aws.backup.inputs.LogicallyAirGappedVaultTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +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 LogicallyAirGappedVaultState extends com.pulumi.resources.ResourceArgs { + + public static final LogicallyAirGappedVaultState Empty = new LogicallyAirGappedVaultState(); + + /** + * The ARN of the Logically Air Gapped Backup Vault. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The ARN of the Logically Air Gapped Backup Vault. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Import(name="maxRetentionDays") + private @Nullable Output maxRetentionDays; + + /** + * @return Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Optional> maxRetentionDays() { + return Optional.ofNullable(this.maxRetentionDays); + } + + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + @Import(name="minRetentionDays") + private @Nullable Output minRetentionDays; + + /** + * @return Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + */ + public Optional> minRetentionDays() { + return Optional.ofNullable(this.minRetentionDays); + } + + /** + * Name of the Logically Air Gapped Backup Vault to create. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the Logically Air Gapped Backup Vault to create. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Metadata that you can assign to help organize the resources that you create. 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 Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVaultState() {} + + private LogicallyAirGappedVaultState(LogicallyAirGappedVaultState $) { + this.arn = $.arn; + this.maxRetentionDays = $.maxRetentionDays; + this.minRetentionDays = $.minRetentionDays; + this.name = $.name; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LogicallyAirGappedVaultState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LogicallyAirGappedVaultState $; + + public Builder() { + $ = new LogicallyAirGappedVaultState(); + } + + public Builder(LogicallyAirGappedVaultState defaults) { + $ = new LogicallyAirGappedVaultState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The ARN of the Logically Air Gapped Backup Vault. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The ARN of the Logically Air Gapped Backup Vault. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param maxRetentionDays Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder maxRetentionDays(@Nullable Output maxRetentionDays) { + $.maxRetentionDays = maxRetentionDays; + return this; + } + + /** + * @param maxRetentionDays Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder maxRetentionDays(Integer maxRetentionDays) { + return maxRetentionDays(Output.of(maxRetentionDays)); + } + + /** + * @param minRetentionDays Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder minRetentionDays(@Nullable Output minRetentionDays) { + $.minRetentionDays = minRetentionDays; + return this; + } + + /** + * @param minRetentionDays Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + * + * @return builder + * + */ + public Builder minRetentionDays(Integer minRetentionDays) { + return minRetentionDays(Output.of(minRetentionDays)); + } + + /** + * @param name Name of the Logically Air Gapped Backup Vault to create. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the Logically Air Gapped Backup Vault to create. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param tags Metadata that you can assign to help organize the resources that you create. 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 Metadata that you can assign to help organize the resources that you create. 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(LogicallyAirGappedVaultTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public LogicallyAirGappedVaultState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultTimeoutsArgs.java new file mode 100644 index 00000000000..e469b21eb65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/backup/inputs/LogicallyAirGappedVaultTimeoutsArgs.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.backup.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 LogicallyAirGappedVaultTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final LogicallyAirGappedVaultTimeoutsArgs Empty = new LogicallyAirGappedVaultTimeoutsArgs(); + + /** + * 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 LogicallyAirGappedVaultTimeoutsArgs() {} + + private LogicallyAirGappedVaultTimeoutsArgs(LogicallyAirGappedVaultTimeoutsArgs $) { + this.create = $.create; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LogicallyAirGappedVaultTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LogicallyAirGappedVaultTimeoutsArgs $; + + public Builder() { + $ = new LogicallyAirGappedVaultTimeoutsArgs(); + } + + public Builder(LogicallyAirGappedVaultTimeoutsArgs defaults) { + $ = new LogicallyAirGappedVaultTimeoutsArgs(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 LogicallyAirGappedVaultTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/backup/outputs/LogicallyAirGappedVaultTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/backup/outputs/LogicallyAirGappedVaultTimeouts.java new file mode 100644 index 00000000000..610ba6141ec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/backup/outputs/LogicallyAirGappedVaultTimeouts.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.backup.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 LogicallyAirGappedVaultTimeouts { + /** + * @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 LogicallyAirGappedVaultTimeouts() {} + /** + * @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(LogicallyAirGappedVaultTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + public Builder() {} + public Builder(LogicallyAirGappedVaultTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + public LogicallyAirGappedVaultTimeouts build() { + final var _resultValue = new LogicallyAirGappedVaultTimeouts(); + _resultValue.create = create; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java index bd4e324e2fa..376b218986e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroup.java @@ -9,6 +9,7 @@ import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupActionGroupExecutor; import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupApiSchema; import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupFunctionSchema; +import com.pulumi.aws.bedrock.outputs.AgentAgentActionGroupTimeouts; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -393,6 +394,20 @@ public Output> functionSchema() { public Output> parentActionGroupSignature() { return Codegen.optional(this.parentActionGroupSignature); } + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + @Export(name="prepareAgent", refs={Boolean.class}, tree="[0]") + private Output prepareAgent; + + /** + * @return Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + public Output prepareAgent() { + return this.prepareAgent; + } /** * Whether the in-use check is skipped when deleting the action group. * @@ -407,6 +422,12 @@ public Output> parentActionGroupSignature() { public Output skipResourceInUseCheck() { return this.skipResourceInUseCheck; } + @Export(name="timeouts", refs={AgentAgentActionGroupTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java index e52ac6a65be..ee7a5bec773 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentActionGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs; +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupTimeoutsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -163,6 +164,21 @@ public Optional> parentActionGroupSignature() { return Optional.ofNullable(this.parentActionGroupSignature); } + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + @Import(name="prepareAgent") + private @Nullable Output prepareAgent; + + /** + * @return Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + public Optional> prepareAgent() { + return Optional.ofNullable(this.prepareAgent); + } + /** * Whether the in-use check is skipped when deleting the action group. * @@ -178,6 +194,13 @@ public Optional> skipResourceInUseCheck() { return Optional.ofNullable(this.skipResourceInUseCheck); } + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + private AgentAgentActionGroupArgs() {} private AgentAgentActionGroupArgs(AgentAgentActionGroupArgs $) { @@ -190,7 +213,9 @@ private AgentAgentActionGroupArgs(AgentAgentActionGroupArgs $) { this.description = $.description; this.functionSchema = $.functionSchema; this.parentActionGroupSignature = $.parentActionGroupSignature; + this.prepareAgent = $.prepareAgent; this.skipResourceInUseCheck = $.skipResourceInUseCheck; + this.timeouts = $.timeouts; } public static Builder builder() { @@ -408,6 +433,27 @@ public Builder parentActionGroupSignature(String parentActionGroupSignature) { return parentActionGroupSignature(Output.of(parentActionGroupSignature)); } + /** + * @param prepareAgent Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + * @return builder + * + */ + public Builder prepareAgent(@Nullable Output prepareAgent) { + $.prepareAgent = prepareAgent; + return this; + } + + /** + * @param prepareAgent Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + * @return builder + * + */ + public Builder prepareAgent(Boolean prepareAgent) { + return prepareAgent(Output.of(prepareAgent)); + } + /** * @param skipResourceInUseCheck Whether the in-use check is skipped when deleting the action group. * @@ -429,6 +475,15 @@ public Builder skipResourceInUseCheck(Boolean skipResourceInUseCheck) { return skipResourceInUseCheck(Output.of(skipResourceInUseCheck)); } + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(AgentAgentActionGroupTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + public AgentAgentActionGroupArgs build() { if ($.actionGroupName == null) { throw new MissingRequiredPropertyException("AgentAgentActionGroupArgs", "actionGroupName"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersion.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersion.java new file mode 100644 index 00000000000..8498cdf19db --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersion.java @@ -0,0 +1,194 @@ +// *** 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.bedrock; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.bedrock.GuardrailVersionArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailVersionState; +import com.pulumi.aws.bedrock.outputs.GuardrailVersionTimeouts; +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.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Bedrock Guardrail Version. + * + * ## 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.bedrock.GuardrailVersion;
+ * import com.pulumi.aws.bedrock.GuardrailVersionArgs;
+ * 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 GuardrailVersion("example", GuardrailVersionArgs.builder()
+ *             .description("example")
+ *             .guardrailArn(test.guardrailArn())
+ *             .skipDestroy(true)
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: + * + * ```sh + * $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 + * ``` + * + */ +@ResourceType(type="aws:bedrock/guardrailVersion:GuardrailVersion") +public class GuardrailVersion extends com.pulumi.resources.CustomResource { + /** + * Description of the Guardrail version. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of the Guardrail version. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Guardrail ARN. + * + * The following arguments are optional: + * + */ + @Export(name="guardrailArn", refs={String.class}, tree="[0]") + private Output guardrailArn; + + /** + * @return Guardrail ARN. + * + * The following arguments are optional: + * + */ + public Output guardrailArn() { + return this.guardrailArn; + } + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + @Export(name="skipDestroy", refs={Boolean.class}, tree="[0]") + private Output skipDestroy; + + /** + * @return Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + public Output> skipDestroy() { + return Codegen.optional(this.skipDestroy); + } + @Export(name="timeouts", refs={GuardrailVersionTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * Guardrail version. + * + */ + @Export(name="version", refs={String.class}, tree="[0]") + private Output version; + + /** + * @return Guardrail version. + * + */ + public Output version() { + return this.version; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GuardrailVersion(java.lang.String name) { + this(name, GuardrailVersionArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GuardrailVersion(java.lang.String name, GuardrailVersionArgs 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 GuardrailVersion(java.lang.String name, GuardrailVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:bedrock/guardrailVersion:GuardrailVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GuardrailVersion(java.lang.String name, Output id, @Nullable GuardrailVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:bedrock/guardrailVersion:GuardrailVersion", name, state, makeResourceOptions(options, id), false); + } + + private static GuardrailVersionArgs makeArgs(GuardrailVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GuardrailVersionArgs.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 GuardrailVersion get(java.lang.String name, Output id, @Nullable GuardrailVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GuardrailVersion(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersionArgs.java new file mode 100644 index 00000000000..37abc6dd01e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailVersionArgs.java @@ -0,0 +1,188 @@ +// *** 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.bedrock; + +import com.pulumi.aws.bedrock.inputs.GuardrailVersionTimeoutsArgs; +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.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailVersionArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailVersionArgs Empty = new GuardrailVersionArgs(); + + /** + * Description of the Guardrail version. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the Guardrail version. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Guardrail ARN. + * + * The following arguments are optional: + * + */ + @Import(name="guardrailArn", required=true) + private Output guardrailArn; + + /** + * @return Guardrail ARN. + * + * The following arguments are optional: + * + */ + public Output guardrailArn() { + return this.guardrailArn; + } + + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + @Import(name="skipDestroy") + private @Nullable Output skipDestroy; + + /** + * @return Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + public Optional> skipDestroy() { + return Optional.ofNullable(this.skipDestroy); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private GuardrailVersionArgs() {} + + private GuardrailVersionArgs(GuardrailVersionArgs $) { + this.description = $.description; + this.guardrailArn = $.guardrailArn; + this.skipDestroy = $.skipDestroy; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailVersionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailVersionArgs $; + + public Builder() { + $ = new GuardrailVersionArgs(); + } + + public Builder(GuardrailVersionArgs defaults) { + $ = new GuardrailVersionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the Guardrail version. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the Guardrail version. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param guardrailArn Guardrail ARN. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder guardrailArn(Output guardrailArn) { + $.guardrailArn = guardrailArn; + return this; + } + + /** + * @param guardrailArn Guardrail ARN. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder guardrailArn(String guardrailArn) { + return guardrailArn(Output.of(guardrailArn)); + } + + /** + * @param skipDestroy Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + * @return builder + * + */ + public Builder skipDestroy(@Nullable Output skipDestroy) { + $.skipDestroy = skipDestroy; + return this; + } + + /** + * @param skipDestroy Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + * @return builder + * + */ + public Builder skipDestroy(Boolean skipDestroy) { + return skipDestroy(Output.of(skipDestroy)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GuardrailVersionTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public GuardrailVersionArgs build() { + if ($.guardrailArn == null) { + throw new MissingRequiredPropertyException("GuardrailVersionArgs", "guardrailArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java index 29ac2ef5a2d..c13f3e5f606 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupState.java @@ -6,6 +6,7 @@ import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupActionGroupExecutorArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupApiSchemaArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupFunctionSchemaArgs; +import com.pulumi.aws.bedrock.inputs.AgentAgentActionGroupTimeoutsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; @@ -177,6 +178,21 @@ public Optional> parentActionGroupSignature() { return Optional.ofNullable(this.parentActionGroupSignature); } + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + @Import(name="prepareAgent") + private @Nullable Output prepareAgent; + + /** + * @return Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + */ + public Optional> prepareAgent() { + return Optional.ofNullable(this.prepareAgent); + } + /** * Whether the in-use check is skipped when deleting the action group. * @@ -192,6 +208,13 @@ public Optional> skipResourceInUseCheck() { return Optional.ofNullable(this.skipResourceInUseCheck); } + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + private AgentAgentActionGroupState() {} private AgentAgentActionGroupState(AgentAgentActionGroupState $) { @@ -205,7 +228,9 @@ private AgentAgentActionGroupState(AgentAgentActionGroupState $) { this.description = $.description; this.functionSchema = $.functionSchema; this.parentActionGroupSignature = $.parentActionGroupSignature; + this.prepareAgent = $.prepareAgent; this.skipResourceInUseCheck = $.skipResourceInUseCheck; + this.timeouts = $.timeouts; } public static Builder builder() { @@ -444,6 +469,27 @@ public Builder parentActionGroupSignature(String parentActionGroupSignature) { return parentActionGroupSignature(Output.of(parentActionGroupSignature)); } + /** + * @param prepareAgent Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + * @return builder + * + */ + public Builder prepareAgent(@Nullable Output prepareAgent) { + $.prepareAgent = prepareAgent; + return this; + } + + /** + * @param prepareAgent Whether or not to prepare the agent after creation or modification. Defaults to `true`. + * + * @return builder + * + */ + public Builder prepareAgent(Boolean prepareAgent) { + return prepareAgent(Output.of(prepareAgent)); + } + /** * @param skipResourceInUseCheck Whether the in-use check is skipped when deleting the action group. * @@ -465,6 +511,15 @@ public Builder skipResourceInUseCheck(Boolean skipResourceInUseCheck) { return skipResourceInUseCheck(Output.of(skipResourceInUseCheck)); } + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(AgentAgentActionGroupTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + public AgentAgentActionGroupState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupTimeoutsArgs.java new file mode 100644 index 00000000000..9799781e21d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentActionGroupTimeoutsArgs.java @@ -0,0 +1,120 @@ +// *** 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.bedrock.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 AgentAgentActionGroupTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentActionGroupTimeoutsArgs Empty = new AgentAgentActionGroupTimeoutsArgs(); + + /** + * 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). + * + */ + @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 AgentAgentActionGroupTimeoutsArgs() {} + + private AgentAgentActionGroupTimeoutsArgs(AgentAgentActionGroupTimeoutsArgs $) { + this.create = $.create; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentActionGroupTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentActionGroupTimeoutsArgs $; + + public Builder() { + $ = new AgentAgentActionGroupTimeoutsArgs(); + } + + public Builder(AgentAgentActionGroupTimeoutsArgs defaults) { + $ = new AgentAgentActionGroupTimeoutsArgs(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 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 AgentAgentActionGroupTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationArgs.java index 72a9f8dd897..2f8c2073984 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.bedrock.inputs; import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs; +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs; import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; @@ -31,6 +32,21 @@ public Optional customTransformationConfiguration; + + /** + * @return Configuration for custom transformation of data source documents. + * + */ + public Optional> customTransformationConfiguration() { + return Optional.ofNullable(this.customTransformationConfiguration); + } + /** * Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. * @@ -50,6 +66,7 @@ private AgentDataSourceVectorIngestionConfigurationArgs() {} private AgentDataSourceVectorIngestionConfigurationArgs(AgentDataSourceVectorIngestionConfigurationArgs $) { this.chunkingConfiguration = $.chunkingConfiguration; + this.customTransformationConfiguration = $.customTransformationConfiguration; this.parsingConfiguration = $.parsingConfiguration; } @@ -92,6 +109,27 @@ public Builder chunkingConfiguration(AgentDataSourceVectorIngestionConfiguration return chunkingConfiguration(Output.of(chunkingConfiguration)); } + /** + * @param customTransformationConfiguration Configuration for custom transformation of data source documents. + * + * @return builder + * + */ + public Builder customTransformationConfiguration(@Nullable Output customTransformationConfiguration) { + $.customTransformationConfiguration = customTransformationConfiguration; + return this; + } + + /** + * @param customTransformationConfiguration Configuration for custom transformation of data source documents. + * + * @return builder + * + */ + public Builder customTransformationConfiguration(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs customTransformationConfiguration) { + return customTransformationConfiguration(Output.of(customTransformationConfiguration)); + } + /** * @param parsingConfiguration Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.java new file mode 100644 index 00000000000..78010939c0f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs.java @@ -0,0 +1,101 @@ +// *** 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.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs; +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs(); + + /** + * The intermediate storage for custom transformation. + * + */ + @Import(name="intermediateStorage") + private @Nullable Output intermediateStorage; + + /** + * @return The intermediate storage for custom transformation. + * + */ + public Optional> intermediateStorage() { + return Optional.ofNullable(this.intermediateStorage); + } + + @Import(name="transformation") + private @Nullable Output transformation; + + public Optional> transformation() { + return Optional.ofNullable(this.transformation); + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs $) { + this.intermediateStorage = $.intermediateStorage; + this.transformation = $.transformation; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param intermediateStorage The intermediate storage for custom transformation. + * + * @return builder + * + */ + public Builder intermediateStorage(@Nullable Output intermediateStorage) { + $.intermediateStorage = intermediateStorage; + return this; + } + + /** + * @param intermediateStorage The intermediate storage for custom transformation. + * + * @return builder + * + */ + public Builder intermediateStorage(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs intermediateStorage) { + return intermediateStorage(Output.of(intermediateStorage)); + } + + public Builder transformation(@Nullable Output transformation) { + $.transformation = transformation; + return this; + } + + public Builder transformation(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs transformation) { + return transformation(Output.of(transformation)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.java new file mode 100644 index 00000000000..9d8d60984d5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs.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.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs(); + + /** + * Configuration block for intermedia S3 storage. + * + */ + @Import(name="s3Location") + private @Nullable Output s3Location; + + /** + * @return Configuration block for intermedia S3 storage. + * + */ + public Optional> s3Location() { + return Optional.ofNullable(this.s3Location); + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs $) { + this.s3Location = $.s3Location; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param s3Location Configuration block for intermedia S3 storage. + * + * @return builder + * + */ + public Builder s3Location(@Nullable Output s3Location) { + $.s3Location = s3Location; + return this; + } + + /** + * @param s3Location Configuration block for intermedia S3 storage. + * + * @return builder + * + */ + public Builder s3Location(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs s3Location) { + return s3Location(Output.of(s3Location)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.java new file mode 100644 index 00000000000..b0bdc60601a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs.java @@ -0,0 +1,85 @@ +// *** 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.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs(); + + /** + * S3 URI for intermediate storage. + * + */ + @Import(name="uri", required=true) + private Output uri; + + /** + * @return S3 URI for intermediate storage. + * + */ + public Output uri() { + return this.uri; + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs $) { + this.uri = $.uri; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param uri S3 URI for intermediate storage. + * + * @return builder + * + */ + public Builder uri(Output uri) { + $.uri = uri; + return this; + } + + /** + * @param uri S3 URI for intermediate storage. + * + * @return builder + * + */ + public Builder uri(String uri) { + return uri(Output.of(uri)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs build() { + if ($.uri == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs", "uri"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.java new file mode 100644 index 00000000000..70672f66beb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs.java @@ -0,0 +1,125 @@ +// *** 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.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs(); + + /** + * Currently only `POST_CHUNKING` is supported. + * + */ + @Import(name="stepToApply", required=true) + private Output stepToApply; + + /** + * @return Currently only `POST_CHUNKING` is supported. + * + */ + public Output stepToApply() { + return this.stepToApply; + } + + /** + * The configuration of transformation function. + * + */ + @Import(name="transformationFunction") + private @Nullable Output transformationFunction; + + /** + * @return The configuration of transformation function. + * + */ + public Optional> transformationFunction() { + return Optional.ofNullable(this.transformationFunction); + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs $) { + this.stepToApply = $.stepToApply; + this.transformationFunction = $.transformationFunction; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param stepToApply Currently only `POST_CHUNKING` is supported. + * + * @return builder + * + */ + public Builder stepToApply(Output stepToApply) { + $.stepToApply = stepToApply; + return this; + } + + /** + * @param stepToApply Currently only `POST_CHUNKING` is supported. + * + * @return builder + * + */ + public Builder stepToApply(String stepToApply) { + return stepToApply(Output.of(stepToApply)); + } + + /** + * @param transformationFunction The configuration of transformation function. + * + * @return builder + * + */ + public Builder transformationFunction(@Nullable Output transformationFunction) { + $.transformationFunction = transformationFunction; + return this; + } + + /** + * @param transformationFunction The configuration of transformation function. + * + * @return builder + * + */ + public Builder transformationFunction(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs transformationFunction) { + return transformationFunction(Output.of(transformationFunction)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs build() { + if ($.stepToApply == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs", "stepToApply"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.java new file mode 100644 index 00000000000..111d087f01d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs.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.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs(); + + /** + * The lambda configuration for custom transformation. + * + */ + @Import(name="transformationLambdaConfiguration") + private @Nullable Output transformationLambdaConfiguration; + + /** + * @return The lambda configuration for custom transformation. + * + */ + public Optional> transformationLambdaConfiguration() { + return Optional.ofNullable(this.transformationLambdaConfiguration); + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs $) { + this.transformationLambdaConfiguration = $.transformationLambdaConfiguration; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param transformationLambdaConfiguration The lambda configuration for custom transformation. + * + * @return builder + * + */ + public Builder transformationLambdaConfiguration(@Nullable Output transformationLambdaConfiguration) { + $.transformationLambdaConfiguration = transformationLambdaConfiguration; + return this; + } + + /** + * @param transformationLambdaConfiguration The lambda configuration for custom transformation. + * + * @return builder + * + */ + public Builder transformationLambdaConfiguration(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs transformationLambdaConfiguration) { + return transformationLambdaConfiguration(Output.of(transformationLambdaConfiguration)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.java new file mode 100644 index 00000000000..bdcc75f2eb5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs.java @@ -0,0 +1,85 @@ +// *** 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.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs Empty = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs(); + + /** + * The ARN of the lambda to use for custom transformation. + * + */ + @Import(name="lambdaArn", required=true) + private Output lambdaArn; + + /** + * @return The ARN of the lambda to use for custom transformation. + * + */ + public Output lambdaArn() { + return this.lambdaArn; + } + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs() {} + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs $) { + this.lambdaArn = $.lambdaArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs $; + + public Builder() { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs(); + } + + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs defaults) { + $ = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param lambdaArn The ARN of the lambda to use for custom transformation. + * + * @return builder + * + */ + public Builder lambdaArn(Output lambdaArn) { + $.lambdaArn = lambdaArn; + return this; + } + + /** + * @param lambdaArn The ARN of the lambda to use for custom transformation. + * + * @return builder + * + */ + public Builder lambdaArn(String lambdaArn) { + return lambdaArn(Output.of(lambdaArn)); + } + + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs build() { + if ($.lambdaArn == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs", "lambdaArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionState.java new file mode 100644 index 00000000000..1c9de448ad6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionState.java @@ -0,0 +1,221 @@ +// *** 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.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailVersionTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailVersionState extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailVersionState Empty = new GuardrailVersionState(); + + /** + * Description of the Guardrail version. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the Guardrail version. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Guardrail ARN. + * + * The following arguments are optional: + * + */ + @Import(name="guardrailArn") + private @Nullable Output guardrailArn; + + /** + * @return Guardrail ARN. + * + * The following arguments are optional: + * + */ + public Optional> guardrailArn() { + return Optional.ofNullable(this.guardrailArn); + } + + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + @Import(name="skipDestroy") + private @Nullable Output skipDestroy; + + /** + * @return Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + */ + public Optional> skipDestroy() { + return Optional.ofNullable(this.skipDestroy); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * Guardrail version. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return Guardrail version. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + private GuardrailVersionState() {} + + private GuardrailVersionState(GuardrailVersionState $) { + this.description = $.description; + this.guardrailArn = $.guardrailArn; + this.skipDestroy = $.skipDestroy; + this.timeouts = $.timeouts; + this.version = $.version; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailVersionState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailVersionState $; + + public Builder() { + $ = new GuardrailVersionState(); + } + + public Builder(GuardrailVersionState defaults) { + $ = new GuardrailVersionState(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the Guardrail version. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the Guardrail version. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param guardrailArn Guardrail ARN. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder guardrailArn(@Nullable Output guardrailArn) { + $.guardrailArn = guardrailArn; + return this; + } + + /** + * @param guardrailArn Guardrail ARN. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder guardrailArn(String guardrailArn) { + return guardrailArn(Output.of(guardrailArn)); + } + + /** + * @param skipDestroy Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + * @return builder + * + */ + public Builder skipDestroy(@Nullable Output skipDestroy) { + $.skipDestroy = skipDestroy; + return this; + } + + /** + * @param skipDestroy Whether to retain the old version of a previously deployed Guardrail. Default is `false` + * + * @return builder + * + */ + public Builder skipDestroy(Boolean skipDestroy) { + return skipDestroy(Output.of(skipDestroy)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GuardrailVersionTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param version Guardrail version. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version Guardrail version. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + public GuardrailVersionState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionTimeoutsArgs.java new file mode 100644 index 00000000000..f3a3e9bce4b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailVersionTimeoutsArgs.java @@ -0,0 +1,120 @@ +// *** 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.bedrock.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 GuardrailVersionTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailVersionTimeoutsArgs Empty = new GuardrailVersionTimeoutsArgs(); + + /** + * 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); + } + + private GuardrailVersionTimeoutsArgs() {} + + private GuardrailVersionTimeoutsArgs(GuardrailVersionTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailVersionTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailVersionTimeoutsArgs $; + + public Builder() { + $ = new GuardrailVersionTimeoutsArgs(); + } + + public Builder(GuardrailVersionTimeoutsArgs defaults) { + $ = new GuardrailVersionTimeoutsArgs(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)); + } + + public GuardrailVersionTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupTimeouts.java new file mode 100644 index 00000000000..692d37628e2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentActionGroupTimeouts.java @@ -0,0 +1,78 @@ +// *** 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.bedrock.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 AgentAgentActionGroupTimeouts { + /** + * @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). + * + */ + private @Nullable String update; + + private AgentAgentActionGroupTimeouts() {} + /** + * @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). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentActionGroupTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String update; + public Builder() {} + public Builder(AgentAgentActionGroupTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public AgentAgentActionGroupTimeouts build() { + final var _resultValue = new AgentAgentActionGroupTimeouts(); + _resultValue.create = create; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfiguration.java index 89a80e8adde..e35b004df19 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfiguration.java @@ -4,6 +4,7 @@ package com.pulumi.aws.bedrock.outputs; import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationChunkingConfiguration; +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration; import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationParsingConfiguration; import com.pulumi.core.annotations.CustomType; import java.util.Objects; @@ -17,6 +18,11 @@ public final class AgentDataSourceVectorIngestionConfiguration { * */ private @Nullable AgentDataSourceVectorIngestionConfigurationChunkingConfiguration chunkingConfiguration; + /** + * @return Configuration for custom transformation of data source documents. + * + */ + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration customTransformationConfiguration; /** * @return Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. * @@ -31,6 +37,13 @@ private AgentDataSourceVectorIngestionConfiguration() {} public Optional chunkingConfiguration() { return Optional.ofNullable(this.chunkingConfiguration); } + /** + * @return Configuration for custom transformation of data source documents. + * + */ + public Optional customTransformationConfiguration() { + return Optional.ofNullable(this.customTransformationConfiguration); + } /** * @return Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. * @@ -49,11 +62,13 @@ public static Builder builder(AgentDataSourceVectorIngestionConfiguration defaul @CustomType.Builder public static final class Builder { private @Nullable AgentDataSourceVectorIngestionConfigurationChunkingConfiguration chunkingConfiguration; + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration customTransformationConfiguration; private @Nullable AgentDataSourceVectorIngestionConfigurationParsingConfiguration parsingConfiguration; public Builder() {} public Builder(AgentDataSourceVectorIngestionConfiguration defaults) { Objects.requireNonNull(defaults); this.chunkingConfiguration = defaults.chunkingConfiguration; + this.customTransformationConfiguration = defaults.customTransformationConfiguration; this.parsingConfiguration = defaults.parsingConfiguration; } @@ -64,6 +79,12 @@ public Builder chunkingConfiguration(@Nullable AgentDataSourceVectorIngestionCon return this; } @CustomType.Setter + public Builder customTransformationConfiguration(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration customTransformationConfiguration) { + + this.customTransformationConfiguration = customTransformationConfiguration; + return this; + } + @CustomType.Setter public Builder parsingConfiguration(@Nullable AgentDataSourceVectorIngestionConfigurationParsingConfiguration parsingConfiguration) { this.parsingConfiguration = parsingConfiguration; @@ -72,6 +93,7 @@ public Builder parsingConfiguration(@Nullable AgentDataSourceVectorIngestionConf public AgentDataSourceVectorIngestionConfiguration build() { final var _resultValue = new AgentDataSourceVectorIngestionConfiguration(); _resultValue.chunkingConfiguration = chunkingConfiguration; + _resultValue.customTransformationConfiguration = customTransformationConfiguration; _resultValue.parsingConfiguration = parsingConfiguration; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.java new file mode 100644 index 00000000000..f8810b52807 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.java @@ -0,0 +1,71 @@ +// *** 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.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage; +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + /** + * @return The intermediate storage for custom transformation. + * + */ + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage intermediateStorage; + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation transformation; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration() {} + /** + * @return The intermediate storage for custom transformation. + * + */ + public Optional intermediateStorage() { + return Optional.ofNullable(this.intermediateStorage); + } + public Optional transformation() { + return Optional.ofNullable(this.transformation); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage intermediateStorage; + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation transformation; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration defaults) { + Objects.requireNonNull(defaults); + this.intermediateStorage = defaults.intermediateStorage; + this.transformation = defaults.transformation; + } + + @CustomType.Setter + public Builder intermediateStorage(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage intermediateStorage) { + + this.intermediateStorage = intermediateStorage; + return this; + } + @CustomType.Setter + public Builder transformation(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation transformation) { + + this.transformation = transformation; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration(); + _resultValue.intermediateStorage = intermediateStorage; + _resultValue.transformation = transformation; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.java new file mode 100644 index 00000000000..466aa28affc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.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.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + /** + * @return Configuration block for intermedia S3 storage. + * + */ + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location s3Location; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage() {} + /** + * @return Configuration block for intermedia S3 storage. + * + */ + public Optional s3Location() { + return Optional.ofNullable(this.s3Location); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location s3Location; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage defaults) { + Objects.requireNonNull(defaults); + this.s3Location = defaults.s3Location; + } + + @CustomType.Setter + public Builder s3Location(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location s3Location) { + + this.s3Location = s3Location; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage(); + _resultValue.s3Location = s3Location; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.java new file mode 100644 index 00000000000..6561327f442 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location.java @@ -0,0 +1,58 @@ +// *** 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.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + /** + * @return S3 URI for intermediate storage. + * + */ + private String uri; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location() {} + /** + * @return S3 URI for intermediate storage. + * + */ + public String uri() { + return this.uri; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String uri; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location defaults) { + Objects.requireNonNull(defaults); + this.uri = defaults.uri; + } + + @CustomType.Setter + public Builder uri(String uri) { + if (uri == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location", "uri"); + } + this.uri = uri; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location(); + _resultValue.uri = uri; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.java new file mode 100644 index 00000000000..d531672ebfd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.java @@ -0,0 +1,82 @@ +// *** 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.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + /** + * @return Currently only `POST_CHUNKING` is supported. + * + */ + private String stepToApply; + /** + * @return The configuration of transformation function. + * + */ + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction transformationFunction; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation() {} + /** + * @return Currently only `POST_CHUNKING` is supported. + * + */ + public String stepToApply() { + return this.stepToApply; + } + /** + * @return The configuration of transformation function. + * + */ + public Optional transformationFunction() { + return Optional.ofNullable(this.transformationFunction); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String stepToApply; + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction transformationFunction; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation defaults) { + Objects.requireNonNull(defaults); + this.stepToApply = defaults.stepToApply; + this.transformationFunction = defaults.transformationFunction; + } + + @CustomType.Setter + public Builder stepToApply(String stepToApply) { + if (stepToApply == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation", "stepToApply"); + } + this.stepToApply = stepToApply; + return this; + } + @CustomType.Setter + public Builder transformationFunction(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction transformationFunction) { + + this.transformationFunction = transformationFunction; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation(); + _resultValue.stepToApply = stepToApply; + _resultValue.transformationFunction = transformationFunction; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.java new file mode 100644 index 00000000000..52f6d7bb246 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.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.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + /** + * @return The lambda configuration for custom transformation. + * + */ + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration transformationLambdaConfiguration; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction() {} + /** + * @return The lambda configuration for custom transformation. + * + */ + public Optional transformationLambdaConfiguration() { + return Optional.ofNullable(this.transformationLambdaConfiguration); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration transformationLambdaConfiguration; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction defaults) { + Objects.requireNonNull(defaults); + this.transformationLambdaConfiguration = defaults.transformationLambdaConfiguration; + } + + @CustomType.Setter + public Builder transformationLambdaConfiguration(@Nullable AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration transformationLambdaConfiguration) { + + this.transformationLambdaConfiguration = transformationLambdaConfiguration; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction(); + _resultValue.transformationLambdaConfiguration = transformationLambdaConfiguration; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.java new file mode 100644 index 00000000000..fd171240a2a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.java @@ -0,0 +1,58 @@ +// *** 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.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { + /** + * @return The ARN of the lambda to use for custom transformation. + * + */ + private String lambdaArn; + + private AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration() {} + /** + * @return The ARN of the lambda to use for custom transformation. + * + */ + public String lambdaArn() { + return this.lambdaArn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String lambdaArn; + public Builder() {} + public Builder(AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration defaults) { + Objects.requireNonNull(defaults); + this.lambdaArn = defaults.lambdaArn; + } + + @CustomType.Setter + public Builder lambdaArn(String lambdaArn) { + if (lambdaArn == null) { + throw new MissingRequiredPropertyException("AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration", "lambdaArn"); + } + this.lambdaArn = lambdaArn; + return this; + } + public AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration build() { + final var _resultValue = new AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration(); + _resultValue.lambdaArn = lambdaArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailVersionTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailVersionTimeouts.java new file mode 100644 index 00000000000..7db9257a787 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailVersionTimeouts.java @@ -0,0 +1,78 @@ +// *** 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.bedrock.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 GuardrailVersionTimeouts { + /** + * @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; + + private GuardrailVersionTimeouts() {} + /** + * @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); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailVersionTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + public Builder() {} + public Builder(GuardrailVersionTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + } + + @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; + } + public GuardrailVersionTimeouts build() { + final var _resultValue = new GuardrailVersionTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java index 2c2fb93c4f8..f2ee3a6cf9f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java @@ -60,7 +60,7 @@ * * public static void stack(Context ctx) }{{@code * var domainExecutionRole = new Role("domainExecutionRole", RoleArgs.builder() - * .name("example name") + * .name("example-role") * .assumeRolePolicy(serializeJson( * jsonObject( * jsonProperty("Version", "2012-10-17"), @@ -88,7 +88,7 @@ * )) * ))) * .inlinePolicies(RoleInlinePolicyArgs.builder() - * .name("example name") + * .name("example-policy") * .policy(serializeJson( * jsonObject( * jsonProperty("Version", "2012-10-17"), @@ -107,12 +107,12 @@ * .build()); * * var test = new Domain("test", DomainArgs.builder() - * .name("example name") + * .name("example") * .domainExecutionRole(domainExecutionRole.arn()) * .build()); * * var testSecurityGroup = new SecurityGroup("testSecurityGroup", SecurityGroupArgs.builder() - * .name("example name") + * .name("example") * .build()); * * var testProject = new Project("testProject", ProjectArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/ebs/outputs/GetSnapshotResult.java b/sdk/java/src/main/java/com/pulumi/aws/ebs/outputs/GetSnapshotResult.java index dd3dd3d2adb..a758e977caf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ebs/outputs/GetSnapshotResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ebs/outputs/GetSnapshotResult.java @@ -72,6 +72,11 @@ public final class GetSnapshotResult { */ private String snapshotId; private @Nullable List snapshotIds; + /** + * @return Time stamp when the snapshot was initiated. + * + */ + private String startTime; /** * @return Snapshot state. * @@ -184,6 +189,13 @@ public String snapshotId() { public List snapshotIds() { return this.snapshotIds == null ? List.of() : this.snapshotIds; } + /** + * @return Time stamp when the snapshot was initiated. + * + */ + public String startTime() { + return this.startTime; + } /** * @return Snapshot state. * @@ -244,6 +256,7 @@ public static final class Builder { private @Nullable List restorableByUserIds; private String snapshotId; private @Nullable List snapshotIds; + private String startTime; private String state; private String storageTier; private Map tags; @@ -267,6 +280,7 @@ public Builder(GetSnapshotResult defaults) { this.restorableByUserIds = defaults.restorableByUserIds; this.snapshotId = defaults.snapshotId; this.snapshotIds = defaults.snapshotIds; + this.startTime = defaults.startTime; this.state = defaults.state; this.storageTier = defaults.storageTier; this.tags = defaults.tags; @@ -397,6 +411,14 @@ public Builder snapshotIds(String... snapshotIds) { return snapshotIds(List.of(snapshotIds)); } @CustomType.Setter + public Builder startTime(String startTime) { + if (startTime == null) { + throw new MissingRequiredPropertyException("GetSnapshotResult", "startTime"); + } + this.startTime = startTime; + return this; + } + @CustomType.Setter public Builder state(String state) { if (state == null) { throw new MissingRequiredPropertyException("GetSnapshotResult", "state"); @@ -453,6 +475,7 @@ public GetSnapshotResult build() { _resultValue.restorableByUserIds = restorableByUserIds; _resultValue.snapshotId = snapshotId; _resultValue.snapshotIds = snapshotIds; + _resultValue.startTime = startTime; _resultValue.state = state; _resultValue.storageTier = storageTier; _resultValue.tags = tags; diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociation.java new file mode 100644 index 00000000000..0011f4ec9b8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociation.java @@ -0,0 +1,158 @@ +// *** 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.ec2transitgateway; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.ec2transitgateway.DefaultRouteTableAssociationArgs; +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTableAssociationState; +import com.pulumi.aws.ec2transitgateway.outputs.DefaultRouteTableAssociationTimeouts; +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.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. + * + * ## 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.ec2transitgateway.DefaultRouteTableAssociation;
+ * import com.pulumi.aws.ec2transitgateway.DefaultRouteTableAssociationArgs;
+ * 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 DefaultRouteTableAssociation("example", DefaultRouteTableAssociationArgs.builder()
+ *             .transitGatewayId(exampleAwsEc2TransitGateway.id())
+ *             .transitGatewayRouteTableId(exampleAwsEc2TransitGatewayRouteTable.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation") +public class DefaultRouteTableAssociation extends com.pulumi.resources.CustomResource { + @Export(name="originalDefaultRouteTableId", refs={String.class}, tree="[0]") + private Output originalDefaultRouteTableId; + + public Output originalDefaultRouteTableId() { + return this.originalDefaultRouteTableId; + } + @Export(name="timeouts", refs={DefaultRouteTableAssociationTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Export(name="transitGatewayId", refs={String.class}, tree="[0]") + private Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Output transitGatewayId() { + return this.transitGatewayId; + } + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Export(name="transitGatewayRouteTableId", refs={String.class}, tree="[0]") + private Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Output transitGatewayRouteTableId() { + return this.transitGatewayRouteTableId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DefaultRouteTableAssociation(java.lang.String name) { + this(name, DefaultRouteTableAssociationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DefaultRouteTableAssociation(java.lang.String name, DefaultRouteTableAssociationArgs 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 DefaultRouteTableAssociation(java.lang.String name, DefaultRouteTableAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private DefaultRouteTableAssociation(java.lang.String name, Output id, @Nullable DefaultRouteTableAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation", name, state, makeResourceOptions(options, id), false); + } + + private static DefaultRouteTableAssociationArgs makeArgs(DefaultRouteTableAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DefaultRouteTableAssociationArgs.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 DefaultRouteTableAssociation get(java.lang.String name, Output id, @Nullable DefaultRouteTableAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DefaultRouteTableAssociation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociationArgs.java new file mode 100644 index 00000000000..2615b8773ff --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTableAssociationArgs.java @@ -0,0 +1,145 @@ +// *** 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.ec2transitgateway; + +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTableAssociationTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DefaultRouteTableAssociationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTableAssociationArgs Empty = new DefaultRouteTableAssociationArgs(); + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Import(name="transitGatewayId", required=true) + private Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Output transitGatewayId() { + return this.transitGatewayId; + } + + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Import(name="transitGatewayRouteTableId", required=true) + private Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Output transitGatewayRouteTableId() { + return this.transitGatewayRouteTableId; + } + + private DefaultRouteTableAssociationArgs() {} + + private DefaultRouteTableAssociationArgs(DefaultRouteTableAssociationArgs $) { + this.timeouts = $.timeouts; + this.transitGatewayId = $.transitGatewayId; + this.transitGatewayRouteTableId = $.transitGatewayRouteTableId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTableAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTableAssociationArgs $; + + public Builder() { + $ = new DefaultRouteTableAssociationArgs(); + } + + public Builder(DefaultRouteTableAssociationArgs defaults) { + $ = new DefaultRouteTableAssociationArgs(Objects.requireNonNull(defaults)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DefaultRouteTableAssociationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(Output transitGatewayId) { + $.transitGatewayId = transitGatewayId; + return this; + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(String transitGatewayId) { + return transitGatewayId(Output.of(transitGatewayId)); + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(Output transitGatewayRouteTableId) { + $.transitGatewayRouteTableId = transitGatewayRouteTableId; + return this; + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(String transitGatewayRouteTableId) { + return transitGatewayRouteTableId(Output.of(transitGatewayRouteTableId)); + } + + public DefaultRouteTableAssociationArgs build() { + if ($.transitGatewayId == null) { + throw new MissingRequiredPropertyException("DefaultRouteTableAssociationArgs", "transitGatewayId"); + } + if ($.transitGatewayRouteTableId == null) { + throw new MissingRequiredPropertyException("DefaultRouteTableAssociationArgs", "transitGatewayRouteTableId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagation.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagation.java new file mode 100644 index 00000000000..9b201a067a8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagation.java @@ -0,0 +1,158 @@ +// *** 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.ec2transitgateway; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.ec2transitgateway.DefaultRouteTablePropagationArgs; +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTablePropagationState; +import com.pulumi.aws.ec2transitgateway.outputs.DefaultRouteTablePropagationTimeouts; +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.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. + * + * ## 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.ec2transitgateway.DefaultRouteTablePropagation;
+ * import com.pulumi.aws.ec2transitgateway.DefaultRouteTablePropagationArgs;
+ * 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 DefaultRouteTablePropagation("example", DefaultRouteTablePropagationArgs.builder()
+ *             .transitGatewayId(exampleAwsEc2TransitGateway.id())
+ *             .transitGatewayRouteTableId(exampleAwsEc2TransitGatewayRouteTable.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation") +public class DefaultRouteTablePropagation extends com.pulumi.resources.CustomResource { + @Export(name="originalDefaultRouteTableId", refs={String.class}, tree="[0]") + private Output originalDefaultRouteTableId; + + public Output originalDefaultRouteTableId() { + return this.originalDefaultRouteTableId; + } + @Export(name="timeouts", refs={DefaultRouteTablePropagationTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Export(name="transitGatewayId", refs={String.class}, tree="[0]") + private Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Output transitGatewayId() { + return this.transitGatewayId; + } + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Export(name="transitGatewayRouteTableId", refs={String.class}, tree="[0]") + private Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Output transitGatewayRouteTableId() { + return this.transitGatewayRouteTableId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DefaultRouteTablePropagation(java.lang.String name) { + this(name, DefaultRouteTablePropagationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DefaultRouteTablePropagation(java.lang.String name, DefaultRouteTablePropagationArgs 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 DefaultRouteTablePropagation(java.lang.String name, DefaultRouteTablePropagationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private DefaultRouteTablePropagation(java.lang.String name, Output id, @Nullable DefaultRouteTablePropagationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation", name, state, makeResourceOptions(options, id), false); + } + + private static DefaultRouteTablePropagationArgs makeArgs(DefaultRouteTablePropagationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DefaultRouteTablePropagationArgs.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 DefaultRouteTablePropagation get(java.lang.String name, Output id, @Nullable DefaultRouteTablePropagationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DefaultRouteTablePropagation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagationArgs.java new file mode 100644 index 00000000000..83575d042c5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/DefaultRouteTablePropagationArgs.java @@ -0,0 +1,145 @@ +// *** 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.ec2transitgateway; + +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTablePropagationTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DefaultRouteTablePropagationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTablePropagationArgs Empty = new DefaultRouteTablePropagationArgs(); + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Import(name="transitGatewayId", required=true) + private Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Output transitGatewayId() { + return this.transitGatewayId; + } + + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Import(name="transitGatewayRouteTableId", required=true) + private Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Output transitGatewayRouteTableId() { + return this.transitGatewayRouteTableId; + } + + private DefaultRouteTablePropagationArgs() {} + + private DefaultRouteTablePropagationArgs(DefaultRouteTablePropagationArgs $) { + this.timeouts = $.timeouts; + this.transitGatewayId = $.transitGatewayId; + this.transitGatewayRouteTableId = $.transitGatewayRouteTableId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTablePropagationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTablePropagationArgs $; + + public Builder() { + $ = new DefaultRouteTablePropagationArgs(); + } + + public Builder(DefaultRouteTablePropagationArgs defaults) { + $ = new DefaultRouteTablePropagationArgs(Objects.requireNonNull(defaults)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DefaultRouteTablePropagationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(Output transitGatewayId) { + $.transitGatewayId = transitGatewayId; + return this; + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(String transitGatewayId) { + return transitGatewayId(Output.of(transitGatewayId)); + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(Output transitGatewayRouteTableId) { + $.transitGatewayRouteTableId = transitGatewayRouteTableId; + return this; + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(String transitGatewayRouteTableId) { + return transitGatewayRouteTableId(Output.of(transitGatewayRouteTableId)); + } + + public DefaultRouteTablePropagationArgs build() { + if ($.transitGatewayId == null) { + throw new MissingRequiredPropertyException("DefaultRouteTablePropagationArgs", "transitGatewayId"); + } + if ($.transitGatewayRouteTableId == null) { + throw new MissingRequiredPropertyException("DefaultRouteTablePropagationArgs", "transitGatewayRouteTableId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachment.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachment.java index f30a9d5f682..05d5b03d353 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachment.java @@ -111,18 +111,18 @@ public Output> ipv6Support() { return Codegen.optional(this.ipv6Support); } /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ @Export(name="securityGroupReferencingSupport", refs={String.class}, tree="[0]") - private Output securityGroupReferencingSupport; + private Output securityGroupReferencingSupport; /** - * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ - public Output> securityGroupReferencingSupport() { - return Codegen.optional(this.securityGroupReferencingSupport); + public Output securityGroupReferencingSupport() { + return this.securityGroupReferencingSupport; } /** * Identifiers of EC2 Subnets. diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachmentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachmentArgs.java index 34a8ae9590a..a0bfd89455a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachmentArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/VpcAttachmentArgs.java @@ -65,14 +65,14 @@ public Optional> ipv6Support() { } /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ @Import(name="securityGroupReferencingSupport") private @Nullable Output securityGroupReferencingSupport; /** - * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ public Optional> securityGroupReferencingSupport() { @@ -266,7 +266,7 @@ public Builder ipv6Support(String ipv6Support) { } /** - * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * * @return builder * @@ -277,7 +277,7 @@ public Builder securityGroupReferencingSupport(@Nullable Output security } /** - * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationState.java new file mode 100644 index 00000000000..b9c435ab83d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationState.java @@ -0,0 +1,155 @@ +// *** 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.ec2transitgateway.inputs; + +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTableAssociationTimeoutsArgs; +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 DefaultRouteTableAssociationState extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTableAssociationState Empty = new DefaultRouteTableAssociationState(); + + @Import(name="originalDefaultRouteTableId") + private @Nullable Output originalDefaultRouteTableId; + + public Optional> originalDefaultRouteTableId() { + return Optional.ofNullable(this.originalDefaultRouteTableId); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Import(name="transitGatewayId") + private @Nullable Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Optional> transitGatewayId() { + return Optional.ofNullable(this.transitGatewayId); + } + + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Import(name="transitGatewayRouteTableId") + private @Nullable Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Optional> transitGatewayRouteTableId() { + return Optional.ofNullable(this.transitGatewayRouteTableId); + } + + private DefaultRouteTableAssociationState() {} + + private DefaultRouteTableAssociationState(DefaultRouteTableAssociationState $) { + this.originalDefaultRouteTableId = $.originalDefaultRouteTableId; + this.timeouts = $.timeouts; + this.transitGatewayId = $.transitGatewayId; + this.transitGatewayRouteTableId = $.transitGatewayRouteTableId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTableAssociationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTableAssociationState $; + + public Builder() { + $ = new DefaultRouteTableAssociationState(); + } + + public Builder(DefaultRouteTableAssociationState defaults) { + $ = new DefaultRouteTableAssociationState(Objects.requireNonNull(defaults)); + } + + public Builder originalDefaultRouteTableId(@Nullable Output originalDefaultRouteTableId) { + $.originalDefaultRouteTableId = originalDefaultRouteTableId; + return this; + } + + public Builder originalDefaultRouteTableId(String originalDefaultRouteTableId) { + return originalDefaultRouteTableId(Output.of(originalDefaultRouteTableId)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DefaultRouteTableAssociationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(@Nullable Output transitGatewayId) { + $.transitGatewayId = transitGatewayId; + return this; + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(String transitGatewayId) { + return transitGatewayId(Output.of(transitGatewayId)); + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(@Nullable Output transitGatewayRouteTableId) { + $.transitGatewayRouteTableId = transitGatewayRouteTableId; + return this; + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(String transitGatewayRouteTableId) { + return transitGatewayRouteTableId(Output.of(transitGatewayRouteTableId)); + } + + public DefaultRouteTableAssociationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationTimeoutsArgs.java new file mode 100644 index 00000000000..dc8b97bacbb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTableAssociationTimeoutsArgs.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.ec2transitgateway.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 DefaultRouteTableAssociationTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTableAssociationTimeoutsArgs Empty = new DefaultRouteTableAssociationTimeoutsArgs(); + + /** + * 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 DefaultRouteTableAssociationTimeoutsArgs() {} + + private DefaultRouteTableAssociationTimeoutsArgs(DefaultRouteTableAssociationTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTableAssociationTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTableAssociationTimeoutsArgs $; + + public Builder() { + $ = new DefaultRouteTableAssociationTimeoutsArgs(); + } + + public Builder(DefaultRouteTableAssociationTimeoutsArgs defaults) { + $ = new DefaultRouteTableAssociationTimeoutsArgs(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 DefaultRouteTableAssociationTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationState.java new file mode 100644 index 00000000000..c2fc7057dcf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationState.java @@ -0,0 +1,155 @@ +// *** 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.ec2transitgateway.inputs; + +import com.pulumi.aws.ec2transitgateway.inputs.DefaultRouteTablePropagationTimeoutsArgs; +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 DefaultRouteTablePropagationState extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTablePropagationState Empty = new DefaultRouteTablePropagationState(); + + @Import(name="originalDefaultRouteTableId") + private @Nullable Output originalDefaultRouteTableId; + + public Optional> originalDefaultRouteTableId() { + return Optional.ofNullable(this.originalDefaultRouteTableId); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * ID of the Transit Gateway to change the default association route table on. + * + */ + @Import(name="transitGatewayId") + private @Nullable Output transitGatewayId; + + /** + * @return ID of the Transit Gateway to change the default association route table on. + * + */ + public Optional> transitGatewayId() { + return Optional.ofNullable(this.transitGatewayId); + } + + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + @Import(name="transitGatewayRouteTableId") + private @Nullable Output transitGatewayRouteTableId; + + /** + * @return ID of the Transit Gateway Route Table to be made the default association route table. + * + */ + public Optional> transitGatewayRouteTableId() { + return Optional.ofNullable(this.transitGatewayRouteTableId); + } + + private DefaultRouteTablePropagationState() {} + + private DefaultRouteTablePropagationState(DefaultRouteTablePropagationState $) { + this.originalDefaultRouteTableId = $.originalDefaultRouteTableId; + this.timeouts = $.timeouts; + this.transitGatewayId = $.transitGatewayId; + this.transitGatewayRouteTableId = $.transitGatewayRouteTableId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTablePropagationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTablePropagationState $; + + public Builder() { + $ = new DefaultRouteTablePropagationState(); + } + + public Builder(DefaultRouteTablePropagationState defaults) { + $ = new DefaultRouteTablePropagationState(Objects.requireNonNull(defaults)); + } + + public Builder originalDefaultRouteTableId(@Nullable Output originalDefaultRouteTableId) { + $.originalDefaultRouteTableId = originalDefaultRouteTableId; + return this; + } + + public Builder originalDefaultRouteTableId(String originalDefaultRouteTableId) { + return originalDefaultRouteTableId(Output.of(originalDefaultRouteTableId)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DefaultRouteTablePropagationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(@Nullable Output transitGatewayId) { + $.transitGatewayId = transitGatewayId; + return this; + } + + /** + * @param transitGatewayId ID of the Transit Gateway to change the default association route table on. + * + * @return builder + * + */ + public Builder transitGatewayId(String transitGatewayId) { + return transitGatewayId(Output.of(transitGatewayId)); + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(@Nullable Output transitGatewayRouteTableId) { + $.transitGatewayRouteTableId = transitGatewayRouteTableId; + return this; + } + + /** + * @param transitGatewayRouteTableId ID of the Transit Gateway Route Table to be made the default association route table. + * + * @return builder + * + */ + public Builder transitGatewayRouteTableId(String transitGatewayRouteTableId) { + return transitGatewayRouteTableId(Output.of(transitGatewayRouteTableId)); + } + + public DefaultRouteTablePropagationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationTimeoutsArgs.java new file mode 100644 index 00000000000..3147fc1a3cf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/DefaultRouteTablePropagationTimeoutsArgs.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.ec2transitgateway.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 DefaultRouteTablePropagationTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DefaultRouteTablePropagationTimeoutsArgs Empty = new DefaultRouteTablePropagationTimeoutsArgs(); + + /** + * 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 DefaultRouteTablePropagationTimeoutsArgs() {} + + private DefaultRouteTablePropagationTimeoutsArgs(DefaultRouteTablePropagationTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DefaultRouteTablePropagationTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DefaultRouteTablePropagationTimeoutsArgs $; + + public Builder() { + $ = new DefaultRouteTablePropagationTimeoutsArgs(); + } + + public Builder(DefaultRouteTablePropagationTimeoutsArgs defaults) { + $ = new DefaultRouteTablePropagationTimeoutsArgs(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 DefaultRouteTablePropagationTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/VpcAttachmentState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/VpcAttachmentState.java index f27a4b8cd1c..f9ed62c7b3b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/VpcAttachmentState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/inputs/VpcAttachmentState.java @@ -64,14 +64,14 @@ public Optional> ipv6Support() { } /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ @Import(name="securityGroupReferencingSupport") private @Nullable Output securityGroupReferencingSupport; /** - * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @return Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * */ public Optional> securityGroupReferencingSupport() { @@ -305,7 +305,7 @@ public Builder ipv6Support(String ipv6Support) { } /** - * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * * @return builder * @@ -316,7 +316,7 @@ public Builder securityGroupReferencingSupport(@Nullable Output security } /** - * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * @param securityGroupReferencingSupport Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTableAssociationTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTableAssociationTimeouts.java new file mode 100644 index 00000000000..08a769c8252 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTableAssociationTimeouts.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.ec2transitgateway.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 DefaultRouteTableAssociationTimeouts { + /** + * @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 DefaultRouteTableAssociationTimeouts() {} + /** + * @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(DefaultRouteTableAssociationTimeouts 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(DefaultRouteTableAssociationTimeouts 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 DefaultRouteTableAssociationTimeouts build() { + final var _resultValue = new DefaultRouteTableAssociationTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTablePropagationTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTablePropagationTimeouts.java new file mode 100644 index 00000000000..090cf923965 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2transitgateway/outputs/DefaultRouteTablePropagationTimeouts.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.ec2transitgateway.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 DefaultRouteTablePropagationTimeouts { + /** + * @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 DefaultRouteTablePropagationTimeouts() {} + /** + * @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(DefaultRouteTablePropagationTimeouts 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(DefaultRouteTablePropagationTimeouts 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 DefaultRouteTablePropagationTimeouts build() { + final var _resultValue = new DefaultRouteTablePropagationTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNode.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNode.java index eabc8bed010..59cb8e02b1d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNode.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNode.java @@ -56,9 +56,19 @@ public class ReservedCacheNode extends com.pulumi.resources.CustomResource { public Output arn() { return this.arn; } + /** + * Number of cache node instances to reserve. + * Default value is `1`. + * + */ @Export(name="cacheNodeCount", refs={Double.class}, tree="[0]") private Output cacheNodeCount; + /** + * @return Number of cache node instances to reserve. + * Default value is `1`. + * + */ public Output cacheNodeCount() { return this.cacheNodeCount; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNodeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNodeArgs.java index 75534e9de53..15f311f36a0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNodeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReservedCacheNodeArgs.java @@ -19,9 +19,19 @@ public final class ReservedCacheNodeArgs extends com.pulumi.resources.ResourceAr public static final ReservedCacheNodeArgs Empty = new ReservedCacheNodeArgs(); + /** + * Number of cache node instances to reserve. + * Default value is `1`. + * + */ @Import(name="cacheNodeCount") private @Nullable Output cacheNodeCount; + /** + * @return Number of cache node instances to reserve. + * Default value is `1`. + * + */ public Optional> cacheNodeCount() { return Optional.ofNullable(this.cacheNodeCount); } @@ -96,11 +106,25 @@ public Builder(ReservedCacheNodeArgs defaults) { $ = new ReservedCacheNodeArgs(Objects.requireNonNull(defaults)); } + /** + * @param cacheNodeCount Number of cache node instances to reserve. + * Default value is `1`. + * + * @return builder + * + */ public Builder cacheNodeCount(@Nullable Output cacheNodeCount) { $.cacheNodeCount = cacheNodeCount; return this; } + /** + * @param cacheNodeCount Number of cache node instances to reserve. + * Default value is `1`. + * + * @return builder + * + */ public Builder cacheNodeCount(Double cacheNodeCount) { return cacheNodeCount(Output.of(cacheNodeCount)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReservedCacheNodeState.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReservedCacheNodeState.java index 4a9085665b9..602362fbd09 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReservedCacheNodeState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReservedCacheNodeState.java @@ -35,9 +35,19 @@ public Optional> arn() { return Optional.ofNullable(this.arn); } + /** + * Number of cache node instances to reserve. + * Default value is `1`. + * + */ @Import(name="cacheNodeCount") private @Nullable Output cacheNodeCount; + /** + * @return Number of cache node instances to reserve. + * Default value is `1`. + * + */ public Optional> cacheNodeCount() { return Optional.ofNullable(this.cacheNodeCount); } @@ -302,11 +312,25 @@ public Builder arn(String arn) { return arn(Output.of(arn)); } + /** + * @param cacheNodeCount Number of cache node instances to reserve. + * Default value is `1`. + * + * @return builder + * + */ public Builder cacheNodeCount(@Nullable Output cacheNodeCount) { $.cacheNodeCount = cacheNodeCount; return this; } + /** + * @param cacheNodeCount Number of cache node instances to reserve. + * Default value is `1`. + * + * @return builder + * + */ public Builder cacheNodeCount(Double cacheNodeCount) { return cacheNodeCount(Output.of(cacheNodeCount)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/inputs/EndpointGroupEndpointConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/inputs/EndpointGroupEndpointConfigurationArgs.java index 8b1a9fc2a99..db997f1dfd9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/inputs/EndpointGroupEndpointConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/inputs/EndpointGroupEndpointConfigurationArgs.java @@ -17,6 +17,21 @@ public final class EndpointGroupEndpointConfigurationArgs extends com.pulumi.res public static final EndpointGroupEndpointConfigurationArgs Empty = new EndpointGroupEndpointConfigurationArgs(); + /** + * An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + */ + @Import(name="attachmentArn") + private @Nullable Output attachmentArn; + + /** + * @return An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + */ + public Optional> attachmentArn() { + return Optional.ofNullable(this.attachmentArn); + } + /** * Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -67,6 +82,7 @@ public Optional> weight() { private EndpointGroupEndpointConfigurationArgs() {} private EndpointGroupEndpointConfigurationArgs(EndpointGroupEndpointConfigurationArgs $) { + this.attachmentArn = $.attachmentArn; this.clientIpPreservationEnabled = $.clientIpPreservationEnabled; this.endpointId = $.endpointId; this.weight = $.weight; @@ -90,6 +106,27 @@ public Builder(EndpointGroupEndpointConfigurationArgs defaults) { $ = new EndpointGroupEndpointConfigurationArgs(Objects.requireNonNull(defaults)); } + /** + * @param attachmentArn An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + * @return builder + * + */ + public Builder attachmentArn(@Nullable Output attachmentArn) { + $.attachmentArn = attachmentArn; + return this; + } + + /** + * @param attachmentArn An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + * @return builder + * + */ + public Builder attachmentArn(String attachmentArn) { + return attachmentArn(Output.of(attachmentArn)); + } + /** * @param clientIpPreservationEnabled Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. diff --git a/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/outputs/EndpointGroupEndpointConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/outputs/EndpointGroupEndpointConfiguration.java index 5c12fa29756..a7a02a34fbf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/outputs/EndpointGroupEndpointConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/globalaccelerator/outputs/EndpointGroupEndpointConfiguration.java @@ -13,6 +13,11 @@ @CustomType public final class EndpointGroupEndpointConfiguration { + /** + * @return An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + */ + private @Nullable String attachmentArn; /** * @return Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -31,6 +36,13 @@ public final class EndpointGroupEndpointConfiguration { private @Nullable Integer weight; private EndpointGroupEndpointConfiguration() {} + /** + * @return An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + * + */ + public Optional attachmentArn() { + return Optional.ofNullable(this.attachmentArn); + } /** * @return Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -63,17 +75,25 @@ public static Builder builder(EndpointGroupEndpointConfiguration defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String attachmentArn; private @Nullable Boolean clientIpPreservationEnabled; private @Nullable String endpointId; private @Nullable Integer weight; public Builder() {} public Builder(EndpointGroupEndpointConfiguration defaults) { Objects.requireNonNull(defaults); + this.attachmentArn = defaults.attachmentArn; this.clientIpPreservationEnabled = defaults.clientIpPreservationEnabled; this.endpointId = defaults.endpointId; this.weight = defaults.weight; } + @CustomType.Setter + public Builder attachmentArn(@Nullable String attachmentArn) { + + this.attachmentArn = attachmentArn; + return this; + } @CustomType.Setter public Builder clientIpPreservationEnabled(@Nullable Boolean clientIpPreservationEnabled) { @@ -94,6 +114,7 @@ public Builder weight(@Nullable Integer weight) { } public EndpointGroupEndpointConfiguration build() { final var _resultValue = new EndpointGroupEndpointConfiguration(); + _resultValue.attachmentArn = attachmentArn; _resultValue.clientIpPreservationEnabled = clientIpPreservationEnabled; _resultValue.endpointId = endpointId; _resultValue.weight = weight; diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusive.java b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusive.java new file mode 100644 index 00000000000..d3ac4406317 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusive.java @@ -0,0 +1,113 @@ +// *** 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.iam; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.iam.GroupPoliciesExclusiveArgs; +import com.pulumi.aws.iam.inputs.GroupPoliciesExclusiveState; +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.List; +import javax.annotation.Nullable; + +/** + * ## Import + * + * Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: + * + * ```sh + * $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup + * ``` + * + */ +@ResourceType(type="aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive") +public class GroupPoliciesExclusive extends com.pulumi.resources.CustomResource { + /** + * IAM group name. + * + */ + @Export(name="groupName", refs={String.class}, tree="[0]") + private Output groupName; + + /** + * @return IAM group name. + * + */ + public Output groupName() { + return this.groupName; + } + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + @Export(name="policyNames", refs={List.class,String.class}, tree="[0,1]") + private Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + public Output> policyNames() { + return this.policyNames; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GroupPoliciesExclusive(java.lang.String name) { + this(name, GroupPoliciesExclusiveArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GroupPoliciesExclusive(java.lang.String name, GroupPoliciesExclusiveArgs 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 GroupPoliciesExclusive(java.lang.String name, GroupPoliciesExclusiveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GroupPoliciesExclusive(java.lang.String name, Output id, @Nullable GroupPoliciesExclusiveState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive", name, state, makeResourceOptions(options, id), false); + } + + private static GroupPoliciesExclusiveArgs makeArgs(GroupPoliciesExclusiveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GroupPoliciesExclusiveArgs.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 GroupPoliciesExclusive get(java.lang.String name, Output id, @Nullable GroupPoliciesExclusiveState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GroupPoliciesExclusive(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusiveArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusiveArgs.java new file mode 100644 index 00000000000..7b0acf8ced6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPoliciesExclusiveArgs.java @@ -0,0 +1,136 @@ +// *** 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.iam; + +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.Objects; + + +public final class GroupPoliciesExclusiveArgs extends com.pulumi.resources.ResourceArgs { + + public static final GroupPoliciesExclusiveArgs Empty = new GroupPoliciesExclusiveArgs(); + + /** + * IAM group name. + * + */ + @Import(name="groupName", required=true) + private Output groupName; + + /** + * @return IAM group name. + * + */ + public Output groupName() { + return this.groupName; + } + + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + @Import(name="policyNames", required=true) + private Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + public Output> policyNames() { + return this.policyNames; + } + + private GroupPoliciesExclusiveArgs() {} + + private GroupPoliciesExclusiveArgs(GroupPoliciesExclusiveArgs $) { + this.groupName = $.groupName; + this.policyNames = $.policyNames; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GroupPoliciesExclusiveArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GroupPoliciesExclusiveArgs $; + + public Builder() { + $ = new GroupPoliciesExclusiveArgs(); + } + + public Builder(GroupPoliciesExclusiveArgs defaults) { + $ = new GroupPoliciesExclusiveArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param groupName IAM group name. + * + * @return builder + * + */ + public Builder groupName(Output groupName) { + $.groupName = groupName; + return this; + } + + /** + * @param groupName IAM group name. + * + * @return builder + * + */ + public Builder groupName(String groupName) { + return groupName(Output.of(groupName)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(Output> policyNames) { + $.policyNames = policyNames; + return this; + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(List policyNames) { + return policyNames(Output.of(policyNames)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(String... policyNames) { + return policyNames(List.of(policyNames)); + } + + public GroupPoliciesExclusiveArgs build() { + if ($.groupName == null) { + throw new MissingRequiredPropertyException("GroupPoliciesExclusiveArgs", "groupName"); + } + if ($.policyNames == null) { + throw new MissingRequiredPropertyException("GroupPoliciesExclusiveArgs", "policyNames"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusive.java b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusive.java new file mode 100644 index 00000000000..21e09351341 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusive.java @@ -0,0 +1,113 @@ +// *** 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.iam; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.iam.UserPoliciesExclusiveArgs; +import com.pulumi.aws.iam.inputs.UserPoliciesExclusiveState; +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.List; +import javax.annotation.Nullable; + +/** + * ## Import + * + * Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: + * + * ```sh + * $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser + * ``` + * + */ +@ResourceType(type="aws:iam/userPoliciesExclusive:UserPoliciesExclusive") +public class UserPoliciesExclusive extends com.pulumi.resources.CustomResource { + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + @Export(name="policyNames", refs={List.class,String.class}, tree="[0,1]") + private Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + public Output> policyNames() { + return this.policyNames; + } + /** + * IAM user name. + * + */ + @Export(name="userName", refs={String.class}, tree="[0]") + private Output userName; + + /** + * @return IAM user name. + * + */ + public Output userName() { + return this.userName; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public UserPoliciesExclusive(java.lang.String name) { + this(name, UserPoliciesExclusiveArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public UserPoliciesExclusive(java.lang.String name, UserPoliciesExclusiveArgs 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 UserPoliciesExclusive(java.lang.String name, UserPoliciesExclusiveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private UserPoliciesExclusive(java.lang.String name, Output id, @Nullable UserPoliciesExclusiveState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:iam/userPoliciesExclusive:UserPoliciesExclusive", name, state, makeResourceOptions(options, id), false); + } + + private static UserPoliciesExclusiveArgs makeArgs(UserPoliciesExclusiveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UserPoliciesExclusiveArgs.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 UserPoliciesExclusive get(java.lang.String name, Output id, @Nullable UserPoliciesExclusiveState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new UserPoliciesExclusive(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusiveArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusiveArgs.java new file mode 100644 index 00000000000..0c889a9ba57 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPoliciesExclusiveArgs.java @@ -0,0 +1,136 @@ +// *** 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.iam; + +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.Objects; + + +public final class UserPoliciesExclusiveArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserPoliciesExclusiveArgs Empty = new UserPoliciesExclusiveArgs(); + + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + @Import(name="policyNames", required=true) + private Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + public Output> policyNames() { + return this.policyNames; + } + + /** + * IAM user name. + * + */ + @Import(name="userName", required=true) + private Output userName; + + /** + * @return IAM user name. + * + */ + public Output userName() { + return this.userName; + } + + private UserPoliciesExclusiveArgs() {} + + private UserPoliciesExclusiveArgs(UserPoliciesExclusiveArgs $) { + this.policyNames = $.policyNames; + this.userName = $.userName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserPoliciesExclusiveArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserPoliciesExclusiveArgs $; + + public Builder() { + $ = new UserPoliciesExclusiveArgs(); + } + + public Builder(UserPoliciesExclusiveArgs defaults) { + $ = new UserPoliciesExclusiveArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(Output> policyNames) { + $.policyNames = policyNames; + return this; + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(List policyNames) { + return policyNames(Output.of(policyNames)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(String... policyNames) { + return policyNames(List.of(policyNames)); + } + + /** + * @param userName IAM user name. + * + * @return builder + * + */ + public Builder userName(Output userName) { + $.userName = userName; + return this; + } + + /** + * @param userName IAM user name. + * + * @return builder + * + */ + public Builder userName(String userName) { + return userName(Output.of(userName)); + } + + public UserPoliciesExclusiveArgs build() { + if ($.policyNames == null) { + throw new MissingRequiredPropertyException("UserPoliciesExclusiveArgs", "policyNames"); + } + if ($.userName == null) { + throw new MissingRequiredPropertyException("UserPoliciesExclusiveArgs", "userName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/GroupPoliciesExclusiveState.java b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/GroupPoliciesExclusiveState.java new file mode 100644 index 00000000000..9d89f66407f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/GroupPoliciesExclusiveState.java @@ -0,0 +1,131 @@ +// *** 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.iam.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GroupPoliciesExclusiveState extends com.pulumi.resources.ResourceArgs { + + public static final GroupPoliciesExclusiveState Empty = new GroupPoliciesExclusiveState(); + + /** + * IAM group name. + * + */ + @Import(name="groupName") + private @Nullable Output groupName; + + /** + * @return IAM group name. + * + */ + public Optional> groupName() { + return Optional.ofNullable(this.groupName); + } + + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + @Import(name="policyNames") + private @Nullable Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + */ + public Optional>> policyNames() { + return Optional.ofNullable(this.policyNames); + } + + private GroupPoliciesExclusiveState() {} + + private GroupPoliciesExclusiveState(GroupPoliciesExclusiveState $) { + this.groupName = $.groupName; + this.policyNames = $.policyNames; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GroupPoliciesExclusiveState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GroupPoliciesExclusiveState $; + + public Builder() { + $ = new GroupPoliciesExclusiveState(); + } + + public Builder(GroupPoliciesExclusiveState defaults) { + $ = new GroupPoliciesExclusiveState(Objects.requireNonNull(defaults)); + } + + /** + * @param groupName IAM group name. + * + * @return builder + * + */ + public Builder groupName(@Nullable Output groupName) { + $.groupName = groupName; + return this; + } + + /** + * @param groupName IAM group name. + * + * @return builder + * + */ + public Builder groupName(String groupName) { + return groupName(Output.of(groupName)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(@Nullable Output> policyNames) { + $.policyNames = policyNames; + return this; + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(List policyNames) { + return policyNames(Output.of(policyNames)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(String... policyNames) { + return policyNames(List.of(policyNames)); + } + + public GroupPoliciesExclusiveState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/UserPoliciesExclusiveState.java b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/UserPoliciesExclusiveState.java new file mode 100644 index 00000000000..cd58e06e193 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/UserPoliciesExclusiveState.java @@ -0,0 +1,131 @@ +// *** 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.iam.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class UserPoliciesExclusiveState extends com.pulumi.resources.ResourceArgs { + + public static final UserPoliciesExclusiveState Empty = new UserPoliciesExclusiveState(); + + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + @Import(name="policyNames") + private @Nullable Output> policyNames; + + /** + * @return A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + */ + public Optional>> policyNames() { + return Optional.ofNullable(this.policyNames); + } + + /** + * IAM user name. + * + */ + @Import(name="userName") + private @Nullable Output userName; + + /** + * @return IAM user name. + * + */ + public Optional> userName() { + return Optional.ofNullable(this.userName); + } + + private UserPoliciesExclusiveState() {} + + private UserPoliciesExclusiveState(UserPoliciesExclusiveState $) { + this.policyNames = $.policyNames; + this.userName = $.userName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserPoliciesExclusiveState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserPoliciesExclusiveState $; + + public Builder() { + $ = new UserPoliciesExclusiveState(); + } + + public Builder(UserPoliciesExclusiveState defaults) { + $ = new UserPoliciesExclusiveState(Objects.requireNonNull(defaults)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(@Nullable Output> policyNames) { + $.policyNames = policyNames; + return this; + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(List policyNames) { + return policyNames(Output.of(policyNames)); + } + + /** + * @param policyNames A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + * + * @return builder + * + */ + public Builder policyNames(String... policyNames) { + return policyNames(List.of(policyNames)); + } + + /** + * @param userName IAM user name. + * + * @return builder + * + */ + public Builder userName(@Nullable Output userName) { + $.userName = userName; + return this; + } + + /** + * @param userName IAM user name. + * + * @return builder + * + */ + public Builder userName(String userName) { + return userName(Output.of(userName)); + } + + public UserPoliciesExclusiveState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java index ae9ad1183da..2199c9109d1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStream.java @@ -112,7 +112,7 @@ * .name("firehose_lambda_processor") * .role(lambdaIam.arn()) * .handler("exports.handler") - * .runtime("nodejs16.x") + * .runtime("nodejs20.x") * .build()); * * var extendedS3Stream = new FirehoseDeliveryStream("extendedS3Stream", FirehoseDeliveryStreamArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfig.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfig.java index 8c3894dc92d..4f3ac95f461 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfig.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfig.java @@ -13,6 +13,7 @@ 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; @@ -58,6 +59,7 @@ * .untrustedArtifactOnDeployment("Warn") * .build()) * .description("My awesome code signing config.") + * .tags(Map.of("Name", "dynamodb")) * .build()); * * } @@ -161,6 +163,38 @@ public Output lastModified() { public Output policies() { return this.policies; } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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; + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfigArgs.java index 60c2e993341..8016db809e8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/CodeSigningConfigArgs.java @@ -9,6 +9,7 @@ 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; @@ -63,12 +64,28 @@ public Optional> policies() { return Optional.ofNullable(this.policies); } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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 CodeSigningConfigArgs() {} private CodeSigningConfigArgs(CodeSigningConfigArgs $) { this.allowedPublishers = $.allowedPublishers; this.description = $.description; this.policies = $.policies; + this.tags = $.tags; } public static Builder builder() { @@ -152,6 +169,27 @@ public Builder policies(CodeSigningConfigPoliciesArgs policies) { return policies(Output.of(policies)); } + /** + * @param tags Map of tags to assign to the object. 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 Map of tags to assign to the object. 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 CodeSigningConfigArgs build() { if ($.allowedPublishers == null) { throw new MissingRequiredPropertyException("CodeSigningConfigArgs", "allowedPublishers"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMapping.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMapping.java index 17eb2298098..76d55c0932f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMapping.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMapping.java @@ -22,6 +22,7 @@ import java.lang.Integer; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; @@ -62,6 +63,7 @@ * .eventSourceArn(exampleAwsDynamodbTable.streamArn()) * .functionName(exampleAwsLambdaFunction.arn()) * .startingPosition("LATEST") + * .tags(Map.of("Name", "dynamodb")) * .build()); * * } @@ -410,6 +412,20 @@ public class EventSourceMapping extends com.pulumi.resources.CustomResource { public Output amazonManagedKafkaEventSourceConfig() { return this.amazonManagedKafkaEventSourceConfig; } + /** + * The event source mapping ARN. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The event source mapping ARN. + * + */ + public Output arn() { + return this.arn; + } /** * The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. * @@ -509,14 +525,14 @@ public Output> filterCriteria() { return Codegen.optional(this.filterCriteria); } /** - * The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * */ @Export(name="functionArn", refs={String.class}, tree="[0]") private Output functionArn; /** - * @return The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * @return The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * */ public Output functionArn() { @@ -774,6 +790,38 @@ public Output state() { public Output stateTransitionReason() { return this.stateTransitionReason; } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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; + } /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMappingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMappingArgs.java index 0b7659564d2..4f6261dad2c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMappingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/EventSourceMappingArgs.java @@ -18,6 +18,7 @@ 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; @@ -357,6 +358,21 @@ public Optional> startingPositionTimestamp() { return Optional.ofNullable(this.startingPositionTimestamp); } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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); + } + /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. * @@ -412,6 +428,7 @@ private EventSourceMappingArgs(EventSourceMappingArgs $) { this.sourceAccessConfigurations = $.sourceAccessConfigurations; this.startingPosition = $.startingPosition; this.startingPositionTimestamp = $.startingPositionTimestamp; + this.tags = $.tags; this.topics = $.topics; this.tumblingWindowInSeconds = $.tumblingWindowInSeconds; } @@ -916,6 +933,27 @@ public Builder startingPositionTimestamp(String startingPositionTimestamp) { return startingPositionTimestamp(Output.of(startingPositionTimestamp)); } + /** + * @param tags Map of tags to assign to the object. 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 Map of tags to assign to the object. 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 topics The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/LayerVersion.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/LayerVersion.java index ed9f1e53ef0..16e3bbdf908 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/LayerVersion.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/LayerVersion.java @@ -54,7 +54,7 @@ * var lambdaLayer = new LayerVersion("lambdaLayer", LayerVersionArgs.builder() * .code(new FileArchive("lambda_layer_payload.zip")) * .layerName("lambda_layer_name") - * .compatibleRuntimes("nodejs16.x") + * .compatibleRuntimes("nodejs20.x") * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/Permission.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/Permission.java index ac0cf3edd13..a6bb6ac8952 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/Permission.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/Permission.java @@ -73,7 +73,7 @@ * .name("lambda_function_name") * .role(iamForLambda.arn()) * .handler("exports.handler") - * .runtime("nodejs16.x") + * .runtime("nodejs20.x") * .build()); * * var testAlias = new Alias("testAlias", AliasArgs.builder() @@ -158,7 +158,7 @@ * .name("lambda_called_from_sns") * .role(defaultRole.arn()) * .handler("exports.handler") - * .runtime("python3.7") + * .runtime("python3.12") * .build()); * * var withSns = new Permission("withSns", PermissionArgs.builder() @@ -289,7 +289,7 @@ * .name("lambda_called_from_cloudwatch_logs") * .handler("exports.handler") * .role(defaultRole.arn()) - * .runtime("python3.7") + * .runtime("python3.12") * .build()); * * var logging = new Permission("logging", PermissionArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/CodeSigningConfigState.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/CodeSigningConfigState.java index 456963d3c61..229635127c4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/CodeSigningConfigState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/CodeSigningConfigState.java @@ -8,6 +8,7 @@ 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; @@ -107,6 +108,44 @@ public Optional> policies() { return Optional.ofNullable(this.policies); } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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); + } + private CodeSigningConfigState() {} private CodeSigningConfigState(CodeSigningConfigState $) { @@ -116,6 +155,8 @@ private CodeSigningConfigState(CodeSigningConfigState $) { this.description = $.description; this.lastModified = $.lastModified; this.policies = $.policies; + this.tags = $.tags; + this.tagsAll = $.tagsAll; } public static Builder builder() { @@ -262,6 +303,56 @@ public Builder policies(CodeSigningConfigPoliciesArgs policies) { return policies(Output.of(policies)); } + /** + * @param tags Map of tags to assign to the object. 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 Map of tags to assign to the object. 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 CodeSigningConfigState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/EventSourceMappingState.java b/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/EventSourceMappingState.java index 1d589ab7610..657da965055 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/EventSourceMappingState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lambda/inputs/EventSourceMappingState.java @@ -17,6 +17,7 @@ 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; @@ -41,6 +42,21 @@ public Optional arn; + + /** + * @return The event source mapping ARN. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + /** * The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. * @@ -147,14 +163,14 @@ public Optional> filterCriteria() { } /** - * The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * */ @Import(name="functionArn") private @Nullable Output functionArn; /** - * @return The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * @return The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * */ public Optional> functionArn() { @@ -431,6 +447,44 @@ public Optional> stateTransitionReason() { return Optional.ofNullable(this.stateTransitionReason); } + /** + * Map of tags to assign to the object. 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 Map of tags to assign to the object. 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); + } + /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. * @@ -480,6 +534,7 @@ private EventSourceMappingState() {} private EventSourceMappingState(EventSourceMappingState $) { this.amazonManagedKafkaEventSourceConfig = $.amazonManagedKafkaEventSourceConfig; + this.arn = $.arn; this.batchSize = $.batchSize; this.bisectBatchOnFunctionError = $.bisectBatchOnFunctionError; this.destinationConfig = $.destinationConfig; @@ -506,6 +561,8 @@ private EventSourceMappingState(EventSourceMappingState $) { this.startingPositionTimestamp = $.startingPositionTimestamp; this.state = $.state; this.stateTransitionReason = $.stateTransitionReason; + this.tags = $.tags; + this.tagsAll = $.tagsAll; this.topics = $.topics; this.tumblingWindowInSeconds = $.tumblingWindowInSeconds; this.uuid = $.uuid; @@ -550,6 +607,27 @@ public Builder amazonManagedKafkaEventSourceConfig(EventSourceMappingAmazonManag return amazonManagedKafkaEventSourceConfig(Output.of(amazonManagedKafkaEventSourceConfig)); } + /** + * @param arn The event source mapping ARN. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The event source mapping ARN. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + /** * @param batchSize The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. * @@ -698,7 +776,7 @@ public Builder filterCriteria(EventSourceMappingFilterCriteriaArgs filterCriteri } /** - * @param functionArn The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * @param functionArn The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * * @return builder * @@ -709,7 +787,7 @@ public Builder functionArn(@Nullable Output functionArn) { } /** - * @param functionArn The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + * @param functionArn The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) * * @return builder * @@ -1116,6 +1194,56 @@ public Builder stateTransitionReason(String stateTransitionReason) { return stateTransitionReason(Output.of(stateTransitionReason)); } + /** + * @param tags Map of tags to assign to the object. 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 Map of tags to assign to the object. 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 topics The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/AnalyticsConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/s3/AnalyticsConfiguration.java index a95cc11745a..57c7c629a1a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/s3/AnalyticsConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/s3/AnalyticsConfiguration.java @@ -59,7 +59,7 @@ * .build()); * * var analytics = new BucketV2("analytics", BucketV2Args.builder() - * .bucket("analytics destination") + * .bucket("analytics-destination") * .build()); * * var example_entire_bucket = new AnalyticsConfiguration("example-entire-bucket", AnalyticsConfigurationArgs.builder() diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2.java b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2.java index 51d03f8d1fd..1140885b25e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2.java +++ b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2.java @@ -381,7 +381,7 @@ * * ### Specifying a filter based on object size * - * Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). + * Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`object_size_greater_than`) or a maximum size (`object_size_less_than`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: * * <!--Start PulumiCodeChooser --> *
@@ -411,11 +411,15 @@
  *         var example = new BucketLifecycleConfigurationV2("example", BucketLifecycleConfigurationV2Args.builder()
  *             .bucket(bucket.id())
  *             .rules(BucketLifecycleConfigurationV2RuleArgs.builder()
- *                 .id("rule-1")
+ *                 .id("Allow small object transitions")
  *                 .filter(BucketLifecycleConfigurationV2RuleFilterArgs.builder()
- *                     .objectSizeGreaterThan(500)
+ *                     .objectSizeGreaterThan(1)
  *                     .build())
  *                 .status("Enabled")
+ *                 .transitions(BucketLifecycleConfigurationV2RuleTransitionArgs.builder()
+ *                     .days(365)
+ *                     .storageClass("GLACIER_IR")
+ *                     .build())
  *                 .build())
  *             .build());
  * 
@@ -672,6 +676,20 @@ public Output> expectedBucketOwner() {
     public Output> rules() {
         return this.rules;
     }
+    /**
+     * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    @Export(name="transitionDefaultMinimumObjectSize", refs={String.class}, tree="[0]")
+    private Output transitionDefaultMinimumObjectSize;
+
+    /**
+     * @return The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    public Output transitionDefaultMinimumObjectSize() {
+        return this.transitionDefaultMinimumObjectSize;
+    }
 
     /**
      *
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2Args.java b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2Args.java
index b006f286e1f..2f99c66f2fa 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2Args.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketLifecycleConfigurationV2Args.java
@@ -63,12 +63,28 @@ public Output> rules() {
         return this.rules;
     }
 
+    /**
+     * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    @Import(name="transitionDefaultMinimumObjectSize")
+    private @Nullable Output transitionDefaultMinimumObjectSize;
+
+    /**
+     * @return The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    public Optional> transitionDefaultMinimumObjectSize() {
+        return Optional.ofNullable(this.transitionDefaultMinimumObjectSize);
+    }
+
     private BucketLifecycleConfigurationV2Args() {}
 
     private BucketLifecycleConfigurationV2Args(BucketLifecycleConfigurationV2Args $) {
         this.bucket = $.bucket;
         this.expectedBucketOwner = $.expectedBucketOwner;
         this.rules = $.rules;
+        this.transitionDefaultMinimumObjectSize = $.transitionDefaultMinimumObjectSize;
     }
 
     public static Builder builder() {
@@ -162,6 +178,27 @@ public Builder rules(BucketLifecycleConfigurationV2RuleArgs... rules) {
             return rules(List.of(rules));
         }
 
+        /**
+         * @param transitionDefaultMinimumObjectSize The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder transitionDefaultMinimumObjectSize(@Nullable Output transitionDefaultMinimumObjectSize) {
+            $.transitionDefaultMinimumObjectSize = transitionDefaultMinimumObjectSize;
+            return this;
+        }
+
+        /**
+         * @param transitionDefaultMinimumObjectSize The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder transitionDefaultMinimumObjectSize(String transitionDefaultMinimumObjectSize) {
+            return transitionDefaultMinimumObjectSize(Output.of(transitionDefaultMinimumObjectSize));
+        }
+
         public BucketLifecycleConfigurationV2Args build() {
             if ($.bucket == null) {
                 throw new MissingRequiredPropertyException("BucketLifecycleConfigurationV2Args", "bucket");
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketNotification.java b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketNotification.java
index 03ca0d2c6c5..e4586d19ce0 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketNotification.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketNotification.java
@@ -233,7 +233,7 @@
  *             .name("example_lambda_name")
  *             .role(iamForLambda.arn())
  *             .handler("exports.example")
- *             .runtime("go1.x")
+ *             .runtime("nodejs20.x")
  *             .build());
  * 
  *         var bucket = new BucketV2("bucket", BucketV2Args.builder()
@@ -325,7 +325,7 @@
  *             .name("example_lambda_name1")
  *             .role(iamForLambda.arn())
  *             .handler("exports.example")
- *             .runtime("go1.x")
+ *             .runtime("nodejs20.x")
  *             .build());
  * 
  *         var bucket = new BucketV2("bucket", BucketV2Args.builder()
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketObjectLockConfigurationV2.java b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketObjectLockConfigurationV2.java
index 1a3a2c9b3db..a24aecbf5d6 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/BucketObjectLockConfigurationV2.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/BucketObjectLockConfigurationV2.java
@@ -86,21 +86,14 @@
  * 
  * ## Import
  * 
- * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):
+ * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example:
  * 
- * import {
- *   to = aws_s3_bucket_object_lock_configuration.example
- *   id = "bucket-name,123456789012"
- * }
- * 
- * __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example:
- * 
- * If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`:
+ * __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example:
  * 
  * ```sh
  * $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name
  * ```
- * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`):
+ * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example:
  * 
  * ```sh
  * $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.java b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.java
index 6020d65044f..7ecd0b34618 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2RuleFilterAndArgs.java
@@ -18,14 +18,14 @@ public final class BucketLifecycleConfigurationV2RuleFilterAndArgs extends com.p
     public static final BucketLifecycleConfigurationV2RuleFilterAndArgs Empty = new BucketLifecycleConfigurationV2RuleFilterAndArgs();
 
     /**
-     * Minimum object size to which the rule applies. Value must be at least `0` if specified.
+     * Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
      * 
      */
     @Import(name="objectSizeGreaterThan")
     private @Nullable Output objectSizeGreaterThan;
 
     /**
-     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified.
+     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
      * 
      */
     public Optional> objectSizeGreaterThan() {
@@ -105,7 +105,7 @@ public Builder(BucketLifecycleConfigurationV2RuleFilterAndArgs defaults) {
         }
 
         /**
-         * @param objectSizeGreaterThan Minimum object size to which the rule applies. Value must be at least `0` if specified.
+         * @param objectSizeGreaterThan Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
          * 
          * @return builder
          * 
@@ -116,7 +116,7 @@ public Builder objectSizeGreaterThan(@Nullable Output objectSizeGreater
         }
 
         /**
-         * @param objectSizeGreaterThan Minimum object size to which the rule applies. Value must be at least `0` if specified.
+         * @param objectSizeGreaterThan Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2State.java b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2State.java
index 516d7670f4f..929367ab89a 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2State.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/inputs/BucketLifecycleConfigurationV2State.java
@@ -62,12 +62,28 @@ public Optional>> rules() {
         return Optional.ofNullable(this.rules);
     }
 
+    /**
+     * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    @Import(name="transitionDefaultMinimumObjectSize")
+    private @Nullable Output transitionDefaultMinimumObjectSize;
+
+    /**
+     * @return The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+     * 
+     */
+    public Optional> transitionDefaultMinimumObjectSize() {
+        return Optional.ofNullable(this.transitionDefaultMinimumObjectSize);
+    }
+
     private BucketLifecycleConfigurationV2State() {}
 
     private BucketLifecycleConfigurationV2State(BucketLifecycleConfigurationV2State $) {
         this.bucket = $.bucket;
         this.expectedBucketOwner = $.expectedBucketOwner;
         this.rules = $.rules;
+        this.transitionDefaultMinimumObjectSize = $.transitionDefaultMinimumObjectSize;
     }
 
     public static Builder builder() {
@@ -161,6 +177,27 @@ public Builder rules(BucketLifecycleConfigurationV2RuleArgs... rules) {
             return rules(List.of(rules));
         }
 
+        /**
+         * @param transitionDefaultMinimumObjectSize The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder transitionDefaultMinimumObjectSize(@Nullable Output transitionDefaultMinimumObjectSize) {
+            $.transitionDefaultMinimumObjectSize = transitionDefaultMinimumObjectSize;
+            return this;
+        }
+
+        /**
+         * @param transitionDefaultMinimumObjectSize The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder transitionDefaultMinimumObjectSize(String transitionDefaultMinimumObjectSize) {
+            return transitionDefaultMinimumObjectSize(Output.of(transitionDefaultMinimumObjectSize));
+        }
+
         public BucketLifecycleConfigurationV2State build() {
             return $;
         }
diff --git a/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/BucketLifecycleConfigurationV2RuleFilterAnd.java b/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/BucketLifecycleConfigurationV2RuleFilterAnd.java
index 12227920b76..a6fd5a54220 100644
--- a/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/BucketLifecycleConfigurationV2RuleFilterAnd.java
+++ b/sdk/java/src/main/java/com/pulumi/aws/s3/outputs/BucketLifecycleConfigurationV2RuleFilterAnd.java
@@ -14,7 +14,7 @@
 @CustomType
 public final class BucketLifecycleConfigurationV2RuleFilterAnd {
     /**
-     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified.
+     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
      * 
      */
     private @Nullable Integer objectSizeGreaterThan;
@@ -36,7 +36,7 @@ public final class BucketLifecycleConfigurationV2RuleFilterAnd {
 
     private BucketLifecycleConfigurationV2RuleFilterAnd() {}
     /**
-     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified.
+     * @return Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise.
      * 
      */
     public Optional objectSizeGreaterThan() {
diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociation.java
new file mode 100644
index 00000000000..53dcc714e37
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociation.java
@@ -0,0 +1,189 @@
+// *** 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.securityhub;
+
+import com.pulumi.aws.Utilities;
+import com.pulumi.aws.securityhub.StandardsControlAssociationArgs;
+import com.pulumi.aws.securityhub.inputs.StandardsControlAssociationState;
+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.Optional;
+import javax.annotation.Nullable;
+
+/**
+ * ## 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.securityhub.Account;
+ * import com.pulumi.aws.securityhub.StandardsSubscription;
+ * import com.pulumi.aws.securityhub.StandardsSubscriptionArgs;
+ * import com.pulumi.aws.standardsControlAssociation;
+ * import com.pulumi.aws.StandardsControlAssociationArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * 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 Account("example");
+ * 
+ *         var cisAwsFoundationsBenchmark = new StandardsSubscription("cisAwsFoundationsBenchmark", StandardsSubscriptionArgs.builder()
+ *             .standardsArn("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(example)
+ *                 .build());
+ * 
+ *         var cisAwsFoundationsBenchmarkDisableIam1 = new StandardsControlAssociation("cisAwsFoundationsBenchmarkDisableIam1", StandardsControlAssociationArgs.builder()
+ *             .standardsArn(cisAwsFoundationsBenchmark.standardsArn())
+ *             .securityControlId("IAM.1")
+ *             .associationStatus("DISABLED")
+ *             .updatedReason("Not needed")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="aws:securityhub/standardsControlAssociation:StandardsControlAssociation") +public class StandardsControlAssociation extends com.pulumi.resources.CustomResource { + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Export(name="associationStatus", refs={String.class}, tree="[0]") + private Output associationStatus; + + /** + * @return The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Output associationStatus() { + return this.associationStatus; + } + /** + * The unique identifier for the security control whose enablement status you want to update. + * + */ + @Export(name="securityControlId", refs={String.class}, tree="[0]") + private Output securityControlId; + + /** + * @return The unique identifier for the security control whose enablement status you want to update. + * + */ + public Output securityControlId() { + return this.securityControlId; + } + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + @Export(name="standardsArn", refs={String.class}, tree="[0]") + private Output standardsArn; + + /** + * @return The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + public Output standardsArn() { + return this.standardsArn; + } + /** + * The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + @Export(name="updatedReason", refs={String.class}, tree="[0]") + private Output updatedReason; + + /** + * @return The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + public Output> updatedReason() { + return Codegen.optional(this.updatedReason); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public StandardsControlAssociation(java.lang.String name) { + this(name, StandardsControlAssociationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public StandardsControlAssociation(java.lang.String name, StandardsControlAssociationArgs 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 StandardsControlAssociation(java.lang.String name, StandardsControlAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private StandardsControlAssociation(java.lang.String name, Output id, @Nullable StandardsControlAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:securityhub/standardsControlAssociation:StandardsControlAssociation", name, state, makeResourceOptions(options, id), false); + } + + private static StandardsControlAssociationArgs makeArgs(StandardsControlAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StandardsControlAssociationArgs.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 StandardsControlAssociation get(java.lang.String name, Output id, @Nullable StandardsControlAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new StandardsControlAssociation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociationArgs.java new file mode 100644 index 00000000000..a823cb1ba00 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsControlAssociationArgs.java @@ -0,0 +1,212 @@ +// *** 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.securityhub; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StandardsControlAssociationArgs extends com.pulumi.resources.ResourceArgs { + + public static final StandardsControlAssociationArgs Empty = new StandardsControlAssociationArgs(); + + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="associationStatus", required=true) + private Output associationStatus; + + /** + * @return The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Output associationStatus() { + return this.associationStatus; + } + + /** + * The unique identifier for the security control whose enablement status you want to update. + * + */ + @Import(name="securityControlId", required=true) + private Output securityControlId; + + /** + * @return The unique identifier for the security control whose enablement status you want to update. + * + */ + public Output securityControlId() { + return this.securityControlId; + } + + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + @Import(name="standardsArn", required=true) + private Output standardsArn; + + /** + * @return The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + public Output standardsArn() { + return this.standardsArn; + } + + /** + * The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + @Import(name="updatedReason") + private @Nullable Output updatedReason; + + /** + * @return The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + public Optional> updatedReason() { + return Optional.ofNullable(this.updatedReason); + } + + private StandardsControlAssociationArgs() {} + + private StandardsControlAssociationArgs(StandardsControlAssociationArgs $) { + this.associationStatus = $.associationStatus; + this.securityControlId = $.securityControlId; + this.standardsArn = $.standardsArn; + this.updatedReason = $.updatedReason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StandardsControlAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StandardsControlAssociationArgs $; + + public Builder() { + $ = new StandardsControlAssociationArgs(); + } + + public Builder(StandardsControlAssociationArgs defaults) { + $ = new StandardsControlAssociationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param associationStatus The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder associationStatus(Output associationStatus) { + $.associationStatus = associationStatus; + return this; + } + + /** + * @param associationStatus The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder associationStatus(String associationStatus) { + return associationStatus(Output.of(associationStatus)); + } + + /** + * @param securityControlId The unique identifier for the security control whose enablement status you want to update. + * + * @return builder + * + */ + public Builder securityControlId(Output securityControlId) { + $.securityControlId = securityControlId; + return this; + } + + /** + * @param securityControlId The unique identifier for the security control whose enablement status you want to update. + * + * @return builder + * + */ + public Builder securityControlId(String securityControlId) { + return securityControlId(Output.of(securityControlId)); + } + + /** + * @param standardsArn The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder standardsArn(Output standardsArn) { + $.standardsArn = standardsArn; + return this; + } + + /** + * @param standardsArn The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder standardsArn(String standardsArn) { + return standardsArn(Output.of(standardsArn)); + } + + /** + * @param updatedReason The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + * @return builder + * + */ + public Builder updatedReason(@Nullable Output updatedReason) { + $.updatedReason = updatedReason; + return this; + } + + /** + * @param updatedReason The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + * @return builder + * + */ + public Builder updatedReason(String updatedReason) { + return updatedReason(Output.of(updatedReason)); + } + + public StandardsControlAssociationArgs build() { + if ($.associationStatus == null) { + throw new MissingRequiredPropertyException("StandardsControlAssociationArgs", "associationStatus"); + } + if ($.securityControlId == null) { + throw new MissingRequiredPropertyException("StandardsControlAssociationArgs", "securityControlId"); + } + if ($.standardsArn == null) { + throw new MissingRequiredPropertyException("StandardsControlAssociationArgs", "standardsArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsArgs.java index 18d4f77bbd5..5ea2de9d012 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsArgs.java @@ -3,15 +3,11 @@ package com.pulumi.aws.securityhub.inputs; -import com.pulumi.aws.securityhub.inputs.GetStandardsControlAssociationsStandardsControlAssociationArgs; 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.Objects; -import java.util.Optional; -import javax.annotation.Nullable; public final class GetStandardsControlAssociationsArgs extends com.pulumi.resources.InvokeArgs { @@ -33,28 +29,10 @@ public Output securityControlId() { return this.securityControlId; } - /** - * A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - */ - @Import(name="standardsControlAssociations") - private @Nullable Output> standardsControlAssociations; - - /** - * @return A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - */ - public Optional>> standardsControlAssociations() { - return Optional.ofNullable(this.standardsControlAssociations); - } - private GetStandardsControlAssociationsArgs() {} private GetStandardsControlAssociationsArgs(GetStandardsControlAssociationsArgs $) { this.securityControlId = $.securityControlId; - this.standardsControlAssociations = $.standardsControlAssociations; } public static Builder builder() { @@ -96,40 +74,6 @@ public Builder securityControlId(String securityControlId) { return securityControlId(Output.of(securityControlId)); } - /** - * @param standardsControlAssociations A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - * @return builder - * - */ - public Builder standardsControlAssociations(@Nullable Output> standardsControlAssociations) { - $.standardsControlAssociations = standardsControlAssociations; - return this; - } - - /** - * @param standardsControlAssociations A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - * @return builder - * - */ - public Builder standardsControlAssociations(List standardsControlAssociations) { - return standardsControlAssociations(Output.of(standardsControlAssociations)); - } - - /** - * @param standardsControlAssociations A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - * @return builder - * - */ - public Builder standardsControlAssociations(GetStandardsControlAssociationsStandardsControlAssociationArgs... standardsControlAssociations) { - return standardsControlAssociations(List.of(standardsControlAssociations)); - } - public GetStandardsControlAssociationsArgs build() { if ($.securityControlId == null) { throw new MissingRequiredPropertyException("GetStandardsControlAssociationsArgs", "securityControlId"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsPlainArgs.java index 0dd8bee3694..15cec1e21d1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsPlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsPlainArgs.java @@ -3,14 +3,10 @@ package com.pulumi.aws.securityhub.inputs; -import com.pulumi.aws.securityhub.inputs.GetStandardsControlAssociationsStandardsControlAssociation; import com.pulumi.core.annotations.Import; 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; public final class GetStandardsControlAssociationsPlainArgs extends com.pulumi.resources.InvokeArgs { @@ -32,28 +28,10 @@ public String securityControlId() { return this.securityControlId; } - /** - * A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - */ - @Import(name="standardsControlAssociations") - private @Nullable List standardsControlAssociations; - - /** - * @return A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - */ - public Optional> standardsControlAssociations() { - return Optional.ofNullable(this.standardsControlAssociations); - } - private GetStandardsControlAssociationsPlainArgs() {} private GetStandardsControlAssociationsPlainArgs(GetStandardsControlAssociationsPlainArgs $) { this.securityControlId = $.securityControlId; - this.standardsControlAssociations = $.standardsControlAssociations; } public static Builder builder() { @@ -85,29 +63,6 @@ public Builder securityControlId(String securityControlId) { return this; } - /** - * @param standardsControlAssociations A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - * @return builder - * - */ - public Builder standardsControlAssociations(@Nullable List standardsControlAssociations) { - $.standardsControlAssociations = standardsControlAssociations; - return this; - } - - /** - * @param standardsControlAssociations A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standards_control_associations` below. - * - * @return builder - * - */ - public Builder standardsControlAssociations(GetStandardsControlAssociationsStandardsControlAssociation... standardsControlAssociations) { - return standardsControlAssociations(List.of(standardsControlAssociations)); - } - public GetStandardsControlAssociationsPlainArgs build() { if ($.securityControlId == null) { throw new MissingRequiredPropertyException("GetStandardsControlAssociationsPlainArgs", "securityControlId"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociation.java deleted file mode 100644 index 2e9af5a3ad6..00000000000 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociation.java +++ /dev/null @@ -1,325 +0,0 @@ -// *** 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.securityhub.inputs; - -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.List; -import java.util.Objects; - - -public final class GetStandardsControlAssociationsStandardsControlAssociation extends com.pulumi.resources.InvokeArgs { - - public static final GetStandardsControlAssociationsStandardsControlAssociation Empty = new GetStandardsControlAssociationsStandardsControlAssociation(); - - /** - * Enablement status of a control in a specific standard. - * - */ - @Import(name="associationStatus", required=true) - private String associationStatus; - - /** - * @return Enablement status of a control in a specific standard. - * - */ - public String associationStatus() { - return this.associationStatus; - } - - /** - * List of underlying requirements in the compliance framework related to the standard. - * - */ - @Import(name="relatedRequirements", required=true) - private List relatedRequirements; - - /** - * @return List of underlying requirements in the compliance framework related to the standard. - * - */ - public List relatedRequirements() { - return this.relatedRequirements; - } - - /** - * ARN of the security control. - * - */ - @Import(name="securityControlArn", required=true) - private String securityControlArn; - - /** - * @return ARN of the security control. - * - */ - public String securityControlArn() { - return this.securityControlArn; - } - - /** - * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - */ - @Import(name="securityControlId", required=true) - private String securityControlId; - - /** - * @return The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - */ - public String securityControlId() { - return this.securityControlId; - } - - /** - * ARN of the standard. - * - */ - @Import(name="standardsArn", required=true) - private String standardsArn; - - /** - * @return ARN of the standard. - * - */ - public String standardsArn() { - return this.standardsArn; - } - - /** - * Description of the standard. - * - */ - @Import(name="standardsControlDescription", required=true) - private String standardsControlDescription; - - /** - * @return Description of the standard. - * - */ - public String standardsControlDescription() { - return this.standardsControlDescription; - } - - /** - * Title of the standard. - * - */ - @Import(name="standardsControlTitle", required=true) - private String standardsControlTitle; - - /** - * @return Title of the standard. - * - */ - public String standardsControlTitle() { - return this.standardsControlTitle; - } - - /** - * Last time that a control's enablement status in a specified standard was updated. - * - */ - @Import(name="updatedAt", required=true) - private String updatedAt; - - /** - * @return Last time that a control's enablement status in a specified standard was updated. - * - */ - public String updatedAt() { - return this.updatedAt; - } - - /** - * Reason for updating a control's enablement status in a specified standard. - * - */ - @Import(name="updatedReason", required=true) - private String updatedReason; - - /** - * @return Reason for updating a control's enablement status in a specified standard. - * - */ - public String updatedReason() { - return this.updatedReason; - } - - private GetStandardsControlAssociationsStandardsControlAssociation() {} - - private GetStandardsControlAssociationsStandardsControlAssociation(GetStandardsControlAssociationsStandardsControlAssociation $) { - this.associationStatus = $.associationStatus; - this.relatedRequirements = $.relatedRequirements; - this.securityControlArn = $.securityControlArn; - this.securityControlId = $.securityControlId; - this.standardsArn = $.standardsArn; - this.standardsControlDescription = $.standardsControlDescription; - this.standardsControlTitle = $.standardsControlTitle; - this.updatedAt = $.updatedAt; - this.updatedReason = $.updatedReason; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(GetStandardsControlAssociationsStandardsControlAssociation defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private GetStandardsControlAssociationsStandardsControlAssociation $; - - public Builder() { - $ = new GetStandardsControlAssociationsStandardsControlAssociation(); - } - - public Builder(GetStandardsControlAssociationsStandardsControlAssociation defaults) { - $ = new GetStandardsControlAssociationsStandardsControlAssociation(Objects.requireNonNull(defaults)); - } - - /** - * @param associationStatus Enablement status of a control in a specific standard. - * - * @return builder - * - */ - public Builder associationStatus(String associationStatus) { - $.associationStatus = associationStatus; - return this; - } - - /** - * @param relatedRequirements List of underlying requirements in the compliance framework related to the standard. - * - * @return builder - * - */ - public Builder relatedRequirements(List relatedRequirements) { - $.relatedRequirements = relatedRequirements; - return this; - } - - /** - * @param relatedRequirements List of underlying requirements in the compliance framework related to the standard. - * - * @return builder - * - */ - public Builder relatedRequirements(String... relatedRequirements) { - return relatedRequirements(List.of(relatedRequirements)); - } - - /** - * @param securityControlArn ARN of the security control. - * - * @return builder - * - */ - public Builder securityControlArn(String securityControlArn) { - $.securityControlArn = securityControlArn; - return this; - } - - /** - * @param securityControlId The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - * @return builder - * - */ - public Builder securityControlId(String securityControlId) { - $.securityControlId = securityControlId; - return this; - } - - /** - * @param standardsArn ARN of the standard. - * - * @return builder - * - */ - public Builder standardsArn(String standardsArn) { - $.standardsArn = standardsArn; - return this; - } - - /** - * @param standardsControlDescription Description of the standard. - * - * @return builder - * - */ - public Builder standardsControlDescription(String standardsControlDescription) { - $.standardsControlDescription = standardsControlDescription; - return this; - } - - /** - * @param standardsControlTitle Title of the standard. - * - * @return builder - * - */ - public Builder standardsControlTitle(String standardsControlTitle) { - $.standardsControlTitle = standardsControlTitle; - return this; - } - - /** - * @param updatedAt Last time that a control's enablement status in a specified standard was updated. - * - * @return builder - * - */ - public Builder updatedAt(String updatedAt) { - $.updatedAt = updatedAt; - return this; - } - - /** - * @param updatedReason Reason for updating a control's enablement status in a specified standard. - * - * @return builder - * - */ - public Builder updatedReason(String updatedReason) { - $.updatedReason = updatedReason; - return this; - } - - public GetStandardsControlAssociationsStandardsControlAssociation build() { - if ($.associationStatus == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "associationStatus"); - } - if ($.relatedRequirements == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "relatedRequirements"); - } - if ($.securityControlArn == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "securityControlArn"); - } - if ($.securityControlId == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "securityControlId"); - } - if ($.standardsArn == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "standardsArn"); - } - if ($.standardsControlDescription == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "standardsControlDescription"); - } - if ($.standardsControlTitle == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "standardsControlTitle"); - } - if ($.updatedAt == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "updatedAt"); - } - if ($.updatedReason == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociation", "updatedReason"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.java deleted file mode 100644 index 44b7ae45e79..00000000000 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/GetStandardsControlAssociationsStandardsControlAssociationArgs.java +++ /dev/null @@ -1,416 +0,0 @@ -// *** 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.securityhub.inputs; - -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.Objects; - - -public final class GetStandardsControlAssociationsStandardsControlAssociationArgs extends com.pulumi.resources.ResourceArgs { - - public static final GetStandardsControlAssociationsStandardsControlAssociationArgs Empty = new GetStandardsControlAssociationsStandardsControlAssociationArgs(); - - /** - * Enablement status of a control in a specific standard. - * - */ - @Import(name="associationStatus", required=true) - private Output associationStatus; - - /** - * @return Enablement status of a control in a specific standard. - * - */ - public Output associationStatus() { - return this.associationStatus; - } - - /** - * List of underlying requirements in the compliance framework related to the standard. - * - */ - @Import(name="relatedRequirements", required=true) - private Output> relatedRequirements; - - /** - * @return List of underlying requirements in the compliance framework related to the standard. - * - */ - public Output> relatedRequirements() { - return this.relatedRequirements; - } - - /** - * ARN of the security control. - * - */ - @Import(name="securityControlArn", required=true) - private Output securityControlArn; - - /** - * @return ARN of the security control. - * - */ - public Output securityControlArn() { - return this.securityControlArn; - } - - /** - * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - */ - @Import(name="securityControlId", required=true) - private Output securityControlId; - - /** - * @return The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - */ - public Output securityControlId() { - return this.securityControlId; - } - - /** - * ARN of the standard. - * - */ - @Import(name="standardsArn", required=true) - private Output standardsArn; - - /** - * @return ARN of the standard. - * - */ - public Output standardsArn() { - return this.standardsArn; - } - - /** - * Description of the standard. - * - */ - @Import(name="standardsControlDescription", required=true) - private Output standardsControlDescription; - - /** - * @return Description of the standard. - * - */ - public Output standardsControlDescription() { - return this.standardsControlDescription; - } - - /** - * Title of the standard. - * - */ - @Import(name="standardsControlTitle", required=true) - private Output standardsControlTitle; - - /** - * @return Title of the standard. - * - */ - public Output standardsControlTitle() { - return this.standardsControlTitle; - } - - /** - * Last time that a control's enablement status in a specified standard was updated. - * - */ - @Import(name="updatedAt", required=true) - private Output updatedAt; - - /** - * @return Last time that a control's enablement status in a specified standard was updated. - * - */ - public Output updatedAt() { - return this.updatedAt; - } - - /** - * Reason for updating a control's enablement status in a specified standard. - * - */ - @Import(name="updatedReason", required=true) - private Output updatedReason; - - /** - * @return Reason for updating a control's enablement status in a specified standard. - * - */ - public Output updatedReason() { - return this.updatedReason; - } - - private GetStandardsControlAssociationsStandardsControlAssociationArgs() {} - - private GetStandardsControlAssociationsStandardsControlAssociationArgs(GetStandardsControlAssociationsStandardsControlAssociationArgs $) { - this.associationStatus = $.associationStatus; - this.relatedRequirements = $.relatedRequirements; - this.securityControlArn = $.securityControlArn; - this.securityControlId = $.securityControlId; - this.standardsArn = $.standardsArn; - this.standardsControlDescription = $.standardsControlDescription; - this.standardsControlTitle = $.standardsControlTitle; - this.updatedAt = $.updatedAt; - this.updatedReason = $.updatedReason; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(GetStandardsControlAssociationsStandardsControlAssociationArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private GetStandardsControlAssociationsStandardsControlAssociationArgs $; - - public Builder() { - $ = new GetStandardsControlAssociationsStandardsControlAssociationArgs(); - } - - public Builder(GetStandardsControlAssociationsStandardsControlAssociationArgs defaults) { - $ = new GetStandardsControlAssociationsStandardsControlAssociationArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param associationStatus Enablement status of a control in a specific standard. - * - * @return builder - * - */ - public Builder associationStatus(Output associationStatus) { - $.associationStatus = associationStatus; - return this; - } - - /** - * @param associationStatus Enablement status of a control in a specific standard. - * - * @return builder - * - */ - public Builder associationStatus(String associationStatus) { - return associationStatus(Output.of(associationStatus)); - } - - /** - * @param relatedRequirements List of underlying requirements in the compliance framework related to the standard. - * - * @return builder - * - */ - public Builder relatedRequirements(Output> relatedRequirements) { - $.relatedRequirements = relatedRequirements; - return this; - } - - /** - * @param relatedRequirements List of underlying requirements in the compliance framework related to the standard. - * - * @return builder - * - */ - public Builder relatedRequirements(List relatedRequirements) { - return relatedRequirements(Output.of(relatedRequirements)); - } - - /** - * @param relatedRequirements List of underlying requirements in the compliance framework related to the standard. - * - * @return builder - * - */ - public Builder relatedRequirements(String... relatedRequirements) { - return relatedRequirements(List.of(relatedRequirements)); - } - - /** - * @param securityControlArn ARN of the security control. - * - * @return builder - * - */ - public Builder securityControlArn(Output securityControlArn) { - $.securityControlArn = securityControlArn; - return this; - } - - /** - * @param securityControlArn ARN of the security control. - * - * @return builder - * - */ - public Builder securityControlArn(String securityControlArn) { - return securityControlArn(Output.of(securityControlArn)); - } - - /** - * @param securityControlId The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - * @return builder - * - */ - public Builder securityControlId(Output securityControlId) { - $.securityControlId = securityControlId; - return this; - } - - /** - * @param securityControlId The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - * - * @return builder - * - */ - public Builder securityControlId(String securityControlId) { - return securityControlId(Output.of(securityControlId)); - } - - /** - * @param standardsArn ARN of the standard. - * - * @return builder - * - */ - public Builder standardsArn(Output standardsArn) { - $.standardsArn = standardsArn; - return this; - } - - /** - * @param standardsArn ARN of the standard. - * - * @return builder - * - */ - public Builder standardsArn(String standardsArn) { - return standardsArn(Output.of(standardsArn)); - } - - /** - * @param standardsControlDescription Description of the standard. - * - * @return builder - * - */ - public Builder standardsControlDescription(Output standardsControlDescription) { - $.standardsControlDescription = standardsControlDescription; - return this; - } - - /** - * @param standardsControlDescription Description of the standard. - * - * @return builder - * - */ - public Builder standardsControlDescription(String standardsControlDescription) { - return standardsControlDescription(Output.of(standardsControlDescription)); - } - - /** - * @param standardsControlTitle Title of the standard. - * - * @return builder - * - */ - public Builder standardsControlTitle(Output standardsControlTitle) { - $.standardsControlTitle = standardsControlTitle; - return this; - } - - /** - * @param standardsControlTitle Title of the standard. - * - * @return builder - * - */ - public Builder standardsControlTitle(String standardsControlTitle) { - return standardsControlTitle(Output.of(standardsControlTitle)); - } - - /** - * @param updatedAt Last time that a control's enablement status in a specified standard was updated. - * - * @return builder - * - */ - public Builder updatedAt(Output updatedAt) { - $.updatedAt = updatedAt; - return this; - } - - /** - * @param updatedAt Last time that a control's enablement status in a specified standard was updated. - * - * @return builder - * - */ - public Builder updatedAt(String updatedAt) { - return updatedAt(Output.of(updatedAt)); - } - - /** - * @param updatedReason Reason for updating a control's enablement status in a specified standard. - * - * @return builder - * - */ - public Builder updatedReason(Output updatedReason) { - $.updatedReason = updatedReason; - return this; - } - - /** - * @param updatedReason Reason for updating a control's enablement status in a specified standard. - * - * @return builder - * - */ - public Builder updatedReason(String updatedReason) { - return updatedReason(Output.of(updatedReason)); - } - - public GetStandardsControlAssociationsStandardsControlAssociationArgs build() { - if ($.associationStatus == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "associationStatus"); - } - if ($.relatedRequirements == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "relatedRequirements"); - } - if ($.securityControlArn == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "securityControlArn"); - } - if ($.securityControlId == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "securityControlId"); - } - if ($.standardsArn == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "standardsArn"); - } - if ($.standardsControlDescription == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "standardsControlDescription"); - } - if ($.standardsControlTitle == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "standardsControlTitle"); - } - if ($.updatedAt == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "updatedAt"); - } - if ($.updatedReason == null) { - throw new MissingRequiredPropertyException("GetStandardsControlAssociationsStandardsControlAssociationArgs", "updatedReason"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsControlAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsControlAssociationState.java new file mode 100644 index 00000000000..a365b7c68be --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsControlAssociationState.java @@ -0,0 +1,202 @@ +// *** 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.securityhub.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 StandardsControlAssociationState extends com.pulumi.resources.ResourceArgs { + + public static final StandardsControlAssociationState Empty = new StandardsControlAssociationState(); + + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + @Import(name="associationStatus") + private @Nullable Output associationStatus; + + /** + * @return The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + */ + public Optional> associationStatus() { + return Optional.ofNullable(this.associationStatus); + } + + /** + * The unique identifier for the security control whose enablement status you want to update. + * + */ + @Import(name="securityControlId") + private @Nullable Output securityControlId; + + /** + * @return The unique identifier for the security control whose enablement status you want to update. + * + */ + public Optional> securityControlId() { + return Optional.ofNullable(this.securityControlId); + } + + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + @Import(name="standardsArn") + private @Nullable Output standardsArn; + + /** + * @return The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + */ + public Optional> standardsArn() { + return Optional.ofNullable(this.standardsArn); + } + + /** + * The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + @Import(name="updatedReason") + private @Nullable Output updatedReason; + + /** + * @return The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + */ + public Optional> updatedReason() { + return Optional.ofNullable(this.updatedReason); + } + + private StandardsControlAssociationState() {} + + private StandardsControlAssociationState(StandardsControlAssociationState $) { + this.associationStatus = $.associationStatus; + this.securityControlId = $.securityControlId; + this.standardsArn = $.standardsArn; + this.updatedReason = $.updatedReason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StandardsControlAssociationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StandardsControlAssociationState $; + + public Builder() { + $ = new StandardsControlAssociationState(); + } + + public Builder(StandardsControlAssociationState defaults) { + $ = new StandardsControlAssociationState(Objects.requireNonNull(defaults)); + } + + /** + * @param associationStatus The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder associationStatus(@Nullable Output associationStatus) { + $.associationStatus = associationStatus; + return this; + } + + /** + * @param associationStatus The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + * + * @return builder + * + */ + public Builder associationStatus(String associationStatus) { + return associationStatus(Output.of(associationStatus)); + } + + /** + * @param securityControlId The unique identifier for the security control whose enablement status you want to update. + * + * @return builder + * + */ + public Builder securityControlId(@Nullable Output securityControlId) { + $.securityControlId = securityControlId; + return this; + } + + /** + * @param securityControlId The unique identifier for the security control whose enablement status you want to update. + * + * @return builder + * + */ + public Builder securityControlId(String securityControlId) { + return securityControlId(Output.of(securityControlId)); + } + + /** + * @param standardsArn The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder standardsArn(@Nullable Output standardsArn) { + $.standardsArn = standardsArn; + return this; + } + + /** + * @param standardsArn The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder standardsArn(String standardsArn) { + return standardsArn(Output.of(standardsArn)); + } + + /** + * @param updatedReason The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + * @return builder + * + */ + public Builder updatedReason(@Nullable Output updatedReason) { + $.updatedReason = updatedReason; + return this; + } + + /** + * @param updatedReason The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + * + * @return builder + * + */ + public Builder updatedReason(String updatedReason) { + return updatedReason(Output.of(updatedReason)); + } + + public StandardsControlAssociationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/outputs/GetStandardsControlAssociationsResult.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/outputs/GetStandardsControlAssociationsResult.java index 785179e8724..e30549da1d7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/outputs/GetStandardsControlAssociationsResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/outputs/GetStandardsControlAssociationsResult.java @@ -9,7 +9,6 @@ import java.lang.String; import java.util.List; import java.util.Objects; -import javax.annotation.Nullable; @CustomType public final class GetStandardsControlAssociationsResult { @@ -24,7 +23,7 @@ public final class GetStandardsControlAssociationsResult { * See `standards_control_associations` below. * */ - private @Nullable List standardsControlAssociations; + private List standardsControlAssociations; private GetStandardsControlAssociationsResult() {} public String id() { @@ -43,7 +42,7 @@ public String securityControlId() { * */ public List standardsControlAssociations() { - return this.standardsControlAssociations == null ? List.of() : this.standardsControlAssociations; + return this.standardsControlAssociations; } public static Builder builder() { @@ -57,7 +56,7 @@ public static Builder builder(GetStandardsControlAssociationsResult defaults) { public static final class Builder { private String id; private String securityControlId; - private @Nullable List standardsControlAssociations; + private List standardsControlAssociations; public Builder() {} public Builder(GetStandardsControlAssociationsResult defaults) { Objects.requireNonNull(defaults); @@ -83,8 +82,10 @@ public Builder securityControlId(String securityControlId) { return this; } @CustomType.Setter - public Builder standardsControlAssociations(@Nullable List standardsControlAssociations) { - + public Builder standardsControlAssociations(List standardsControlAssociations) { + if (standardsControlAssociations == null) { + throw new MissingRequiredPropertyException("GetStandardsControlAssociationsResult", "standardsControlAssociations"); + } this.standardsControlAssociations = standardsControlAssociations; return this; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/shield/ApplicationLayerAutomaticResponse.java b/sdk/java/src/main/java/com/pulumi/aws/shield/ApplicationLayerAutomaticResponse.java index 955512a6fe8..4d45dbda867 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/shield/ApplicationLayerAutomaticResponse.java +++ b/sdk/java/src/main/java/com/pulumi/aws/shield/ApplicationLayerAutomaticResponse.java @@ -20,6 +20,54 @@ * * ## 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.AwsFunctions;
+ * import com.pulumi.aws.inputs.GetRegionArgs;
+ * import com.pulumi.aws.inputs.GetCallerIdentityArgs;
+ * import com.pulumi.aws.inputs.GetPartitionArgs;
+ * import com.pulumi.aws.shield.ApplicationLayerAutomaticResponse;
+ * import com.pulumi.aws.shield.ApplicationLayerAutomaticResponseArgs;
+ * 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 config = ctx.config();
+ *         final var current = AwsFunctions.getRegion();
+ * 
+ *         final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();
+ * 
+ *         final var currentGetPartition = AwsFunctions.getPartition();
+ * 
+ *         final var distributionId = config.get("distributionId");
+ *         var example = new ApplicationLayerAutomaticResponse("example", ApplicationLayerAutomaticResponseArgs.builder()
+ *             .resourceArn(String.format("arn:%s:cloudfront:%s:distribution/%s", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.partition()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()),distributionId))
+ *             .action("COUNT")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * */ @ResourceType(type="aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse") public class ApplicationLayerAutomaticResponse extends com.pulumi.resources.CustomResource { diff --git a/sdk/java/src/main/java/com/pulumi/aws/shield/DrtAccessRoleArnAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/shield/DrtAccessRoleArnAssociation.java index 9f1e319d72d..e2eb9ee4a37 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/shield/DrtAccessRoleArnAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/shield/DrtAccessRoleArnAssociation.java @@ -33,10 +33,10 @@ * import com.pulumi.core.Output; * import com.pulumi.aws.iam.Role; * import com.pulumi.aws.iam.RoleArgs; - * import com.pulumi.aws.iam.RolePolicyAttachment; - * import com.pulumi.aws.iam.RolePolicyAttachmentArgs; * import com.pulumi.aws.shield.DrtAccessRoleArnAssociation; * import com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs; + * import com.pulumi.aws.iam.RolePolicyAttachment; + * import com.pulumi.aws.iam.RolePolicyAttachmentArgs; * import static com.pulumi.codegen.internal.Serialization.*; * import java.util.List; * import java.util.ArrayList; @@ -51,8 +51,8 @@ * } * * public static void stack(Context ctx) { - * var test = new Role("test", RoleArgs.builder() - * .name(awsShieldDrtAccessRoleArn) + * var exampleRole = new Role("exampleRole", RoleArgs.builder() + * .name("example-role") * .assumeRolePolicy(serializeJson( * jsonObject( * jsonProperty("Version", "2012-10-17"), @@ -67,13 +67,13 @@ * ))) * .build()); * - * var testRolePolicyAttachment = new RolePolicyAttachment("testRolePolicyAttachment", RolePolicyAttachmentArgs.builder() - * .role(test.name()) - * .policyArn("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") + * var example = new DrtAccessRoleArnAssociation("example", DrtAccessRoleArnAssociationArgs.builder() + * .roleArn(exampleRole.arn()) * .build()); * - * var testDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation("testDrtAccessRoleArnAssociation", DrtAccessRoleArnAssociationArgs.builder() - * .roleArn(test.arn()) + * var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder() + * .role(exampleRole.name()) + * .policyArn("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/aws/shield/ProactiveEngagement.java b/sdk/java/src/main/java/com/pulumi/aws/shield/ProactiveEngagement.java index c7e3099cd07..d38451db89d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/shield/ProactiveEngagement.java +++ b/sdk/java/src/main/java/com/pulumi/aws/shield/ProactiveEngagement.java @@ -34,15 +34,15 @@ * import com.pulumi.core.Output; * import com.pulumi.aws.iam.Role; * import com.pulumi.aws.iam.RoleArgs; - * import com.pulumi.aws.iam.RolePolicyAttachment; - * import com.pulumi.aws.iam.RolePolicyAttachmentArgs; * import com.pulumi.aws.shield.DrtAccessRoleArnAssociation; * import com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs; - * import com.pulumi.aws.shield.ProtectionGroup; - * import com.pulumi.aws.shield.ProtectionGroupArgs; * import com.pulumi.aws.shield.ProactiveEngagement; * import com.pulumi.aws.shield.ProactiveEngagementArgs; * import com.pulumi.aws.shield.inputs.ProactiveEngagementEmergencyContactArgs; + * import com.pulumi.aws.iam.RolePolicyAttachment; + * import com.pulumi.aws.iam.RolePolicyAttachmentArgs; + * import com.pulumi.aws.shield.ProtectionGroup; + * import com.pulumi.aws.shield.ProtectionGroupArgs; * import static com.pulumi.codegen.internal.Serialization.*; * import com.pulumi.resources.CustomResourceOptions; * import java.util.List; @@ -58,8 +58,8 @@ * }}{@code * * public static void stack(Context ctx) }{{@code - * var example = new Role("example", RoleArgs.builder() - * .name(awsShieldDrtAccessRoleArn) + * var exampleRole = new Role("exampleRole", RoleArgs.builder() + * .name("example-role") * .assumeRolePolicy(serializeJson( * jsonObject( * jsonProperty("Version", "2012-10-17"), @@ -74,38 +74,38 @@ * ))) * .build()); * - * var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder() - * .role(example.name()) - * .policyArn("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") - * .build()); - * * var exampleDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation("exampleDrtAccessRoleArnAssociation", DrtAccessRoleArnAssociationArgs.builder() - * .roleArn(example.arn()) - * .build()); - * - * var test = new ProtectionGroup("test", ProtectionGroupArgs.builder() - * .protectionGroupId("example") - * .aggregation("MAX") - * .pattern("ALL") + * .roleArn(exampleRole.arn()) * .build()); * - * var testProactiveEngagement = new ProactiveEngagement("testProactiveEngagement", ProactiveEngagementArgs.builder() + * var example = new ProactiveEngagement("example", ProactiveEngagementArgs.builder() * .enabled(true) * .emergencyContacts( * ProactiveEngagementEmergencyContactArgs.builder() * .contactNotes("Notes") - * .emailAddress("test}{@literal @}{@code company.com") + * .emailAddress("contact1}{@literal @}{@code example.com") * .phoneNumber("+12358132134") * .build(), * ProactiveEngagementEmergencyContactArgs.builder() * .contactNotes("Notes 2") - * .emailAddress("test2}{@literal @}{@code company.com") + * .emailAddress("contact2}{@literal @}{@code example.com") * .phoneNumber("+12358132134") * .build()) * .build(), CustomResourceOptions.builder() - * .dependsOn(testAwsShieldDrtAccessRoleArnAssociation) + * .dependsOn(exampleDrtAccessRoleArnAssociation) * .build()); * + * var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder() + * .role(exampleRole.name()) + * .policyArn("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") + * .build()); + * + * var exampleProtectionGroup = new ProtectionGroup("exampleProtectionGroup", ProtectionGroupArgs.builder() + * .protectionGroupId("example") + * .aggregation("MAX") + * .pattern("ALL") + * .build()); + * * }}{@code * }}{@code * } diff --git a/sdk/nodejs/apigateway/integration.ts b/sdk/nodejs/apigateway/integration.ts index ca720cc5fad..d9141bb44fb 100644 --- a/sdk/nodejs/apigateway/integration.ts +++ b/sdk/nodejs/apigateway/integration.ts @@ -96,7 +96,7 @@ import {RestApi} from "./index"; * name: "mylambda", * role: role.arn, * handler: "lambda.lambda_handler", - * runtime: aws.lambda.Runtime.Python3d7, + * runtime: aws.lambda.Runtime.Python3d12, * sourceCodeHash: std.filebase64sha256({ * input: "lambda.zip", * }).then(invoke => invoke.result), diff --git a/sdk/nodejs/apigatewayv2/integration.ts b/sdk/nodejs/apigatewayv2/integration.ts index fce9a60c38c..a64ebc3134b 100644 --- a/sdk/nodejs/apigatewayv2/integration.ts +++ b/sdk/nodejs/apigatewayv2/integration.ts @@ -36,7 +36,7 @@ import * as utilities from "../utilities"; * name: "Example", * role: exampleAwsIamRole.arn, * handler: "index.handler", - * runtime: aws.lambda.Runtime.NodeJS16dX, + * runtime: aws.lambda.Runtime.NodeJS20dX, * }); * const exampleIntegration = new aws.apigatewayv2.Integration("example", { * apiId: exampleAwsApigatewayv2Api.id, diff --git a/sdk/nodejs/appflow/connectorProfile.ts b/sdk/nodejs/appflow/connectorProfile.ts index 5eb12211397..ae668569b92 100644 --- a/sdk/nodejs/appflow/connectorProfile.ts +++ b/sdk/nodejs/appflow/connectorProfile.ts @@ -38,7 +38,7 @@ import * as utilities from "../utilities"; * }], * }), * }); - * const exampleBucketV2 = new aws.s3.BucketV2("example", {bucket: "example_bucket"}); + * const exampleBucketV2 = new aws.s3.BucketV2("example", {bucket: "example-bucket"}); * const exampleCluster = new aws.redshift.Cluster("example", { * clusterIdentifier: "example_cluster", * databaseName: "example_db", diff --git a/sdk/nodejs/backup/index.ts b/sdk/nodejs/backup/index.ts index b822efa4a86..ff7f74d8219 100644 --- a/sdk/nodejs/backup/index.ts +++ b/sdk/nodejs/backup/index.ts @@ -40,6 +40,11 @@ export type GlobalSettings = import("./globalSettings").GlobalSettings; export const GlobalSettings: typeof import("./globalSettings").GlobalSettings = null as any; utilities.lazyLoad(exports, ["GlobalSettings"], () => require("./globalSettings")); +export { LogicallyAirGappedVaultArgs, LogicallyAirGappedVaultState } from "./logicallyAirGappedVault"; +export type LogicallyAirGappedVault = import("./logicallyAirGappedVault").LogicallyAirGappedVault; +export const LogicallyAirGappedVault: typeof import("./logicallyAirGappedVault").LogicallyAirGappedVault = null as any; +utilities.lazyLoad(exports, ["LogicallyAirGappedVault"], () => require("./logicallyAirGappedVault")); + export { PlanArgs, PlanState } from "./plan"; export type Plan = import("./plan").Plan; export const Plan: typeof import("./plan").Plan = null as any; @@ -89,6 +94,8 @@ const _module = { return new Framework(name, undefined, { urn }) case "aws:backup/globalSettings:GlobalSettings": return new GlobalSettings(name, undefined, { urn }) + case "aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault": + return new LogicallyAirGappedVault(name, undefined, { urn }) case "aws:backup/plan:Plan": return new Plan(name, undefined, { urn }) case "aws:backup/regionSettings:RegionSettings": @@ -112,6 +119,7 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "backup/framework", _module) pulumi.runtime.registerResourceModule("aws", "backup/globalSettings", _module) +pulumi.runtime.registerResourceModule("aws", "backup/logicallyAirGappedVault", _module) pulumi.runtime.registerResourceModule("aws", "backup/plan", _module) pulumi.runtime.registerResourceModule("aws", "backup/regionSettings", _module) pulumi.runtime.registerResourceModule("aws", "backup/reportPlan", _module) diff --git a/sdk/nodejs/backup/logicallyAirGappedVault.ts b/sdk/nodejs/backup/logicallyAirGappedVault.ts new file mode 100644 index 00000000000..b92ca7555db --- /dev/null +++ b/sdk/nodejs/backup/logicallyAirGappedVault.ts @@ -0,0 +1,187 @@ +// *** 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 Backup Logically Air Gapped Vault. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.backup.LogicallyAirGappedVault("example", { + * name: "lag-example-vault", + * maxRetentionDays: 7, + * minRetentionDays: 7, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: + * + * ```sh + * $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault + * ``` + */ +export class LogicallyAirGappedVault extends pulumi.CustomResource { + /** + * Get an existing LogicallyAirGappedVault 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?: LogicallyAirGappedVaultState, opts?: pulumi.CustomResourceOptions): LogicallyAirGappedVault { + return new LogicallyAirGappedVault(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault'; + + /** + * Returns true if the given object is an instance of LogicallyAirGappedVault. 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 LogicallyAirGappedVault { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LogicallyAirGappedVault.__pulumiType; + } + + /** + * The ARN of the Logically Air Gapped Backup Vault. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + public readonly maxRetentionDays!: pulumi.Output; + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + public readonly minRetentionDays!: pulumi.Output; + /** + * Name of the Logically Air Gapped Backup Vault to create. + */ + public readonly name!: pulumi.Output; + /** + * Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVault 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: LogicallyAirGappedVaultArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: LogicallyAirGappedVaultArgs | LogicallyAirGappedVaultState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as LogicallyAirGappedVaultState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["maxRetentionDays"] = state ? state.maxRetentionDays : undefined; + resourceInputs["minRetentionDays"] = state ? state.minRetentionDays : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as LogicallyAirGappedVaultArgs | undefined; + if ((!args || args.maxRetentionDays === undefined) && !opts.urn) { + throw new Error("Missing required property 'maxRetentionDays'"); + } + if ((!args || args.minRetentionDays === undefined) && !opts.urn) { + throw new Error("Missing required property 'minRetentionDays'"); + } + resourceInputs["maxRetentionDays"] = args ? args.maxRetentionDays : undefined; + resourceInputs["minRetentionDays"] = args ? args.minRetentionDays : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(LogicallyAirGappedVault.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering LogicallyAirGappedVault resources. + */ +export interface LogicallyAirGappedVaultState { + /** + * The ARN of the Logically Air Gapped Backup Vault. + */ + arn?: pulumi.Input; + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + maxRetentionDays?: pulumi.Input; + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + minRetentionDays?: pulumi.Input; + /** + * Name of the Logically Air Gapped Backup Vault to create. + */ + name?: pulumi.Input; + /** + * Metadata that you can assign to help organize the resources that you create. 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 LogicallyAirGappedVault resource. + */ +export interface LogicallyAirGappedVaultArgs { + /** + * Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + maxRetentionDays: pulumi.Input; + /** + * Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + */ + minRetentionDays: pulumi.Input; + /** + * Name of the Logically Air Gapped Backup Vault to create. + */ + name?: pulumi.Input; + /** + * Metadata that you can assign to help organize the resources that you create. 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/bedrock/agentAgentActionGroup.ts b/sdk/nodejs/bedrock/agentAgentActionGroup.ts index b0ac5f819ac..10966b821ab 100644 --- a/sdk/nodejs/bedrock/agentAgentActionGroup.ts +++ b/sdk/nodejs/bedrock/agentAgentActionGroup.ts @@ -200,10 +200,15 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ public readonly parentActionGroupSignature!: pulumi.Output; + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + */ + public readonly prepareAgent!: pulumi.Output; /** * Whether the in-use check is skipped when deleting the action group. */ public readonly skipResourceInUseCheck!: pulumi.Output; + public readonly timeouts!: pulumi.Output; /** * Create a AgentAgentActionGroup resource with the given unique name, arguments, and options. @@ -228,7 +233,9 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { resourceInputs["description"] = state ? state.description : undefined; resourceInputs["functionSchema"] = state ? state.functionSchema : undefined; resourceInputs["parentActionGroupSignature"] = state ? state.parentActionGroupSignature : undefined; + resourceInputs["prepareAgent"] = state ? state.prepareAgent : undefined; resourceInputs["skipResourceInUseCheck"] = state ? state.skipResourceInUseCheck : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; } else { const args = argsOrState as AgentAgentActionGroupArgs | undefined; if ((!args || args.actionGroupName === undefined) && !opts.urn) { @@ -249,7 +256,9 @@ export class AgentAgentActionGroup extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["functionSchema"] = args ? args.functionSchema : undefined; resourceInputs["parentActionGroupSignature"] = args ? args.parentActionGroupSignature : undefined; + resourceInputs["prepareAgent"] = args ? args.prepareAgent : undefined; resourceInputs["skipResourceInUseCheck"] = args ? args.skipResourceInUseCheck : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; resourceInputs["actionGroupId"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); @@ -305,10 +314,15 @@ export interface AgentAgentActionGroupState { * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ parentActionGroupSignature?: pulumi.Input; + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + */ + prepareAgent?: pulumi.Input; /** * Whether the in-use check is skipped when deleting the action group. */ skipResourceInUseCheck?: pulumi.Input; + timeouts?: pulumi.Input; } /** @@ -355,8 +369,13 @@ export interface AgentAgentActionGroupArgs { * To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `apiSchema`, and `actionGroupExecutor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. */ parentActionGroupSignature?: pulumi.Input; + /** + * Whether or not to prepare the agent after creation or modification. Defaults to `true`. + */ + prepareAgent?: pulumi.Input; /** * Whether the in-use check is skipped when deleting the action group. */ skipResourceInUseCheck?: pulumi.Input; + timeouts?: pulumi.Input; } diff --git a/sdk/nodejs/bedrock/guardrailVersion.ts b/sdk/nodejs/bedrock/guardrailVersion.ts new file mode 100644 index 00000000000..2afc43eb0c5 --- /dev/null +++ b/sdk/nodejs/bedrock/guardrailVersion.ts @@ -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! *** + +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 Bedrock Guardrail Version. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.bedrock.GuardrailVersion("example", { + * description: "example", + * guardrailArn: test.guardrailArn, + * skipDestroy: true, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: + * + * ```sh + * $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 + * ``` + */ +export class GuardrailVersion extends pulumi.CustomResource { + /** + * Get an existing GuardrailVersion 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?: GuardrailVersionState, opts?: pulumi.CustomResourceOptions): GuardrailVersion { + return new GuardrailVersion(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:bedrock/guardrailVersion:GuardrailVersion'; + + /** + * Returns true if the given object is an instance of GuardrailVersion. 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 GuardrailVersion { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GuardrailVersion.__pulumiType; + } + + /** + * Description of the Guardrail version. + */ + public readonly description!: pulumi.Output; + /** + * Guardrail ARN. + * + * The following arguments are optional: + */ + public readonly guardrailArn!: pulumi.Output; + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + */ + public readonly skipDestroy!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + /** + * Guardrail version. + */ + public /*out*/ readonly version!: pulumi.Output; + + /** + * Create a GuardrailVersion 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: GuardrailVersionArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GuardrailVersionArgs | GuardrailVersionState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GuardrailVersionState | undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["guardrailArn"] = state ? state.guardrailArn : undefined; + resourceInputs["skipDestroy"] = state ? state.skipDestroy : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["version"] = state ? state.version : undefined; + } else { + const args = argsOrState as GuardrailVersionArgs | undefined; + if ((!args || args.guardrailArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'guardrailArn'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["guardrailArn"] = args ? args.guardrailArn : undefined; + resourceInputs["skipDestroy"] = args ? args.skipDestroy : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["version"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(GuardrailVersion.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GuardrailVersion resources. + */ +export interface GuardrailVersionState { + /** + * Description of the Guardrail version. + */ + description?: pulumi.Input; + /** + * Guardrail ARN. + * + * The following arguments are optional: + */ + guardrailArn?: pulumi.Input; + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + */ + skipDestroy?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * Guardrail version. + */ + version?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GuardrailVersion resource. + */ +export interface GuardrailVersionArgs { + /** + * Description of the Guardrail version. + */ + description?: pulumi.Input; + /** + * Guardrail ARN. + * + * The following arguments are optional: + */ + guardrailArn: pulumi.Input; + /** + * Whether to retain the old version of a previously deployed Guardrail. Default is `false` + */ + skipDestroy?: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/index.ts b/sdk/nodejs/bedrock/index.ts index 39cedfbabf6..b25169a1ffc 100644 --- a/sdk/nodejs/bedrock/index.ts +++ b/sdk/nodejs/bedrock/index.ts @@ -60,6 +60,11 @@ export type Guardrail = import("./guardrail").Guardrail; export const Guardrail: typeof import("./guardrail").Guardrail = null as any; utilities.lazyLoad(exports, ["Guardrail"], () => require("./guardrail")); +export { GuardrailVersionArgs, GuardrailVersionState } from "./guardrailVersion"; +export type GuardrailVersion = import("./guardrailVersion").GuardrailVersion; +export const GuardrailVersion: typeof import("./guardrailVersion").GuardrailVersion = null as any; +utilities.lazyLoad(exports, ["GuardrailVersion"], () => require("./guardrailVersion")); + export { ProvisionedModelThroughputArgs, ProvisionedModelThroughputState } from "./provisionedModelThroughput"; export type ProvisionedModelThroughput = import("./provisionedModelThroughput").ProvisionedModelThroughput; export const ProvisionedModelThroughput: typeof import("./provisionedModelThroughput").ProvisionedModelThroughput = null as any; @@ -86,6 +91,8 @@ const _module = { return new CustomModel(name, undefined, { urn }) case "aws:bedrock/guardrail:Guardrail": return new Guardrail(name, undefined, { urn }) + case "aws:bedrock/guardrailVersion:GuardrailVersion": + return new GuardrailVersion(name, undefined, { urn }) case "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": return new ProvisionedModelThroughput(name, undefined, { urn }) default: @@ -101,4 +108,5 @@ pulumi.runtime.registerResourceModule("aws", "bedrock/agentDataSource", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/agentKnowledgeBase", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/customModel", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/guardrail", _module) +pulumi.runtime.registerResourceModule("aws", "bedrock/guardrailVersion", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/provisionedModelThroughput", _module) diff --git a/sdk/nodejs/datazone/formType.ts b/sdk/nodejs/datazone/formType.ts index 08656b5e317..f1e331c3bf0 100644 --- a/sdk/nodejs/datazone/formType.ts +++ b/sdk/nodejs/datazone/formType.ts @@ -19,7 +19,7 @@ import * as utilities from "../utilities"; * import * as aws from "@pulumi/aws"; * * const domainExecutionRole = new aws.iam.Role("domain_execution_role", { - * name: "example name", + * name: "example-role", * assumeRolePolicy: JSON.stringify({ * Version: "2012-10-17", * Statement: [ @@ -46,7 +46,7 @@ import * as utilities from "../utilities"; * ], * }), * inlinePolicies: [{ - * name: "example name", + * name: "example-policy", * policy: JSON.stringify({ * Version: "2012-10-17", * Statement: [{ @@ -63,10 +63,10 @@ import * as utilities from "../utilities"; * }], * }); * const test = new aws.datazone.Domain("test", { - * name: "example name", + * name: "example", * domainExecutionRole: domainExecutionRole.arn, * }); - * const testSecurityGroup = new aws.ec2.SecurityGroup("test", {name: "example name"}); + * const testSecurityGroup = new aws.ec2.SecurityGroup("test", {name: "example"}); * const testProject = new aws.datazone.Project("test", { * domainIdentifier: test.id, * glossaryTerms: ["2N8w6XJCwZf"], diff --git a/sdk/nodejs/ebs/getSnapshot.ts b/sdk/nodejs/ebs/getSnapshot.ts index d188c666001..60f65a3fb30 100644 --- a/sdk/nodejs/ebs/getSnapshot.ts +++ b/sdk/nodejs/ebs/getSnapshot.ts @@ -126,6 +126,10 @@ export interface GetSnapshotResult { */ readonly snapshotId: string; readonly snapshotIds?: string[]; + /** + * Time stamp when the snapshot was initiated. + */ + readonly startTime: string; /** * Snapshot state. */ diff --git a/sdk/nodejs/ec2transitgateway/defaultRouteTableAssociation.ts b/sdk/nodejs/ec2transitgateway/defaultRouteTableAssociation.ts new file mode 100644 index 00000000000..77cc15627ab --- /dev/null +++ b/sdk/nodejs/ec2transitgateway/defaultRouteTableAssociation.ts @@ -0,0 +1,130 @@ +// *** 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 EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.ec2transitgateway.DefaultRouteTableAssociation("example", { + * transitGatewayId: exampleAwsEc2TransitGateway.id, + * transitGatewayRouteTableId: exampleAwsEc2TransitGatewayRouteTable.id, + * }); + * ``` + */ +export class DefaultRouteTableAssociation extends pulumi.CustomResource { + /** + * Get an existing DefaultRouteTableAssociation 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?: DefaultRouteTableAssociationState, opts?: pulumi.CustomResourceOptions): DefaultRouteTableAssociation { + return new DefaultRouteTableAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation'; + + /** + * Returns true if the given object is an instance of DefaultRouteTableAssociation. 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 DefaultRouteTableAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DefaultRouteTableAssociation.__pulumiType; + } + + public /*out*/ readonly originalDefaultRouteTableId!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + public readonly transitGatewayId!: pulumi.Output; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + public readonly transitGatewayRouteTableId!: pulumi.Output; + + /** + * Create a DefaultRouteTableAssociation 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: DefaultRouteTableAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DefaultRouteTableAssociationArgs | DefaultRouteTableAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DefaultRouteTableAssociationState | undefined; + resourceInputs["originalDefaultRouteTableId"] = state ? state.originalDefaultRouteTableId : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["transitGatewayId"] = state ? state.transitGatewayId : undefined; + resourceInputs["transitGatewayRouteTableId"] = state ? state.transitGatewayRouteTableId : undefined; + } else { + const args = argsOrState as DefaultRouteTableAssociationArgs | undefined; + if ((!args || args.transitGatewayId === undefined) && !opts.urn) { + throw new Error("Missing required property 'transitGatewayId'"); + } + if ((!args || args.transitGatewayRouteTableId === undefined) && !opts.urn) { + throw new Error("Missing required property 'transitGatewayRouteTableId'"); + } + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["transitGatewayId"] = args ? args.transitGatewayId : undefined; + resourceInputs["transitGatewayRouteTableId"] = args ? args.transitGatewayRouteTableId : undefined; + resourceInputs["originalDefaultRouteTableId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DefaultRouteTableAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DefaultRouteTableAssociation resources. + */ +export interface DefaultRouteTableAssociationState { + originalDefaultRouteTableId?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + transitGatewayId?: pulumi.Input; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + transitGatewayRouteTableId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a DefaultRouteTableAssociation resource. + */ +export interface DefaultRouteTableAssociationArgs { + timeouts?: pulumi.Input; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + transitGatewayId: pulumi.Input; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + transitGatewayRouteTableId: pulumi.Input; +} diff --git a/sdk/nodejs/ec2transitgateway/defaultRouteTablePropagation.ts b/sdk/nodejs/ec2transitgateway/defaultRouteTablePropagation.ts new file mode 100644 index 00000000000..e6e7d5f3b52 --- /dev/null +++ b/sdk/nodejs/ec2transitgateway/defaultRouteTablePropagation.ts @@ -0,0 +1,130 @@ +// *** 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 EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.ec2transitgateway.DefaultRouteTablePropagation("example", { + * transitGatewayId: exampleAwsEc2TransitGateway.id, + * transitGatewayRouteTableId: exampleAwsEc2TransitGatewayRouteTable.id, + * }); + * ``` + */ +export class DefaultRouteTablePropagation extends pulumi.CustomResource { + /** + * Get an existing DefaultRouteTablePropagation 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?: DefaultRouteTablePropagationState, opts?: pulumi.CustomResourceOptions): DefaultRouteTablePropagation { + return new DefaultRouteTablePropagation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation'; + + /** + * Returns true if the given object is an instance of DefaultRouteTablePropagation. 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 DefaultRouteTablePropagation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DefaultRouteTablePropagation.__pulumiType; + } + + public /*out*/ readonly originalDefaultRouteTableId!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + public readonly transitGatewayId!: pulumi.Output; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + public readonly transitGatewayRouteTableId!: pulumi.Output; + + /** + * Create a DefaultRouteTablePropagation 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: DefaultRouteTablePropagationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DefaultRouteTablePropagationArgs | DefaultRouteTablePropagationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DefaultRouteTablePropagationState | undefined; + resourceInputs["originalDefaultRouteTableId"] = state ? state.originalDefaultRouteTableId : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["transitGatewayId"] = state ? state.transitGatewayId : undefined; + resourceInputs["transitGatewayRouteTableId"] = state ? state.transitGatewayRouteTableId : undefined; + } else { + const args = argsOrState as DefaultRouteTablePropagationArgs | undefined; + if ((!args || args.transitGatewayId === undefined) && !opts.urn) { + throw new Error("Missing required property 'transitGatewayId'"); + } + if ((!args || args.transitGatewayRouteTableId === undefined) && !opts.urn) { + throw new Error("Missing required property 'transitGatewayRouteTableId'"); + } + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["transitGatewayId"] = args ? args.transitGatewayId : undefined; + resourceInputs["transitGatewayRouteTableId"] = args ? args.transitGatewayRouteTableId : undefined; + resourceInputs["originalDefaultRouteTableId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DefaultRouteTablePropagation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DefaultRouteTablePropagation resources. + */ +export interface DefaultRouteTablePropagationState { + originalDefaultRouteTableId?: pulumi.Input; + timeouts?: pulumi.Input; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + transitGatewayId?: pulumi.Input; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + transitGatewayRouteTableId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a DefaultRouteTablePropagation resource. + */ +export interface DefaultRouteTablePropagationArgs { + timeouts?: pulumi.Input; + /** + * ID of the Transit Gateway to change the default association route table on. + */ + transitGatewayId: pulumi.Input; + /** + * ID of the Transit Gateway Route Table to be made the default association route table. + */ + transitGatewayRouteTableId: pulumi.Input; +} diff --git a/sdk/nodejs/ec2transitgateway/index.ts b/sdk/nodejs/ec2transitgateway/index.ts index 6fb7e8559c0..c13df9e5758 100644 --- a/sdk/nodejs/ec2transitgateway/index.ts +++ b/sdk/nodejs/ec2transitgateway/index.ts @@ -15,6 +15,16 @@ export type ConnectPeer = import("./connectPeer").ConnectPeer; export const ConnectPeer: typeof import("./connectPeer").ConnectPeer = null as any; utilities.lazyLoad(exports, ["ConnectPeer"], () => require("./connectPeer")); +export { DefaultRouteTableAssociationArgs, DefaultRouteTableAssociationState } from "./defaultRouteTableAssociation"; +export type DefaultRouteTableAssociation = import("./defaultRouteTableAssociation").DefaultRouteTableAssociation; +export const DefaultRouteTableAssociation: typeof import("./defaultRouteTableAssociation").DefaultRouteTableAssociation = null as any; +utilities.lazyLoad(exports, ["DefaultRouteTableAssociation"], () => require("./defaultRouteTableAssociation")); + +export { DefaultRouteTablePropagationArgs, DefaultRouteTablePropagationState } from "./defaultRouteTablePropagation"; +export type DefaultRouteTablePropagation = import("./defaultRouteTablePropagation").DefaultRouteTablePropagation; +export const DefaultRouteTablePropagation: typeof import("./defaultRouteTablePropagation").DefaultRouteTablePropagation = null as any; +utilities.lazyLoad(exports, ["DefaultRouteTablePropagation"], () => require("./defaultRouteTablePropagation")); + export { GetAttachmentArgs, GetAttachmentResult, GetAttachmentOutputArgs } from "./getAttachment"; export const getAttachment: typeof import("./getAttachment").getAttachment = null as any; export const getAttachmentOutput: typeof import("./getAttachment").getAttachmentOutput = null as any; @@ -194,6 +204,10 @@ const _module = { return new Connect(name, undefined, { urn }) case "aws:ec2transitgateway/connectPeer:ConnectPeer": return new ConnectPeer(name, undefined, { urn }) + case "aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation": + return new DefaultRouteTableAssociation(name, undefined, { urn }) + case "aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation": + return new DefaultRouteTablePropagation(name, undefined, { urn }) case "aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint": return new InstanceConnectEndpoint(name, undefined, { urn }) case "aws:ec2transitgateway/instanceState:InstanceState": @@ -237,6 +251,8 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/connect", _module) pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/connectPeer", _module) +pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/defaultRouteTableAssociation", _module) +pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/defaultRouteTablePropagation", _module) pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/instanceConnectEndpoint", _module) pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/instanceState", _module) pulumi.runtime.registerResourceModule("aws", "ec2transitgateway/multicastDomain", _module) diff --git a/sdk/nodejs/ec2transitgateway/vpcAttachment.ts b/sdk/nodejs/ec2transitgateway/vpcAttachment.ts index dc83af670fa..83600b45b80 100644 --- a/sdk/nodejs/ec2transitgateway/vpcAttachment.ts +++ b/sdk/nodejs/ec2transitgateway/vpcAttachment.ts @@ -69,9 +69,9 @@ export class VpcAttachment extends pulumi.CustomResource { */ public readonly ipv6Support!: pulumi.Output; /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. */ - public readonly securityGroupReferencingSupport!: pulumi.Output; + public readonly securityGroupReferencingSupport!: pulumi.Output; /** * Identifiers of EC2 Subnets. */ @@ -178,7 +178,7 @@ export interface VpcAttachmentState { */ ipv6Support?: pulumi.Input; /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. */ securityGroupReferencingSupport?: pulumi.Input; /** @@ -234,7 +234,7 @@ export interface VpcAttachmentArgs { */ ipv6Support?: pulumi.Input; /** - * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + * Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. */ securityGroupReferencingSupport?: pulumi.Input; /** diff --git a/sdk/nodejs/elasticache/reservedCacheNode.ts b/sdk/nodejs/elasticache/reservedCacheNode.ts index 984672ecb3d..ce74c71ce5f 100644 --- a/sdk/nodejs/elasticache/reservedCacheNode.ts +++ b/sdk/nodejs/elasticache/reservedCacheNode.ts @@ -54,6 +54,10 @@ export class ReservedCacheNode extends pulumi.CustomResource { * ARN for the reserved cache node. */ public /*out*/ readonly arn!: pulumi.Output; + /** + * Number of cache node instances to reserve. + * Default value is `1`. + */ public readonly cacheNodeCount!: pulumi.Output; /** * Node type for the reserved cache nodes. @@ -172,6 +176,10 @@ export interface ReservedCacheNodeState { * ARN for the reserved cache node. */ arn?: pulumi.Input; + /** + * Number of cache node instances to reserve. + * Default value is `1`. + */ cacheNodeCount?: pulumi.Input; /** * Node type for the reserved cache nodes. @@ -233,6 +241,10 @@ export interface ReservedCacheNodeState { * The set of arguments for constructing a ReservedCacheNode resource. */ export interface ReservedCacheNodeArgs { + /** + * Number of cache node instances to reserve. + * Default value is `1`. + */ cacheNodeCount?: pulumi.Input; /** * ID of the reserved cache node offering to purchase. diff --git a/sdk/nodejs/iam/groupPoliciesExclusive.ts b/sdk/nodejs/iam/groupPoliciesExclusive.ts new file mode 100644 index 00000000000..4716138772e --- /dev/null +++ b/sdk/nodejs/iam/groupPoliciesExclusive.ts @@ -0,0 +1,110 @@ +// *** 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"; + +/** + * ## Import + * + * Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: + * + * ```sh + * $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup + * ``` + */ +export class GroupPoliciesExclusive extends pulumi.CustomResource { + /** + * Get an existing GroupPoliciesExclusive 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?: GroupPoliciesExclusiveState, opts?: pulumi.CustomResourceOptions): GroupPoliciesExclusive { + return new GroupPoliciesExclusive(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive'; + + /** + * Returns true if the given object is an instance of GroupPoliciesExclusive. 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 GroupPoliciesExclusive { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GroupPoliciesExclusive.__pulumiType; + } + + /** + * IAM group name. + */ + public readonly groupName!: pulumi.Output; + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + */ + public readonly policyNames!: pulumi.Output; + + /** + * Create a GroupPoliciesExclusive 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: GroupPoliciesExclusiveArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GroupPoliciesExclusiveArgs | GroupPoliciesExclusiveState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GroupPoliciesExclusiveState | undefined; + resourceInputs["groupName"] = state ? state.groupName : undefined; + resourceInputs["policyNames"] = state ? state.policyNames : undefined; + } else { + const args = argsOrState as GroupPoliciesExclusiveArgs | undefined; + if ((!args || args.groupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'groupName'"); + } + if ((!args || args.policyNames === undefined) && !opts.urn) { + throw new Error("Missing required property 'policyNames'"); + } + resourceInputs["groupName"] = args ? args.groupName : undefined; + resourceInputs["policyNames"] = args ? args.policyNames : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(GroupPoliciesExclusive.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GroupPoliciesExclusive resources. + */ +export interface GroupPoliciesExclusiveState { + /** + * IAM group name. + */ + groupName?: pulumi.Input; + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + */ + policyNames?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a GroupPoliciesExclusive resource. + */ +export interface GroupPoliciesExclusiveArgs { + /** + * IAM group name. + */ + groupName: pulumi.Input; + /** + * A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + */ + policyNames: pulumi.Input[]>; +} diff --git a/sdk/nodejs/iam/index.ts b/sdk/nodejs/iam/index.ts index c0b5a94e004..4baf7a049d9 100644 --- a/sdk/nodejs/iam/index.ts +++ b/sdk/nodejs/iam/index.ts @@ -116,6 +116,11 @@ export type GroupMembership = import("./groupMembership").GroupMembership; export const GroupMembership: typeof import("./groupMembership").GroupMembership = null as any; utilities.lazyLoad(exports, ["GroupMembership"], () => require("./groupMembership")); +export { GroupPoliciesExclusiveArgs, GroupPoliciesExclusiveState } from "./groupPoliciesExclusive"; +export type GroupPoliciesExclusive = import("./groupPoliciesExclusive").GroupPoliciesExclusive; +export const GroupPoliciesExclusive: typeof import("./groupPoliciesExclusive").GroupPoliciesExclusive = null as any; +utilities.lazyLoad(exports, ["GroupPoliciesExclusive"], () => require("./groupPoliciesExclusive")); + export { GroupPolicyArgs, GroupPolicyState } from "./groupPolicy"; export type GroupPolicy = import("./groupPolicy").GroupPolicy; export const GroupPolicy: typeof import("./groupPolicy").GroupPolicy = null as any; @@ -218,6 +223,11 @@ export type UserLoginProfile = import("./userLoginProfile").UserLoginProfile; export const UserLoginProfile: typeof import("./userLoginProfile").UserLoginProfile = null as any; utilities.lazyLoad(exports, ["UserLoginProfile"], () => require("./userLoginProfile")); +export { UserPoliciesExclusiveArgs, UserPoliciesExclusiveState } from "./userPoliciesExclusive"; +export type UserPoliciesExclusive = import("./userPoliciesExclusive").UserPoliciesExclusive; +export const UserPoliciesExclusive: typeof import("./userPoliciesExclusive").UserPoliciesExclusive = null as any; +utilities.lazyLoad(exports, ["UserPoliciesExclusive"], () => require("./userPoliciesExclusive")); + export { UserPolicyArgs, UserPolicyState } from "./userPolicy"; export type UserPolicy = import("./userPolicy").UserPolicy; export const UserPolicy: typeof import("./userPolicy").UserPolicy = null as any; @@ -251,6 +261,8 @@ const _module = { return new Group(name, undefined, { urn }) case "aws:iam/groupMembership:GroupMembership": return new GroupMembership(name, undefined, { urn }) + case "aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive": + return new GroupPoliciesExclusive(name, undefined, { urn }) case "aws:iam/groupPolicy:GroupPolicy": return new GroupPolicy(name, undefined, { urn }) case "aws:iam/groupPolicyAttachment:GroupPolicyAttachment": @@ -291,6 +303,8 @@ const _module = { return new UserGroupMembership(name, undefined, { urn }) case "aws:iam/userLoginProfile:UserLoginProfile": return new UserLoginProfile(name, undefined, { urn }) + case "aws:iam/userPoliciesExclusive:UserPoliciesExclusive": + return new UserPoliciesExclusive(name, undefined, { urn }) case "aws:iam/userPolicy:UserPolicy": return new UserPolicy(name, undefined, { urn }) case "aws:iam/userPolicyAttachment:UserPolicyAttachment": @@ -307,6 +321,7 @@ pulumi.runtime.registerResourceModule("aws", "iam/accountAlias", _module) pulumi.runtime.registerResourceModule("aws", "iam/accountPasswordPolicy", _module) pulumi.runtime.registerResourceModule("aws", "iam/group", _module) pulumi.runtime.registerResourceModule("aws", "iam/groupMembership", _module) +pulumi.runtime.registerResourceModule("aws", "iam/groupPoliciesExclusive", _module) pulumi.runtime.registerResourceModule("aws", "iam/groupPolicy", _module) pulumi.runtime.registerResourceModule("aws", "iam/groupPolicyAttachment", _module) pulumi.runtime.registerResourceModule("aws", "iam/instanceProfile", _module) @@ -327,6 +342,7 @@ pulumi.runtime.registerResourceModule("aws", "iam/sshKey", _module) pulumi.runtime.registerResourceModule("aws", "iam/user", _module) pulumi.runtime.registerResourceModule("aws", "iam/userGroupMembership", _module) pulumi.runtime.registerResourceModule("aws", "iam/userLoginProfile", _module) +pulumi.runtime.registerResourceModule("aws", "iam/userPoliciesExclusive", _module) pulumi.runtime.registerResourceModule("aws", "iam/userPolicy", _module) pulumi.runtime.registerResourceModule("aws", "iam/userPolicyAttachment", _module) pulumi.runtime.registerResourceModule("aws", "iam/virtualMfaDevice", _module) diff --git a/sdk/nodejs/iam/userPoliciesExclusive.ts b/sdk/nodejs/iam/userPoliciesExclusive.ts new file mode 100644 index 00000000000..a1a39d8dc31 --- /dev/null +++ b/sdk/nodejs/iam/userPoliciesExclusive.ts @@ -0,0 +1,110 @@ +// *** 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"; + +/** + * ## Import + * + * Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: + * + * ```sh + * $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser + * ``` + */ +export class UserPoliciesExclusive extends pulumi.CustomResource { + /** + * Get an existing UserPoliciesExclusive 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?: UserPoliciesExclusiveState, opts?: pulumi.CustomResourceOptions): UserPoliciesExclusive { + return new UserPoliciesExclusive(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:iam/userPoliciesExclusive:UserPoliciesExclusive'; + + /** + * Returns true if the given object is an instance of UserPoliciesExclusive. 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 UserPoliciesExclusive { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === UserPoliciesExclusive.__pulumiType; + } + + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + */ + public readonly policyNames!: pulumi.Output; + /** + * IAM user name. + */ + public readonly userName!: pulumi.Output; + + /** + * Create a UserPoliciesExclusive 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: UserPoliciesExclusiveArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: UserPoliciesExclusiveArgs | UserPoliciesExclusiveState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as UserPoliciesExclusiveState | undefined; + resourceInputs["policyNames"] = state ? state.policyNames : undefined; + resourceInputs["userName"] = state ? state.userName : undefined; + } else { + const args = argsOrState as UserPoliciesExclusiveArgs | undefined; + if ((!args || args.policyNames === undefined) && !opts.urn) { + throw new Error("Missing required property 'policyNames'"); + } + if ((!args || args.userName === undefined) && !opts.urn) { + throw new Error("Missing required property 'userName'"); + } + resourceInputs["policyNames"] = args ? args.policyNames : undefined; + resourceInputs["userName"] = args ? args.userName : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(UserPoliciesExclusive.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering UserPoliciesExclusive resources. + */ +export interface UserPoliciesExclusiveState { + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + */ + policyNames?: pulumi.Input[]>; + /** + * IAM user name. + */ + userName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a UserPoliciesExclusive resource. + */ +export interface UserPoliciesExclusiveArgs { + /** + * A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + */ + policyNames: pulumi.Input[]>; + /** + * IAM user name. + */ + userName: pulumi.Input; +} diff --git a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts index 59c77b66999..69290b96843 100644 --- a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts +++ b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts @@ -54,7 +54,7 @@ import * as utilities from "../utilities"; * name: "firehose_lambda_processor", * role: lambdaIam.arn, * handler: "exports.handler", - * runtime: aws.lambda.Runtime.NodeJS16dX, + * runtime: aws.lambda.Runtime.NodeJS20dX, * }); * const extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream("extended_s3_stream", { * name: "kinesis-firehose-extended-s3-test-stream", diff --git a/sdk/nodejs/lambda/codeSigningConfig.ts b/sdk/nodejs/lambda/codeSigningConfig.ts index a00ab350d57..a045551332d 100644 --- a/sdk/nodejs/lambda/codeSigningConfig.ts +++ b/sdk/nodejs/lambda/codeSigningConfig.ts @@ -29,6 +29,9 @@ import * as utilities from "../utilities"; * untrustedArtifactOnDeployment: "Warn", * }, * description: "My awesome code signing config.", + * tags: { + * Name: "dynamodb", + * }, * }); * ``` * @@ -92,6 +95,16 @@ export class CodeSigningConfig extends pulumi.CustomResource { * A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. */ public readonly policies!: pulumi.Output; + /** + * Map of tags to assign to the object. 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}>; /** * Create a CodeSigningConfig resource with the given unique name, arguments, and options. @@ -112,6 +125,8 @@ export class CodeSigningConfig extends pulumi.CustomResource { resourceInputs["description"] = state ? state.description : undefined; resourceInputs["lastModified"] = state ? state.lastModified : undefined; resourceInputs["policies"] = state ? state.policies : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; } else { const args = argsOrState as CodeSigningConfigArgs | undefined; if ((!args || args.allowedPublishers === undefined) && !opts.urn) { @@ -120,9 +135,11 @@ export class CodeSigningConfig extends pulumi.CustomResource { resourceInputs["allowedPublishers"] = args ? args.allowedPublishers : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["policies"] = args ? args.policies : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["configId"] = undefined /*out*/; resourceInputs["lastModified"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(CodeSigningConfig.__pulumiType, name, resourceInputs, opts); @@ -157,6 +174,16 @@ export interface CodeSigningConfigState { * A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. */ policies?: pulumi.Input; + /** + * Map of tags to assign to the object. 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}>; } /** @@ -175,4 +202,8 @@ export interface CodeSigningConfigArgs { * A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. */ policies?: pulumi.Input; + /** + * Map of tags to assign to the object. 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/lambda/eventSourceMapping.ts b/sdk/nodejs/lambda/eventSourceMapping.ts index 2f1f0ac292c..48cb48634a0 100644 --- a/sdk/nodejs/lambda/eventSourceMapping.ts +++ b/sdk/nodejs/lambda/eventSourceMapping.ts @@ -25,6 +25,9 @@ import * as utilities from "../utilities"; * eventSourceArn: exampleAwsDynamodbTable.streamArn, * functionName: exampleAwsLambdaFunction.arn, * startingPosition: "LATEST", + * tags: { + * Name: "dynamodb", + * }, * }); * ``` * @@ -212,6 +215,10 @@ export class EventSourceMapping extends pulumi.CustomResource { * Additional configuration block for Amazon Managed Kafka sources. Incompatible with "selfManagedEventSource" and "selfManagedKafkaEventSourceConfig". Detailed below. */ public readonly amazonManagedKafkaEventSourceConfig!: pulumi.Output; + /** + * The event source mapping ARN. + */ + public /*out*/ readonly arn!: pulumi.Output; /** * The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. */ @@ -241,7 +248,7 @@ export class EventSourceMapping extends pulumi.CustomResource { */ public readonly filterCriteria!: pulumi.Output; /** - * The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) + * The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) */ public /*out*/ readonly functionArn!: pulumi.Output; /** @@ -316,6 +323,16 @@ export class EventSourceMapping extends pulumi.CustomResource { * The reason the event source mapping is in its current state. */ public /*out*/ readonly stateTransitionReason!: pulumi.Output; + /** + * Map of tags to assign to the object. 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}>; /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. */ @@ -343,6 +360,7 @@ export class EventSourceMapping extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as EventSourceMappingState | undefined; resourceInputs["amazonManagedKafkaEventSourceConfig"] = state ? state.amazonManagedKafkaEventSourceConfig : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; resourceInputs["batchSize"] = state ? state.batchSize : undefined; resourceInputs["bisectBatchOnFunctionError"] = state ? state.bisectBatchOnFunctionError : undefined; resourceInputs["destinationConfig"] = state ? state.destinationConfig : undefined; @@ -369,6 +387,8 @@ export class EventSourceMapping extends pulumi.CustomResource { resourceInputs["startingPositionTimestamp"] = state ? state.startingPositionTimestamp : undefined; resourceInputs["state"] = state ? state.state : undefined; resourceInputs["stateTransitionReason"] = state ? state.stateTransitionReason : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; resourceInputs["topics"] = state ? state.topics : undefined; resourceInputs["tumblingWindowInSeconds"] = state ? state.tumblingWindowInSeconds : undefined; resourceInputs["uuid"] = state ? state.uuid : undefined; @@ -399,13 +419,16 @@ export class EventSourceMapping extends pulumi.CustomResource { resourceInputs["sourceAccessConfigurations"] = args ? args.sourceAccessConfigurations : undefined; resourceInputs["startingPosition"] = args ? args.startingPosition : undefined; resourceInputs["startingPositionTimestamp"] = args ? args.startingPositionTimestamp : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["topics"] = args ? args.topics : undefined; resourceInputs["tumblingWindowInSeconds"] = args ? args.tumblingWindowInSeconds : undefined; + resourceInputs["arn"] = undefined /*out*/; resourceInputs["functionArn"] = undefined /*out*/; resourceInputs["lastModified"] = undefined /*out*/; resourceInputs["lastProcessingResult"] = undefined /*out*/; resourceInputs["state"] = undefined /*out*/; resourceInputs["stateTransitionReason"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; resourceInputs["uuid"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); @@ -421,6 +444,10 @@ export interface EventSourceMappingState { * Additional configuration block for Amazon Managed Kafka sources. Incompatible with "selfManagedEventSource" and "selfManagedKafkaEventSourceConfig". Detailed below. */ amazonManagedKafkaEventSourceConfig?: pulumi.Input; + /** + * The event source mapping ARN. + */ + arn?: pulumi.Input; /** * The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. */ @@ -450,7 +477,7 @@ export interface EventSourceMappingState { */ filterCriteria?: pulumi.Input; /** - * The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) + * The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `functionName` above.) */ functionArn?: pulumi.Input; /** @@ -525,6 +552,16 @@ export interface EventSourceMappingState { * The reason the event source mapping is in its current state. */ stateTransitionReason?: pulumi.Input; + /** + * Map of tags to assign to the object. 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}>; /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. */ @@ -631,6 +668,10 @@ export interface EventSourceMappingArgs { * A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `startingPosition` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. */ startingPositionTimestamp?: pulumi.Input; + /** + * Map of tags to assign to the object. 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}>; /** * The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. */ diff --git a/sdk/nodejs/lambda/layerVersion.ts b/sdk/nodejs/lambda/layerVersion.ts index 1fa00f03b76..4d2cd635e58 100644 --- a/sdk/nodejs/lambda/layerVersion.ts +++ b/sdk/nodejs/lambda/layerVersion.ts @@ -20,7 +20,7 @@ import * as utilities from "../utilities"; * const lambdaLayer = new aws.lambda.LayerVersion("lambda_layer", { * code: new pulumi.asset.FileArchive("lambda_layer_payload.zip"), * layerName: "lambda_layer_name", - * compatibleRuntimes: ["nodejs16.x"], + * compatibleRuntimes: ["nodejs20.x"], * }); * ``` * diff --git a/sdk/nodejs/lambda/permission.ts b/sdk/nodejs/lambda/permission.ts index 1ba93cf08f6..f826e07e029 100644 --- a/sdk/nodejs/lambda/permission.ts +++ b/sdk/nodejs/lambda/permission.ts @@ -36,7 +36,7 @@ import {Function} from "./index"; * name: "lambda_function_name", * role: iamForLambda.arn, * handler: "exports.handler", - * runtime: aws.lambda.Runtime.NodeJS16dX, + * runtime: aws.lambda.Runtime.NodeJS20dX, * }); * const testAlias = new aws.lambda.Alias("test_alias", { * name: "testalias", @@ -80,7 +80,7 @@ import {Function} from "./index"; * name: "lambda_called_from_sns", * role: defaultRole.arn, * handler: "exports.handler", - * runtime: aws.lambda.Runtime.Python3d7, + * runtime: aws.lambda.Runtime.Python3d12, * }); * const withSns = new aws.lambda.Permission("with_sns", { * statementId: "AllowExecutionFromSNS", @@ -141,7 +141,7 @@ import {Function} from "./index"; * name: "lambda_called_from_cloudwatch_logs", * handler: "exports.handler", * role: defaultRole.arn, - * runtime: aws.lambda.Runtime.Python3d7, + * runtime: aws.lambda.Runtime.Python3d12, * }); * const logging = new aws.lambda.Permission("logging", { * action: "lambda:InvokeFunction", diff --git a/sdk/nodejs/s3/analyticsConfiguration.ts b/sdk/nodejs/s3/analyticsConfiguration.ts index 7364700c40a..9ea0d114cae 100644 --- a/sdk/nodejs/s3/analyticsConfiguration.ts +++ b/sdk/nodejs/s3/analyticsConfiguration.ts @@ -21,7 +21,7 @@ import * as utilities from "../utilities"; * import * as aws from "@pulumi/aws"; * * const example = new aws.s3.BucketV2("example", {bucket: "example"}); - * const analytics = new aws.s3.BucketV2("analytics", {bucket: "analytics destination"}); + * const analytics = new aws.s3.BucketV2("analytics", {bucket: "analytics-destination"}); * const example_entire_bucket = new aws.s3.AnalyticsConfiguration("example-entire-bucket", { * bucket: example.id, * name: "EntireBucket", diff --git a/sdk/nodejs/s3/bucketLifecycleConfigurationV2.ts b/sdk/nodejs/s3/bucketLifecycleConfigurationV2.ts index a252bce9f7d..8fbfa0060dd 100644 --- a/sdk/nodejs/s3/bucketLifecycleConfigurationV2.ts +++ b/sdk/nodejs/s3/bucketLifecycleConfigurationV2.ts @@ -189,7 +189,7 @@ import * as utilities from "../utilities"; * * ### Specifying a filter based on object size * - * Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). + * Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`objectSizeGreaterThan`) or a maximum size (`objectSizeLessThan`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -198,11 +198,15 @@ import * as utilities from "../utilities"; * const example = new aws.s3.BucketLifecycleConfigurationV2("example", { * bucket: bucket.id, * rules: [{ - * id: "rule-1", + * id: "Allow small object transitions", * filter: { - * objectSizeGreaterThan: "500", + * objectSizeGreaterThan: "1", * }, * status: "Enabled", + * transitions: [{ + * days: 365, + * storageClass: "GLACIER_IR", + * }], * }], * }); * ``` @@ -378,6 +382,10 @@ export class BucketLifecycleConfigurationV2 extends pulumi.CustomResource { * List of configuration blocks describing the rules managing the replication. See below. */ public readonly rules!: pulumi.Output; + /** + * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + */ + public readonly transitionDefaultMinimumObjectSize!: pulumi.Output; /** * Create a BucketLifecycleConfigurationV2 resource with the given unique name, arguments, and options. @@ -395,6 +403,7 @@ export class BucketLifecycleConfigurationV2 extends pulumi.CustomResource { resourceInputs["bucket"] = state ? state.bucket : undefined; resourceInputs["expectedBucketOwner"] = state ? state.expectedBucketOwner : undefined; resourceInputs["rules"] = state ? state.rules : undefined; + resourceInputs["transitionDefaultMinimumObjectSize"] = state ? state.transitionDefaultMinimumObjectSize : undefined; } else { const args = argsOrState as BucketLifecycleConfigurationV2Args | undefined; if ((!args || args.bucket === undefined) && !opts.urn) { @@ -406,6 +415,7 @@ export class BucketLifecycleConfigurationV2 extends pulumi.CustomResource { resourceInputs["bucket"] = args ? args.bucket : undefined; resourceInputs["expectedBucketOwner"] = args ? args.expectedBucketOwner : undefined; resourceInputs["rules"] = args ? args.rules : undefined; + resourceInputs["transitionDefaultMinimumObjectSize"] = args ? args.transitionDefaultMinimumObjectSize : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(BucketLifecycleConfigurationV2.__pulumiType, name, resourceInputs, opts); @@ -428,6 +438,10 @@ export interface BucketLifecycleConfigurationV2State { * List of configuration blocks describing the rules managing the replication. See below. */ rules?: pulumi.Input[]>; + /** + * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + */ + transitionDefaultMinimumObjectSize?: pulumi.Input; } /** @@ -446,4 +460,8 @@ export interface BucketLifecycleConfigurationV2Args { * List of configuration blocks describing the rules managing the replication. See below. */ rules: pulumi.Input[]>; + /** + * The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `variesByStorageClass`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `objectSizeGreaterThan` or `objectSizeLessThan` value. Custom filters always take precedence over the default transition behavior. + */ + transitionDefaultMinimumObjectSize?: pulumi.Input; } diff --git a/sdk/nodejs/s3/bucketNotification.ts b/sdk/nodejs/s3/bucketNotification.ts index fa9fae1e738..5811d1d7086 100644 --- a/sdk/nodejs/s3/bucketNotification.ts +++ b/sdk/nodejs/s3/bucketNotification.ts @@ -115,7 +115,7 @@ import * as utilities from "../utilities"; * name: "example_lambda_name", * role: iamForLambda.arn, * handler: "exports.example", - * runtime: aws.lambda.Runtime.Go1dx, + * runtime: aws.lambda.Runtime.NodeJS20dX, * }); * const bucket = new aws.s3.BucketV2("bucket", {bucket: "your-bucket-name"}); * const allowBucket = new aws.lambda.Permission("allow_bucket", { @@ -163,7 +163,7 @@ import * as utilities from "../utilities"; * name: "example_lambda_name1", * role: iamForLambda.arn, * handler: "exports.example", - * runtime: aws.lambda.Runtime.Go1dx, + * runtime: aws.lambda.Runtime.NodeJS20dX, * }); * const bucket = new aws.s3.BucketV2("bucket", {bucket: "your-bucket-name"}); * const allowBucket1 = new aws.lambda.Permission("allow_bucket1", { diff --git a/sdk/nodejs/s3/bucketObjectLockConfigurationV2.ts b/sdk/nodejs/s3/bucketObjectLockConfigurationV2.ts index 79709cd68ca..c434f25743a 100644 --- a/sdk/nodejs/s3/bucketObjectLockConfigurationV2.ts +++ b/sdk/nodejs/s3/bucketObjectLockConfigurationV2.ts @@ -42,21 +42,14 @@ import * as utilities from "../utilities"; * * ## Import * - * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: * - * import { - * to = aws_s3_bucket_object_lock_configuration.example - * id = "bucket-name,123456789012" - * } - * - * __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: - * - * If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: + * __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: * * ```sh * $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name * ``` - * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + * If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: * * ```sh * $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 diff --git a/sdk/nodejs/securityhub/getStandardsControlAssociations.ts b/sdk/nodejs/securityhub/getStandardsControlAssociations.ts index d7bd7feff14..5c267a5b9ea 100644 --- a/sdk/nodejs/securityhub/getStandardsControlAssociations.ts +++ b/sdk/nodejs/securityhub/getStandardsControlAssociations.ts @@ -28,7 +28,6 @@ export function getStandardsControlAssociations(args: GetStandardsControlAssocia opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations", { "securityControlId": args.securityControlId, - "standardsControlAssociations": args.standardsControlAssociations, }, opts); } @@ -40,11 +39,6 @@ export interface GetStandardsControlAssociationsArgs { * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). */ securityControlId: string; - /** - * A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standardsControlAssociations` below. - */ - standardsControlAssociations?: inputs.securityhub.GetStandardsControlAssociationsStandardsControlAssociation[]; } /** @@ -60,7 +54,7 @@ export interface GetStandardsControlAssociationsResult { * A list that provides the status and other details for each security control that applies to each enabled standard. * See `standardsControlAssociations` below. */ - readonly standardsControlAssociations?: outputs.securityhub.GetStandardsControlAssociationsStandardsControlAssociation[]; + readonly standardsControlAssociations: outputs.securityhub.GetStandardsControlAssociationsStandardsControlAssociation[]; } /** * Data source for managing an AWS Security Hub Standards Control Associations. @@ -83,7 +77,6 @@ export function getStandardsControlAssociationsOutput(args: GetStandardsControlA opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations", { "securityControlId": args.securityControlId, - "standardsControlAssociations": args.standardsControlAssociations, }, opts); } @@ -95,9 +88,4 @@ export interface GetStandardsControlAssociationsOutputArgs { * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). */ securityControlId: pulumi.Input; - /** - * A list that provides the status and other details for each security control that applies to each enabled standard. - * See `standardsControlAssociations` below. - */ - standardsControlAssociations?: pulumi.Input[]>; } diff --git a/sdk/nodejs/securityhub/index.ts b/sdk/nodejs/securityhub/index.ts index f2f761b997d..516e8442bf3 100644 --- a/sdk/nodejs/securityhub/index.ts +++ b/sdk/nodejs/securityhub/index.ts @@ -75,6 +75,11 @@ export type StandardsControl = import("./standardsControl").StandardsControl; export const StandardsControl: typeof import("./standardsControl").StandardsControl = null as any; utilities.lazyLoad(exports, ["StandardsControl"], () => require("./standardsControl")); +export { StandardsControlAssociationArgs, StandardsControlAssociationState } from "./standardsControlAssociation"; +export type StandardsControlAssociation = import("./standardsControlAssociation").StandardsControlAssociation; +export const StandardsControlAssociation: typeof import("./standardsControlAssociation").StandardsControlAssociation = null as any; +utilities.lazyLoad(exports, ["StandardsControlAssociation"], () => require("./standardsControlAssociation")); + export { StandardsSubscriptionArgs, StandardsSubscriptionState } from "./standardsSubscription"; export type StandardsSubscription = import("./standardsSubscription").StandardsSubscription; export const StandardsSubscription: typeof import("./standardsSubscription").StandardsSubscription = null as any; @@ -111,6 +116,8 @@ const _module = { return new ProductSubscription(name, undefined, { urn }) case "aws:securityhub/standardsControl:StandardsControl": return new StandardsControl(name, undefined, { urn }) + case "aws:securityhub/standardsControlAssociation:StandardsControlAssociation": + return new StandardsControlAssociation(name, undefined, { urn }) case "aws:securityhub/standardsSubscription:StandardsSubscription": return new StandardsSubscription(name, undefined, { urn }) default: @@ -131,4 +138,5 @@ pulumi.runtime.registerResourceModule("aws", "securityhub/organizationAdminAccou pulumi.runtime.registerResourceModule("aws", "securityhub/organizationConfiguration", _module) pulumi.runtime.registerResourceModule("aws", "securityhub/productSubscription", _module) pulumi.runtime.registerResourceModule("aws", "securityhub/standardsControl", _module) +pulumi.runtime.registerResourceModule("aws", "securityhub/standardsControlAssociation", _module) pulumi.runtime.registerResourceModule("aws", "securityhub/standardsSubscription", _module) diff --git a/sdk/nodejs/securityhub/standardsControlAssociation.ts b/sdk/nodejs/securityhub/standardsControlAssociation.ts new file mode 100644 index 00000000000..fbde228e0e9 --- /dev/null +++ b/sdk/nodejs/securityhub/standardsControlAssociation.ts @@ -0,0 +1,159 @@ +// *** 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"; + +/** + * ## Example Usage + * + * ### Basic usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.securityhub.Account("example", {}); + * const cisAwsFoundationsBenchmark = new aws.securityhub.StandardsSubscription("cis_aws_foundations_benchmark", {standardsArn: "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"}, { + * dependsOn: [example], + * }); + * const cisAwsFoundationsBenchmarkDisableIam1 = new aws.index.StandardsControlAssociation("cis_aws_foundations_benchmark_disable_iam_1", { + * standardsArn: cisAwsFoundationsBenchmark.standardsArn, + * securityControlId: "IAM.1", + * associationStatus: "DISABLED", + * updatedReason: "Not needed", + * }); + * ``` + */ +export class StandardsControlAssociation extends pulumi.CustomResource { + /** + * Get an existing StandardsControlAssociation 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?: StandardsControlAssociationState, opts?: pulumi.CustomResourceOptions): StandardsControlAssociation { + return new StandardsControlAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:securityhub/standardsControlAssociation:StandardsControlAssociation'; + + /** + * Returns true if the given object is an instance of StandardsControlAssociation. 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 StandardsControlAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StandardsControlAssociation.__pulumiType; + } + + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + */ + public readonly associationStatus!: pulumi.Output; + /** + * The unique identifier for the security control whose enablement status you want to update. + */ + public readonly securityControlId!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + */ + public readonly standardsArn!: pulumi.Output; + /** + * The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + */ + public readonly updatedReason!: pulumi.Output; + + /** + * Create a StandardsControlAssociation 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: StandardsControlAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: StandardsControlAssociationArgs | StandardsControlAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as StandardsControlAssociationState | undefined; + resourceInputs["associationStatus"] = state ? state.associationStatus : undefined; + resourceInputs["securityControlId"] = state ? state.securityControlId : undefined; + resourceInputs["standardsArn"] = state ? state.standardsArn : undefined; + resourceInputs["updatedReason"] = state ? state.updatedReason : undefined; + } else { + const args = argsOrState as StandardsControlAssociationArgs | undefined; + if ((!args || args.associationStatus === undefined) && !opts.urn) { + throw new Error("Missing required property 'associationStatus'"); + } + if ((!args || args.securityControlId === undefined) && !opts.urn) { + throw new Error("Missing required property 'securityControlId'"); + } + if ((!args || args.standardsArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'standardsArn'"); + } + resourceInputs["associationStatus"] = args ? args.associationStatus : undefined; + resourceInputs["securityControlId"] = args ? args.securityControlId : undefined; + resourceInputs["standardsArn"] = args ? args.standardsArn : undefined; + resourceInputs["updatedReason"] = args ? args.updatedReason : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(StandardsControlAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering StandardsControlAssociation resources. + */ +export interface StandardsControlAssociationState { + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + */ + associationStatus?: pulumi.Input; + /** + * The unique identifier for the security control whose enablement status you want to update. + */ + securityControlId?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + */ + standardsArn?: pulumi.Input; + /** + * The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + */ + updatedReason?: pulumi.Input; +} + +/** + * The set of arguments for constructing a StandardsControlAssociation resource. + */ +export interface StandardsControlAssociationArgs { + /** + * The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + */ + associationStatus: pulumi.Input; + /** + * The unique identifier for the security control whose enablement status you want to update. + */ + securityControlId: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + * + * The following arguments are optional: + */ + standardsArn: pulumi.Input; + /** + * The reason for updating the control's enablement status in the standard. Required when `associationStatus` is `DISABLED`. + */ + updatedReason?: pulumi.Input; +} diff --git a/sdk/nodejs/shield/applicationLayerAutomaticResponse.ts b/sdk/nodejs/shield/applicationLayerAutomaticResponse.ts index 85e11e1fae1..e363f69c26d 100644 --- a/sdk/nodejs/shield/applicationLayerAutomaticResponse.ts +++ b/sdk/nodejs/shield/applicationLayerAutomaticResponse.ts @@ -11,6 +11,24 @@ import * as utilities from "../utilities"; * Resource for managing an AWS Shield Application Layer Automatic Response for automatic DDoS mitigation. * * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const current = aws.getRegion({}); + * const currentGetCallerIdentity = aws.getCallerIdentity({}); + * const currentGetPartition = aws.getPartition({}); + * const config = new pulumi.Config(); + * // The Cloudfront Distribution on which to enable the Application Layer Automatic Response. + * const distributionId = config.require("distributionId"); + * const example = new aws.shield.ApplicationLayerAutomaticResponse("example", { + * resourceArn: Promise.all([currentGetPartition, currentGetCallerIdentity]).then(([currentGetPartition, currentGetCallerIdentity]) => `arn:${currentGetPartition.partition}:cloudfront:${currentGetCallerIdentity.accountId}:distribution/${distributionId}`), + * action: "COUNT", + * }); + * ``` */ export class ApplicationLayerAutomaticResponse extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/shield/drtAccessRoleArnAssociation.ts b/sdk/nodejs/shield/drtAccessRoleArnAssociation.ts index 3d10584177b..c0e9f0f3d63 100644 --- a/sdk/nodejs/shield/drtAccessRoleArnAssociation.ts +++ b/sdk/nodejs/shield/drtAccessRoleArnAssociation.ts @@ -19,8 +19,8 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * - * const test = new aws.iam.Role("test", { - * name: awsShieldDrtAccessRoleArn, + * const exampleRole = new aws.iam.Role("example", { + * name: "example-role", * assumeRolePolicy: JSON.stringify({ * Version: "2012-10-17", * Statement: [{ @@ -33,11 +33,11 @@ import * as utilities from "../utilities"; * }], * }), * }); - * const testRolePolicyAttachment = new aws.iam.RolePolicyAttachment("test", { - * role: test.name, + * const example = new aws.shield.DrtAccessRoleArnAssociation("example", {roleArn: exampleRole.arn}); + * const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", { + * role: exampleRole.name, * policyArn: "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", * }); - * const testDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation("test", {roleArn: test.arn}); * ``` * * ## Import diff --git a/sdk/nodejs/shield/proactiveEngagement.ts b/sdk/nodejs/shield/proactiveEngagement.ts index f553a9fabe9..3ecea627c6a 100644 --- a/sdk/nodejs/shield/proactiveEngagement.ts +++ b/sdk/nodejs/shield/proactiveEngagement.ts @@ -19,8 +19,8 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * - * const example = new aws.iam.Role("example", { - * name: awsShieldDrtAccessRoleArn, + * const exampleRole = new aws.iam.Role("example", { + * name: "example-role", * assumeRolePolicy: JSON.stringify({ * Version: "2012-10-17", * Statement: [{ @@ -33,32 +33,32 @@ import * as utilities from "../utilities"; * }], * }), * }); - * const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", { - * role: example.name, - * policyArn: "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", - * }); - * const exampleDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation("example", {roleArn: example.arn}); - * const test = new aws.shield.ProtectionGroup("test", { - * protectionGroupId: "example", - * aggregation: "MAX", - * pattern: "ALL", - * }); - * const testProactiveEngagement = new aws.shield.ProactiveEngagement("test", { + * const exampleDrtAccessRoleArnAssociation = new aws.shield.DrtAccessRoleArnAssociation("example", {roleArn: exampleRole.arn}); + * const example = new aws.shield.ProactiveEngagement("example", { * enabled: true, * emergencyContacts: [ * { * contactNotes: "Notes", - * emailAddress: "test@company.com", + * emailAddress: "contact1@example.com", * phoneNumber: "+12358132134", * }, * { * contactNotes: "Notes 2", - * emailAddress: "test2@company.com", + * emailAddress: "contact2@example.com", * phoneNumber: "+12358132134", * }, * ], * }, { - * dependsOn: [testAwsShieldDrtAccessRoleArnAssociation], + * dependsOn: [exampleDrtAccessRoleArnAssociation], + * }); + * const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", { + * role: exampleRole.name, + * policyArn: "arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy", + * }); + * const exampleProtectionGroup = new aws.shield.ProtectionGroup("example", { + * protectionGroupId: "example", + * aggregation: "MAX", + * pattern: "ALL", * }); * ``` * diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index f9fe1ba1be1..e3cc9adafb8 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -231,6 +231,7 @@ "backup/getVault.ts", "backup/globalSettings.ts", "backup/index.ts", + "backup/logicallyAirGappedVault.ts", "backup/plan.ts", "backup/regionSettings.ts", "backup/reportPlan.ts", @@ -261,6 +262,7 @@ "bedrock/getCustomModel.ts", "bedrock/getCustomModels.ts", "bedrock/guardrail.ts", + "bedrock/guardrailVersion.ts", "bedrock/index.ts", "bedrock/provisionedModelThroughput.ts", "bedrockfoundation/getModel.ts", @@ -848,6 +850,8 @@ "ec2clientvpn/route.ts", "ec2transitgateway/connect.ts", "ec2transitgateway/connectPeer.ts", + "ec2transitgateway/defaultRouteTableAssociation.ts", + "ec2transitgateway/defaultRouteTablePropagation.ts", "ec2transitgateway/getAttachment.ts", "ec2transitgateway/getAttachments.ts", "ec2transitgateway/getConnect.ts", @@ -1153,6 +1157,7 @@ "iam/getUsers.ts", "iam/group.ts", "iam/groupMembership.ts", + "iam/groupPoliciesExclusive.ts", "iam/groupPolicy.ts", "iam/groupPolicyAttachment.ts", "iam/index.ts", @@ -1176,6 +1181,7 @@ "iam/user.ts", "iam/userGroupMembership.ts", "iam/userLoginProfile.ts", + "iam/userPoliciesExclusive.ts", "iam/userPolicy.ts", "iam/userPolicyAttachment.ts", "iam/virtualMfaDevice.ts", @@ -1956,6 +1962,7 @@ "securityhub/organizationConfiguration.ts", "securityhub/productSubscription.ts", "securityhub/standardsControl.ts", + "securityhub/standardsControlAssociation.ts", "securityhub/standardsSubscription.ts", "securitylake/awsLogSource.ts", "securitylake/customLogSource.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index d7595d1b0df..71612ab048e 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -9314,6 +9314,13 @@ export namespace backup { tags?: pulumi.Input<{[key: string]: pulumi.Input}>; } + export interface LogicallyAirGappedVaultTimeouts { + /** + * 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 PlanAdvancedBackupSetting { /** * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. @@ -10092,6 +10099,17 @@ export namespace bedrock { type: pulumi.Input; } + export interface AgentAgentActionGroupTimeouts { + /** + * 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). + */ + update?: pulumi.Input; + } + export interface AgentAgentAliasRoutingConfiguration { /** * Version of the agent with which the alias is associated. @@ -10265,6 +10283,10 @@ export namespace bedrock { * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunkingConfiguration` block for details. */ chunkingConfiguration?: pulumi.Input; + /** + * Configuration for custom transformation of data source documents. + */ + customTransformationConfiguration?: pulumi.Input; /** * Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. */ @@ -10331,6 +10353,53 @@ export namespace bedrock { maxToken: pulumi.Input; } + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + /** + * The intermediate storage for custom transformation. + */ + intermediateStorage?: pulumi.Input; + transformation?: pulumi.Input; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + /** + * Configuration block for intermedia S3 storage. + */ + s3Location?: pulumi.Input; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + /** + * S3 URI for intermediate storage. + */ + uri: pulumi.Input; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + /** + * Currently only `POST_CHUNKING` is supported. + */ + stepToApply: pulumi.Input; + /** + * The configuration of transformation function. + */ + transformationFunction?: pulumi.Input; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + /** + * The lambda configuration for custom transformation. + */ + transformationLambdaConfiguration?: pulumi.Input; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { + /** + * The ARN of the lambda to use for custom transformation. + */ + lambdaArn: pulumi.Input; + } + export interface AgentDataSourceVectorIngestionConfigurationParsingConfiguration { /** * Settings for a foundation model used to parse documents in a data source. See `bedrockFoundationModelConfiguration` block for details. @@ -10818,6 +10887,17 @@ export namespace bedrock { type: pulumi.Input; } + export interface GuardrailVersionTimeouts { + /** + * 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; + } + export interface GuardrailWordPolicyConfig { /** * A config for the list of managed words. See Managed Word Lists Config for more information. @@ -25772,6 +25852,36 @@ export namespace ec2clientvpn { } export namespace ec2transitgateway { + export interface DefaultRouteTableAssociationTimeouts { + /** + * 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 DefaultRouteTablePropagationTimeouts { + /** + * 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 GetAttachmentFilter { /** * Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). @@ -31325,6 +31435,10 @@ export namespace globalaccelerator { } export interface EndpointGroupEndpointConfiguration { + /** + * An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + */ + attachmentArn?: pulumi.Input; /** * Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -65293,7 +65407,7 @@ export namespace s3 { export interface BucketLifecycleConfigurationV2RuleFilterAnd { /** - * Minimum object size to which the rule applies. Value must be at least `0` if specified. + * Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. */ objectSizeGreaterThan?: pulumi.Input; /** @@ -71196,84 +71310,6 @@ export namespace securityhub { values: pulumi.Input[]>; } - export interface GetStandardsControlAssociationsStandardsControlAssociation { - /** - * Enablement status of a control in a specific standard. - */ - associationStatus?: string; - /** - * List of underlying requirements in the compliance framework related to the standard. - */ - relatedRequirements?: string[]; - /** - * ARN of the security control. - */ - securityControlArn?: string; - /** - * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - */ - securityControlId?: string; - /** - * ARN of the standard. - */ - standardsArn?: string; - /** - * Description of the standard. - */ - standardsControlDescription?: string; - /** - * Title of the standard. - */ - standardsControlTitle?: string; - /** - * Last time that a control's enablement status in a specified standard was updated. - */ - updatedAt?: string; - /** - * Reason for updating a control's enablement status in a specified standard. - */ - updatedReason?: string; - } - - export interface GetStandardsControlAssociationsStandardsControlAssociationArgs { - /** - * Enablement status of a control in a specific standard. - */ - associationStatus?: pulumi.Input; - /** - * List of underlying requirements in the compliance framework related to the standard. - */ - relatedRequirements?: pulumi.Input[]>; - /** - * ARN of the security control. - */ - securityControlArn?: pulumi.Input; - /** - * The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - */ - securityControlId?: pulumi.Input; - /** - * ARN of the standard. - */ - standardsArn?: pulumi.Input; - /** - * Description of the standard. - */ - standardsControlDescription?: pulumi.Input; - /** - * Title of the standard. - */ - standardsControlTitle?: pulumi.Input; - /** - * Last time that a control's enablement status in a specified standard was updated. - */ - updatedAt?: pulumi.Input; - /** - * Reason for updating a control's enablement status in a specified standard. - */ - updatedReason?: pulumi.Input; - } - export interface InsightFilters { /** * AWS account ID that a finding is generated in. See String_Filter below for more details. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index cbaf02ffdc4..f5ac7619690 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -9892,6 +9892,13 @@ export namespace backup { reportTemplate: string; } + export interface LogicallyAirGappedVaultTimeouts { + /** + * 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 PlanAdvancedBackupSetting { /** * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. @@ -11278,6 +11285,17 @@ export namespace bedrock { type: string; } + export interface AgentAgentActionGroupTimeouts { + /** + * 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). + */ + update?: string; + } + export interface AgentAgentAliasRoutingConfiguration { /** * Version of the agent with which the alias is associated. @@ -11451,6 +11469,10 @@ export namespace bedrock { * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunkingConfiguration` block for details. */ chunkingConfiguration?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationChunkingConfiguration; + /** + * Configuration for custom transformation of data source documents. + */ + customTransformationConfiguration?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration; /** * Configuration for custom parsing of data source documents. See `parsingConfiguration` block for details. */ @@ -11517,6 +11539,53 @@ export namespace bedrock { maxToken: number; } + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration { + /** + * The intermediate storage for custom transformation. + */ + intermediateStorage?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage; + transformation?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage { + /** + * Configuration block for intermedia S3 storage. + */ + s3Location?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location { + /** + * S3 URI for intermediate storage. + */ + uri: string; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation { + /** + * Currently only `POST_CHUNKING` is supported. + */ + stepToApply: string; + /** + * The configuration of transformation function. + */ + transformationFunction?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction { + /** + * The lambda configuration for custom transformation. + */ + transformationLambdaConfiguration?: outputs.bedrock.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration; + } + + export interface AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration { + /** + * The ARN of the lambda to use for custom transformation. + */ + lambdaArn: string; + } + export interface AgentDataSourceVectorIngestionConfigurationParsingConfiguration { /** * Settings for a foundation model used to parse documents in a data source. See `bedrockFoundationModelConfiguration` block for details. @@ -12021,6 +12090,17 @@ export namespace bedrock { type: string; } + export interface GuardrailVersionTimeouts { + /** + * 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; + } + export interface GuardrailWordPolicyConfig { /** * A config for the list of managed words. See Managed Word Lists Config for more information. @@ -31496,6 +31576,36 @@ export namespace ec2clientvpn { } export namespace ec2transitgateway { + export interface DefaultRouteTableAssociationTimeouts { + /** + * 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 DefaultRouteTablePropagationTimeouts { + /** + * 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 GetAttachmentFilter { /** * Name of the field to filter by, as defined by the [underlying AWS API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html). @@ -37356,6 +37466,10 @@ export namespace globalaccelerator { } export interface EndpointGroupEndpointConfiguration { + /** + * An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + */ + attachmentArn?: string; /** * Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. * **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. @@ -73478,7 +73592,7 @@ export namespace s3 { export interface BucketLifecycleConfigurationV2RuleFilterAnd { /** - * Minimum object size to which the rule applies. Value must be at least `0` if specified. + * Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storageClass` values unless `transitionDefaultMinimumObjectSize` specifies otherwise. */ objectSizeGreaterThan?: number; /** diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index f147f82fb21..2e6deb3b9e9 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -1799,6 +1799,14 @@ "aws:backup/globalSettings:GlobalSettings": "GlobalSettings" } }, + { + "pkg": "aws", + "mod": "backup/logicallyAirGappedVault", + "fqn": "pulumi_aws.backup", + "classes": { + "aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault": "LogicallyAirGappedVault" + } + }, { "pkg": "aws", "mod": "backup/plan", @@ -1967,6 +1975,14 @@ "aws:bedrock/guardrail:Guardrail": "Guardrail" } }, + { + "pkg": "aws", + "mod": "bedrock/guardrailVersion", + "fqn": "pulumi_aws.bedrock", + "classes": { + "aws:bedrock/guardrailVersion:GuardrailVersion": "GuardrailVersion" + } + }, { "pkg": "aws", "mod": "bedrock/provisionedModelThroughput", @@ -4919,6 +4935,22 @@ "aws:ec2transitgateway/connectPeer:ConnectPeer": "ConnectPeer" } }, + { + "pkg": "aws", + "mod": "ec2transitgateway/defaultRouteTableAssociation", + "fqn": "pulumi_aws.ec2transitgateway", + "classes": { + "aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation": "DefaultRouteTableAssociation" + } + }, + { + "pkg": "aws", + "mod": "ec2transitgateway/defaultRouteTablePropagation", + "fqn": "pulumi_aws.ec2transitgateway", + "classes": { + "aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation": "DefaultRouteTablePropagation" + } + }, { "pkg": "aws", "mod": "ec2transitgateway/instanceConnectEndpoint", @@ -6327,6 +6359,14 @@ "aws:iam/groupMembership:GroupMembership": "GroupMembership" } }, + { + "pkg": "aws", + "mod": "iam/groupPoliciesExclusive", + "fqn": "pulumi_aws.iam", + "classes": { + "aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive": "GroupPoliciesExclusive" + } + }, { "pkg": "aws", "mod": "iam/groupPolicy", @@ -6487,6 +6527,14 @@ "aws:iam/userLoginProfile:UserLoginProfile": "UserLoginProfile" } }, + { + "pkg": "aws", + "mod": "iam/userPoliciesExclusive", + "fqn": "pulumi_aws.iam", + "classes": { + "aws:iam/userPoliciesExclusive:UserPoliciesExclusive": "UserPoliciesExclusive" + } + }, { "pkg": "aws", "mod": "iam/userPolicy", @@ -10439,6 +10487,14 @@ "aws:securityhub/standardsControl:StandardsControl": "StandardsControl" } }, + { + "pkg": "aws", + "mod": "securityhub/standardsControlAssociation", + "fqn": "pulumi_aws.securityhub", + "classes": { + "aws:securityhub/standardsControlAssociation:StandardsControlAssociation": "StandardsControlAssociation" + } + }, { "pkg": "aws", "mod": "securityhub/standardsSubscription", diff --git a/sdk/python/pulumi_aws/apigateway/integration.py b/sdk/python/pulumi_aws/apigateway/integration.py index cc949c6cc05..ebbe552b75b 100644 --- a/sdk/python/pulumi_aws/apigateway/integration.py +++ b/sdk/python/pulumi_aws/apigateway/integration.py @@ -707,7 +707,7 @@ def __init__(__self__, name="mylambda", role=role.arn, handler="lambda.lambda_handler", - runtime=aws.lambda_.Runtime.PYTHON3D7, + runtime=aws.lambda_.Runtime.PYTHON3D12, source_code_hash=std.filebase64sha256(input="lambda.zip").result) integration = aws.apigateway.Integration("integration", rest_api=api.id, @@ -902,7 +902,7 @@ def __init__(__self__, name="mylambda", role=role.arn, handler="lambda.lambda_handler", - runtime=aws.lambda_.Runtime.PYTHON3D7, + runtime=aws.lambda_.Runtime.PYTHON3D12, source_code_hash=std.filebase64sha256(input="lambda.zip").result) integration = aws.apigateway.Integration("integration", rest_api=api.id, diff --git a/sdk/python/pulumi_aws/apigatewayv2/integration.py b/sdk/python/pulumi_aws/apigatewayv2/integration.py index 03a51ac2449..8a98ea4a36c 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/integration.py +++ b/sdk/python/pulumi_aws/apigatewayv2/integration.py @@ -708,7 +708,7 @@ def __init__(__self__, name="Example", role=example_aws_iam_role["arn"], handler="index.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) example_integration = aws.apigatewayv2.Integration("example", api_id=example_aws_apigatewayv2_api["id"], integration_type="AWS_PROXY", @@ -848,7 +848,7 @@ def __init__(__self__, name="Example", role=example_aws_iam_role["arn"], handler="index.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) example_integration = aws.apigatewayv2.Integration("example", api_id=example_aws_apigatewayv2_api["id"], integration_type="AWS_PROXY", diff --git a/sdk/python/pulumi_aws/appflow/connector_profile.py b/sdk/python/pulumi_aws/appflow/connector_profile.py index 05f884ca43e..a6a5e06a064 100644 --- a/sdk/python/pulumi_aws/appflow/connector_profile.py +++ b/sdk/python/pulumi_aws/appflow/connector_profile.py @@ -288,7 +288,7 @@ def __init__(__self__, }, }], })) - example_bucket_v2 = aws.s3.BucketV2("example", bucket="example_bucket") + example_bucket_v2 = aws.s3.BucketV2("example", bucket="example-bucket") example_cluster = aws.redshift.Cluster("example", cluster_identifier="example_cluster", database_name="example_db", @@ -372,7 +372,7 @@ def __init__(__self__, }, }], })) - example_bucket_v2 = aws.s3.BucketV2("example", bucket="example_bucket") + example_bucket_v2 = aws.s3.BucketV2("example", bucket="example-bucket") example_cluster = aws.redshift.Cluster("example", cluster_identifier="example_cluster", database_name="example_db", diff --git a/sdk/python/pulumi_aws/backup/__init__.py b/sdk/python/pulumi_aws/backup/__init__.py index 055874da7a9..5a3da61b0bb 100644 --- a/sdk/python/pulumi_aws/backup/__init__.py +++ b/sdk/python/pulumi_aws/backup/__init__.py @@ -12,6 +12,7 @@ from .get_selection import * from .get_vault import * from .global_settings import * +from .logically_air_gapped_vault import * from .plan import * from .region_settings import * from .report_plan import * diff --git a/sdk/python/pulumi_aws/backup/_inputs.py b/sdk/python/pulumi_aws/backup/_inputs.py index 705091ee9bd..e5e30a4b2c5 100644 --- a/sdk/python/pulumi_aws/backup/_inputs.py +++ b/sdk/python/pulumi_aws/backup/_inputs.py @@ -21,6 +21,8 @@ 'FrameworkControlInputParameterArgsDict', 'FrameworkControlScopeArgs', 'FrameworkControlScopeArgsDict', + 'LogicallyAirGappedVaultTimeoutsArgs', + 'LogicallyAirGappedVaultTimeoutsArgsDict', 'PlanAdvancedBackupSettingArgs', 'PlanAdvancedBackupSettingArgsDict', 'PlanRuleArgs', @@ -246,6 +248,38 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) +if not MYPY: + class LogicallyAirGappedVaultTimeoutsArgsDict(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: + LogicallyAirGappedVaultTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LogicallyAirGappedVaultTimeoutsArgs: + 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 PlanAdvancedBackupSettingArgsDict(TypedDict): backup_options: pulumi.Input[Mapping[str, pulumi.Input[str]]] diff --git a/sdk/python/pulumi_aws/backup/logically_air_gapped_vault.py b/sdk/python/pulumi_aws/backup/logically_air_gapped_vault.py new file mode 100644 index 00000000000..4124c6255af --- /dev/null +++ b/sdk/python/pulumi_aws/backup/logically_air_gapped_vault.py @@ -0,0 +1,434 @@ +# 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__ = ['LogicallyAirGappedVaultArgs', 'LogicallyAirGappedVault'] + +@pulumi.input_type +class LogicallyAirGappedVaultArgs: + def __init__(__self__, *, + max_retention_days: pulumi.Input[int], + min_retention_days: pulumi.Input[int], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['LogicallyAirGappedVaultTimeoutsArgs']] = None): + """ + The set of arguments for constructing a LogicallyAirGappedVault resource. + :param pulumi.Input[int] max_retention_days: Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[int] min_retention_days: Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[str] name: Name of the Logically Air Gapped Backup Vault to create. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. 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__, "max_retention_days", max_retention_days) + pulumi.set(__self__, "min_retention_days", min_retention_days) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="maxRetentionDays") + def max_retention_days(self) -> pulumi.Input[int]: + """ + Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "max_retention_days") + + @max_retention_days.setter + def max_retention_days(self, value: pulumi.Input[int]): + pulumi.set(self, "max_retention_days", value) + + @property + @pulumi.getter(name="minRetentionDays") + def min_retention_days(self) -> pulumi.Input[int]: + """ + Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "min_retention_days") + + @min_retention_days.setter + def min_retention_days(self, value: pulumi.Input[int]): + pulumi.set(self, "min_retention_days", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Logically Air Gapped Backup Vault to create. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Metadata that you can assign to help organize the resources that you create. 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['LogicallyAirGappedVaultTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['LogicallyAirGappedVaultTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _LogicallyAirGappedVaultState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + name: 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['LogicallyAirGappedVaultTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering LogicallyAirGappedVault resources. + :param pulumi.Input[str] arn: The ARN of the Logically Air Gapped Backup Vault. + :param pulumi.Input[int] max_retention_days: Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[int] min_retention_days: Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[str] name: Name of the Logically Air Gapped Backup Vault to create. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. 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 max_retention_days is not None: + pulumi.set(__self__, "max_retention_days", max_retention_days) + if min_retention_days is not None: + pulumi.set(__self__, "min_retention_days", min_retention_days) + if name is not None: + pulumi.set(__self__, "name", name) + 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]]: + """ + The ARN of the Logically Air Gapped Backup Vault. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="maxRetentionDays") + def max_retention_days(self) -> Optional[pulumi.Input[int]]: + """ + Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "max_retention_days") + + @max_retention_days.setter + def max_retention_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_retention_days", value) + + @property + @pulumi.getter(name="minRetentionDays") + def min_retention_days(self) -> Optional[pulumi.Input[int]]: + """ + Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "min_retention_days") + + @min_retention_days.setter + def min_retention_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_retention_days", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Logically Air Gapped Backup Vault to create. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Metadata that you can assign to help organize the resources that you create. 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['LogicallyAirGappedVaultTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['LogicallyAirGappedVaultTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class LogicallyAirGappedVault(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['LogicallyAirGappedVaultTimeoutsArgs', 'LogicallyAirGappedVaultTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS Backup Logically Air Gapped Vault. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.backup.LogicallyAirGappedVault("example", + name="lag-example-vault", + max_retention_days=7, + min_retention_days=7) + ``` + + ## Import + + Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: + + ```sh + $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] max_retention_days: Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[int] min_retention_days: Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[str] name: Name of the Logically Air Gapped Backup Vault to create. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. 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: LogicallyAirGappedVaultArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Backup Logically Air Gapped Vault. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.backup.LogicallyAirGappedVault("example", + name="lag-example-vault", + max_retention_days=7, + min_retention_days=7) + ``` + + ## Import + + Using `pulumi import`, import Backup Logically Air Gapped Vault using the `id`. For example: + + ```sh + $ pulumi import aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault example lag-example-vault + ``` + + :param str resource_name: The name of the resource. + :param LogicallyAirGappedVaultArgs 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(LogicallyAirGappedVaultArgs, 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, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['LogicallyAirGappedVaultTimeoutsArgs', 'LogicallyAirGappedVaultTimeoutsArgsDict']]] = 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__ = LogicallyAirGappedVaultArgs.__new__(LogicallyAirGappedVaultArgs) + + if max_retention_days is None and not opts.urn: + raise TypeError("Missing required property 'max_retention_days'") + __props__.__dict__["max_retention_days"] = max_retention_days + if min_retention_days is None and not opts.urn: + raise TypeError("Missing required property 'min_retention_days'") + __props__.__dict__["min_retention_days"] = min_retention_days + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + super(LogicallyAirGappedVault, __self__).__init__( + 'aws:backup/logicallyAirGappedVault:LogicallyAirGappedVault', + 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, + max_retention_days: Optional[pulumi.Input[int]] = None, + min_retention_days: Optional[pulumi.Input[int]] = None, + name: 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['LogicallyAirGappedVaultTimeoutsArgs', 'LogicallyAirGappedVaultTimeoutsArgsDict']]] = None) -> 'LogicallyAirGappedVault': + """ + Get an existing LogicallyAirGappedVault 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 Logically Air Gapped Backup Vault. + :param pulumi.Input[int] max_retention_days: Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[int] min_retention_days: Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + :param pulumi.Input[str] name: Name of the Logically Air Gapped Backup Vault to create. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the resources that you create. 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__ = _LogicallyAirGappedVaultState.__new__(_LogicallyAirGappedVaultState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["max_retention_days"] = max_retention_days + __props__.__dict__["min_retention_days"] = min_retention_days + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + return LogicallyAirGappedVault(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the Logically Air Gapped Backup Vault. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="maxRetentionDays") + def max_retention_days(self) -> pulumi.Output[int]: + """ + Maximum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "max_retention_days") + + @property + @pulumi.getter(name="minRetentionDays") + def min_retention_days(self) -> pulumi.Output[int]: + """ + Minimum retention period that the Logically Air Gapped Backup Vault retains recovery points. + """ + return pulumi.get(self, "min_retention_days") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the Logically Air Gapped Backup Vault to create. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Metadata that you can assign to help organize the resources that you create. 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.LogicallyAirGappedVaultTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/backup/outputs.py b/sdk/python/pulumi_aws/backup/outputs.py index 706a90a3a0b..3755f9794cd 100644 --- a/sdk/python/pulumi_aws/backup/outputs.py +++ b/sdk/python/pulumi_aws/backup/outputs.py @@ -19,6 +19,7 @@ 'FrameworkControl', 'FrameworkControlInputParameter', 'FrameworkControlScope', + 'LogicallyAirGappedVaultTimeouts', 'PlanAdvancedBackupSetting', 'PlanRule', 'PlanRuleCopyAction', @@ -195,6 +196,25 @@ def tags(self) -> Optional[Mapping[str, str]]: return pulumi.get(self, "tags") +@pulumi.output_type +class LogicallyAirGappedVaultTimeouts(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 PlanAdvancedBackupSetting(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/bedrock/__init__.py b/sdk/python/pulumi_aws/bedrock/__init__.py index fe6f570716f..2c2b101578e 100644 --- a/sdk/python/pulumi_aws/bedrock/__init__.py +++ b/sdk/python/pulumi_aws/bedrock/__init__.py @@ -16,6 +16,7 @@ from .get_custom_model import * from .get_custom_models import * from .guardrail import * +from .guardrail_version import * from .provisioned_model_throughput import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/bedrock/_inputs.py b/sdk/python/pulumi_aws/bedrock/_inputs.py index 8b8a9e6fa50..2ff944ff7a8 100644 --- a/sdk/python/pulumi_aws/bedrock/_inputs.py +++ b/sdk/python/pulumi_aws/bedrock/_inputs.py @@ -29,6 +29,8 @@ 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionArgsDict', 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgs', 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameterArgsDict', + 'AgentAgentActionGroupTimeoutsArgs', + 'AgentAgentActionGroupTimeoutsArgsDict', 'AgentAgentAliasRoutingConfigurationArgs', 'AgentAgentAliasRoutingConfigurationArgsDict', 'AgentAgentAliasTimeoutsArgs', @@ -65,6 +67,18 @@ 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfigurationArgsDict', 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgs', 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfigurationArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgsDict', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgsDict', 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs', 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgsDict', 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationArgs', @@ -131,6 +145,8 @@ 'GuardrailTopicPolicyConfigArgsDict', 'GuardrailTopicPolicyConfigTopicsConfigArgs', 'GuardrailTopicPolicyConfigTopicsConfigArgsDict', + 'GuardrailVersionTimeoutsArgs', + 'GuardrailVersionTimeoutsArgsDict', 'GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict', 'GuardrailWordPolicyConfigManagedWordListsConfigArgs', @@ -555,6 +571,58 @@ def required(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "required", value) +if not MYPY: + class AgentAgentActionGroupTimeoutsArgsDict(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). + """ + 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: + AgentAgentActionGroupTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentActionGroupTimeoutsArgs: + def __init__(__self__, *, + create: 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] 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 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 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 AgentAgentAliasRoutingConfigurationArgsDict(TypedDict): agent_version: pulumi.Input[str] @@ -1346,6 +1414,10 @@ class AgentDataSourceVectorIngestionConfigurationArgsDict(TypedDict): """ Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunking_configuration` block for details. """ + custom_transformation_configuration: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgsDict']] + """ + Configuration for custom transformation of data source documents. + """ parsing_configuration: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgsDict']] """ Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. @@ -1357,13 +1429,17 @@ class AgentDataSourceVectorIngestionConfigurationArgsDict(TypedDict): class AgentDataSourceVectorIngestionConfigurationArgs: def __init__(__self__, *, chunking_configuration: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs']] = None, + custom_transformation_configuration: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs']] = None, parsing_configuration: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs']] = None): """ :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs'] chunking_configuration: Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunking_configuration` block for details. + :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs'] custom_transformation_configuration: Configuration for custom transformation of data source documents. :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs'] parsing_configuration: Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. """ if chunking_configuration is not None: pulumi.set(__self__, "chunking_configuration", chunking_configuration) + if custom_transformation_configuration is not None: + pulumi.set(__self__, "custom_transformation_configuration", custom_transformation_configuration) if parsing_configuration is not None: pulumi.set(__self__, "parsing_configuration", parsing_configuration) @@ -1379,6 +1455,18 @@ def chunking_configuration(self) -> Optional[pulumi.Input['AgentDataSourceVector def chunking_configuration(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs']]): pulumi.set(self, "chunking_configuration", value) + @property + @pulumi.getter(name="customTransformationConfiguration") + def custom_transformation_configuration(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs']]: + """ + Configuration for custom transformation of data source documents. + """ + return pulumi.get(self, "custom_transformation_configuration") + + @custom_transformation_configuration.setter + def custom_transformation_configuration(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs']]): + pulumi.set(self, "custom_transformation_configuration", value) + @property @pulumi.getter(name="parsingConfiguration") def parsing_configuration(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs']]: @@ -1676,6 +1764,228 @@ def max_token(self, value: pulumi.Input[float]): pulumi.set(self, "max_token", value) +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgsDict(TypedDict): + intermediate_storage: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgsDict']] + """ + The intermediate storage for custom transformation. + """ + transformation: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgsDict']] +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs: + def __init__(__self__, *, + intermediate_storage: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs']] = None, + transformation: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs']] = None): + """ + :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs'] intermediate_storage: The intermediate storage for custom transformation. + """ + if intermediate_storage is not None: + pulumi.set(__self__, "intermediate_storage", intermediate_storage) + if transformation is not None: + pulumi.set(__self__, "transformation", transformation) + + @property + @pulumi.getter(name="intermediateStorage") + def intermediate_storage(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs']]: + """ + The intermediate storage for custom transformation. + """ + return pulumi.get(self, "intermediate_storage") + + @intermediate_storage.setter + def intermediate_storage(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs']]): + pulumi.set(self, "intermediate_storage", value) + + @property + @pulumi.getter + def transformation(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs']]: + return pulumi.get(self, "transformation") + + @transformation.setter + def transformation(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs']]): + pulumi.set(self, "transformation", value) + + +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgsDict(TypedDict): + s3_location: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgsDict']] + """ + Configuration block for intermedia S3 storage. + """ +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs: + def __init__(__self__, *, + s3_location: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs']] = None): + """ + :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs'] s3_location: Configuration block for intermedia S3 storage. + """ + if s3_location is not None: + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs']]: + """ + Configuration block for intermedia S3 storage. + """ + return pulumi.get(self, "s3_location") + + @s3_location.setter + def s3_location(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs']]): + pulumi.set(self, "s3_location", value) + + +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgsDict(TypedDict): + uri: pulumi.Input[str] + """ + S3 URI for intermediate storage. + """ +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs: + def __init__(__self__, *, + uri: pulumi.Input[str]): + """ + :param pulumi.Input[str] uri: S3 URI for intermediate storage. + """ + pulumi.set(__self__, "uri", uri) + + @property + @pulumi.getter + def uri(self) -> pulumi.Input[str]: + """ + S3 URI for intermediate storage. + """ + return pulumi.get(self, "uri") + + @uri.setter + def uri(self, value: pulumi.Input[str]): + pulumi.set(self, "uri", value) + + +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgsDict(TypedDict): + step_to_apply: pulumi.Input[str] + """ + Currently only `POST_CHUNKING` is supported. + """ + transformation_function: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgsDict']] + """ + The configuration of transformation function. + """ +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationArgs: + def __init__(__self__, *, + step_to_apply: pulumi.Input[str], + transformation_function: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs']] = None): + """ + :param pulumi.Input[str] step_to_apply: Currently only `POST_CHUNKING` is supported. + :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs'] transformation_function: The configuration of transformation function. + """ + pulumi.set(__self__, "step_to_apply", step_to_apply) + if transformation_function is not None: + pulumi.set(__self__, "transformation_function", transformation_function) + + @property + @pulumi.getter(name="stepToApply") + def step_to_apply(self) -> pulumi.Input[str]: + """ + Currently only `POST_CHUNKING` is supported. + """ + return pulumi.get(self, "step_to_apply") + + @step_to_apply.setter + def step_to_apply(self, value: pulumi.Input[str]): + pulumi.set(self, "step_to_apply", value) + + @property + @pulumi.getter(name="transformationFunction") + def transformation_function(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs']]: + """ + The configuration of transformation function. + """ + return pulumi.get(self, "transformation_function") + + @transformation_function.setter + def transformation_function(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs']]): + pulumi.set(self, "transformation_function", value) + + +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgsDict(TypedDict): + transformation_lambda_configuration: NotRequired[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgsDict']] + """ + The lambda configuration for custom transformation. + """ +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs: + def __init__(__self__, *, + transformation_lambda_configuration: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs']] = None): + """ + :param pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs'] transformation_lambda_configuration: The lambda configuration for custom transformation. + """ + if transformation_lambda_configuration is not None: + pulumi.set(__self__, "transformation_lambda_configuration", transformation_lambda_configuration) + + @property + @pulumi.getter(name="transformationLambdaConfiguration") + def transformation_lambda_configuration(self) -> Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs']]: + """ + The lambda configuration for custom transformation. + """ + return pulumi.get(self, "transformation_lambda_configuration") + + @transformation_lambda_configuration.setter + def transformation_lambda_configuration(self, value: Optional[pulumi.Input['AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs']]): + pulumi.set(self, "transformation_lambda_configuration", value) + + +if not MYPY: + class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgsDict(TypedDict): + lambda_arn: pulumi.Input[str] + """ + The ARN of the lambda to use for custom transformation. + """ +elif False: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs: + def __init__(__self__, *, + lambda_arn: pulumi.Input[str]): + """ + :param pulumi.Input[str] lambda_arn: The ARN of the lambda to use for custom transformation. + """ + pulumi.set(__self__, "lambda_arn", lambda_arn) + + @property + @pulumi.getter(name="lambdaArn") + def lambda_arn(self) -> pulumi.Input[str]: + """ + The ARN of the lambda to use for custom transformation. + """ + return pulumi.get(self, "lambda_arn") + + @lambda_arn.setter + def lambda_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "lambda_arn", value) + + if not MYPY: class AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgsDict(TypedDict): parsing_strategy: pulumi.Input[str] @@ -3571,6 +3881,58 @@ def examples(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "examples", value) +if not MYPY: + class GuardrailVersionTimeoutsArgsDict(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. + """ +elif False: + GuardrailVersionTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailVersionTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: 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. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @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) + + if not MYPY: class GuardrailWordPolicyConfigArgsDict(TypedDict): managed_word_lists_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgsDict']]]] diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py b/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py index 8f8d10f2879..4e27a7f4db5 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent_action_group.py @@ -30,7 +30,9 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, function_schema: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, - skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None): + prepare_agent: Optional[pulumi.Input[bool]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']] = None): """ The set of arguments for constructing a AgentAgentActionGroup resource. :param pulumi.Input[str] action_group_name: Name of the action group. @@ -46,6 +48,7 @@ def __init__(__self__, *, Each function represents an action in an action group. See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. + :param pulumi.Input[bool] prepare_agent: Whether or not to prepare the agent after creation or modification. Defaults to `true`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ pulumi.set(__self__, "action_group_name", action_group_name) @@ -63,8 +66,12 @@ def __init__(__self__, *, pulumi.set(__self__, "function_schema", function_schema) if parent_action_group_signature is not None: pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) + if prepare_agent is not None: + pulumi.set(__self__, "prepare_agent", prepare_agent) if skip_resource_in_use_check is not None: pulumi.set(__self__, "skip_resource_in_use_check", skip_resource_in_use_check) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) @property @pulumi.getter(name="actionGroupName") @@ -178,6 +185,18 @@ def parent_action_group_signature(self) -> Optional[pulumi.Input[str]]: def parent_action_group_signature(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "parent_action_group_signature", value) + @property + @pulumi.getter(name="prepareAgent") + def prepare_agent(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not to prepare the agent after creation or modification. Defaults to `true`. + """ + return pulumi.get(self, "prepare_agent") + + @prepare_agent.setter + def prepare_agent(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "prepare_agent", value) + @property @pulumi.getter(name="skipResourceInUseCheck") def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: @@ -190,6 +209,15 @@ def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: def skip_resource_in_use_check(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "skip_resource_in_use_check", value) + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + @pulumi.input_type class _AgentAgentActionGroupState: @@ -204,7 +232,9 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, function_schema: Optional[pulumi.Input['AgentAgentActionGroupFunctionSchemaArgs']] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, - skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None): + prepare_agent: Optional[pulumi.Input[bool]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']] = None): """ Input properties used for looking up and filtering AgentAgentActionGroup resources. :param pulumi.Input['AgentAgentActionGroupActionGroupExecutorArgs'] action_group_executor: ARN of the Lambda function containing the business logic that is carried out upon invoking the action or custom control method for handling the information elicited from the user. See `action_group_executor` Block for details. @@ -221,6 +251,7 @@ def __init__(__self__, *, Each function represents an action in an action group. See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. + :param pulumi.Input[bool] prepare_agent: Whether or not to prepare the agent after creation or modification. Defaults to `true`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ if action_group_executor is not None: @@ -243,8 +274,12 @@ def __init__(__self__, *, pulumi.set(__self__, "function_schema", function_schema) if parent_action_group_signature is not None: pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) + if prepare_agent is not None: + pulumi.set(__self__, "prepare_agent", prepare_agent) if skip_resource_in_use_check is not None: pulumi.set(__self__, "skip_resource_in_use_check", skip_resource_in_use_check) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) @property @pulumi.getter(name="actionGroupExecutor") @@ -370,6 +405,18 @@ def parent_action_group_signature(self) -> Optional[pulumi.Input[str]]: def parent_action_group_signature(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "parent_action_group_signature", value) + @property + @pulumi.getter(name="prepareAgent") + def prepare_agent(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not to prepare the agent after creation or modification. Defaults to `true`. + """ + return pulumi.get(self, "prepare_agent") + + @prepare_agent.setter + def prepare_agent(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "prepare_agent", value) + @property @pulumi.getter(name="skipResourceInUseCheck") def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: @@ -382,6 +429,15 @@ def skip_resource_in_use_check(self) -> Optional[pulumi.Input[bool]]: def skip_resource_in_use_check(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "skip_resource_in_use_check", value) + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['AgentAgentActionGroupTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + class AgentAgentActionGroup(pulumi.CustomResource): @overload @@ -397,7 +453,9 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, + prepare_agent: Optional[pulumi.Input[bool]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentActionGroupTimeoutsArgs', 'AgentAgentActionGroupTimeoutsArgsDict']]] = None, __props__=None): """ Resource for managing an AWS Agents for Amazon Bedrock Agent Action Group. @@ -527,6 +585,7 @@ def __init__(__self__, Each function represents an action in an action group. See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. + :param pulumi.Input[bool] prepare_agent: Whether or not to prepare the agent after creation or modification. Defaults to `true`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ ... @@ -672,7 +731,9 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, + prepare_agent: Optional[pulumi.Input[bool]] = None, skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentActionGroupTimeoutsArgs', 'AgentAgentActionGroupTimeoutsArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -697,7 +758,9 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["function_schema"] = function_schema __props__.__dict__["parent_action_group_signature"] = parent_action_group_signature + __props__.__dict__["prepare_agent"] = prepare_agent __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check + __props__.__dict__["timeouts"] = timeouts __props__.__dict__["action_group_id"] = None super(AgentAgentActionGroup, __self__).__init__( 'aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup', @@ -719,7 +782,9 @@ def get(resource_name: str, description: Optional[pulumi.Input[str]] = None, function_schema: Optional[pulumi.Input[Union['AgentAgentActionGroupFunctionSchemaArgs', 'AgentAgentActionGroupFunctionSchemaArgsDict']]] = None, parent_action_group_signature: Optional[pulumi.Input[str]] = None, - skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None) -> 'AgentAgentActionGroup': + prepare_agent: Optional[pulumi.Input[bool]] = None, + skip_resource_in_use_check: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentActionGroupTimeoutsArgs', 'AgentAgentActionGroupTimeoutsArgsDict']]] = None) -> 'AgentAgentActionGroup': """ Get an existing AgentAgentActionGroup resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -741,6 +806,7 @@ def get(resource_name: str, Each function represents an action in an action group. See `function_schema` Block for details. :param pulumi.Input[str] parent_action_group_signature: To allow your agent to request the user for additional information when trying to complete a task, set this argument to `AMAZON.UserInput`. You must leave the `description`, `api_schema`, and `action_group_executor` arguments blank for this action group. Valid values: `AMAZON.UserInput`. + :param pulumi.Input[bool] prepare_agent: Whether or not to prepare the agent after creation or modification. Defaults to `true`. :param pulumi.Input[bool] skip_resource_in_use_check: Whether the in-use check is skipped when deleting the action group. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -757,7 +823,9 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["function_schema"] = function_schema __props__.__dict__["parent_action_group_signature"] = parent_action_group_signature + __props__.__dict__["prepare_agent"] = prepare_agent __props__.__dict__["skip_resource_in_use_check"] = skip_resource_in_use_check + __props__.__dict__["timeouts"] = timeouts return AgentAgentActionGroup(resource_name, opts=opts, __props__=__props__) @property @@ -844,6 +912,14 @@ def parent_action_group_signature(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "parent_action_group_signature") + @property + @pulumi.getter(name="prepareAgent") + def prepare_agent(self) -> pulumi.Output[bool]: + """ + Whether or not to prepare the agent after creation or modification. Defaults to `true`. + """ + return pulumi.get(self, "prepare_agent") + @property @pulumi.getter(name="skipResourceInUseCheck") def skip_resource_in_use_check(self) -> pulumi.Output[bool]: @@ -852,3 +928,8 @@ def skip_resource_in_use_check(self) -> pulumi.Output[bool]: """ return pulumi.get(self, "skip_resource_in_use_check") + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.AgentAgentActionGroupTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/bedrock/guardrail_version.py b/sdk/python/pulumi_aws/bedrock/guardrail_version.py new file mode 100644 index 00000000000..77794a0debe --- /dev/null +++ b/sdk/python/pulumi_aws/bedrock/guardrail_version.py @@ -0,0 +1,367 @@ +# 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__ = ['GuardrailVersionArgs', 'GuardrailVersion'] + +@pulumi.input_type +class GuardrailVersionArgs: + def __init__(__self__, *, + guardrail_arn: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']] = None): + """ + The set of arguments for constructing a GuardrailVersion resource. + :param pulumi.Input[str] guardrail_arn: Guardrail ARN. + + The following arguments are optional: + :param pulumi.Input[str] description: Description of the Guardrail version. + :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Guardrail. Default is `false` + """ + pulumi.set(__self__, "guardrail_arn", guardrail_arn) + if description is not None: + pulumi.set(__self__, "description", description) + if skip_destroy is not None: + pulumi.set(__self__, "skip_destroy", skip_destroy) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="guardrailArn") + def guardrail_arn(self) -> pulumi.Input[str]: + """ + Guardrail ARN. + + The following arguments are optional: + """ + return pulumi.get(self, "guardrail_arn") + + @guardrail_arn.setter + def guardrail_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "guardrail_arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the Guardrail version. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="skipDestroy") + def skip_destroy(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to retain the old version of a previously deployed Guardrail. Default is `false` + """ + return pulumi.get(self, "skip_destroy") + + @skip_destroy.setter + def skip_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_destroy", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _GuardrailVersionState: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + guardrail_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']] = None, + version: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering GuardrailVersion resources. + :param pulumi.Input[str] description: Description of the Guardrail version. + :param pulumi.Input[str] guardrail_arn: Guardrail ARN. + + The following arguments are optional: + :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Guardrail. Default is `false` + :param pulumi.Input[str] version: Guardrail version. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if guardrail_arn is not None: + pulumi.set(__self__, "guardrail_arn", guardrail_arn) + if skip_destroy is not None: + pulumi.set(__self__, "skip_destroy", skip_destroy) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the Guardrail version. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="guardrailArn") + def guardrail_arn(self) -> Optional[pulumi.Input[str]]: + """ + Guardrail ARN. + + The following arguments are optional: + """ + return pulumi.get(self, "guardrail_arn") + + @guardrail_arn.setter + def guardrail_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "guardrail_arn", value) + + @property + @pulumi.getter(name="skipDestroy") + def skip_destroy(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to retain the old version of a previously deployed Guardrail. Default is `false` + """ + return pulumi.get(self, "skip_destroy") + + @skip_destroy.setter + def skip_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_destroy", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GuardrailVersionTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + Guardrail version. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + +class GuardrailVersion(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + guardrail_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailVersionTimeoutsArgs', 'GuardrailVersionTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS Bedrock Guardrail Version. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.GuardrailVersion("example", + description="example", + guardrail_arn=test["guardrailArn"], + skip_destroy=True) + ``` + + ## Import + + Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: + + ```sh + $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of the Guardrail version. + :param pulumi.Input[str] guardrail_arn: Guardrail ARN. + + The following arguments are optional: + :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Guardrail. Default is `false` + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GuardrailVersionArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Bedrock Guardrail Version. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.GuardrailVersion("example", + description="example", + guardrail_arn=test["guardrailArn"], + skip_destroy=True) + ``` + + ## Import + + Using `pulumi import`, import Amazon Bedrock Guardrail Version using using a comma-delimited string of `guardrail_arn` and `version`. For example: + + ```sh + $ pulumi import aws:bedrock/guardrailVersion:GuardrailVersion example arn:aws:bedrock:us-west-2:123456789012:guardrail-id-12345678,1 + ``` + + :param str resource_name: The name of the resource. + :param GuardrailVersionArgs 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(GuardrailVersionArgs, 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, + guardrail_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailVersionTimeoutsArgs', 'GuardrailVersionTimeoutsArgsDict']]] = 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__ = GuardrailVersionArgs.__new__(GuardrailVersionArgs) + + __props__.__dict__["description"] = description + if guardrail_arn is None and not opts.urn: + raise TypeError("Missing required property 'guardrail_arn'") + __props__.__dict__["guardrail_arn"] = guardrail_arn + __props__.__dict__["skip_destroy"] = skip_destroy + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["version"] = None + super(GuardrailVersion, __self__).__init__( + 'aws:bedrock/guardrailVersion:GuardrailVersion', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + guardrail_arn: Optional[pulumi.Input[str]] = None, + skip_destroy: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailVersionTimeoutsArgs', 'GuardrailVersionTimeoutsArgsDict']]] = None, + version: Optional[pulumi.Input[str]] = None) -> 'GuardrailVersion': + """ + Get an existing GuardrailVersion 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] description: Description of the Guardrail version. + :param pulumi.Input[str] guardrail_arn: Guardrail ARN. + + The following arguments are optional: + :param pulumi.Input[bool] skip_destroy: Whether to retain the old version of a previously deployed Guardrail. Default is `false` + :param pulumi.Input[str] version: Guardrail version. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GuardrailVersionState.__new__(_GuardrailVersionState) + + __props__.__dict__["description"] = description + __props__.__dict__["guardrail_arn"] = guardrail_arn + __props__.__dict__["skip_destroy"] = skip_destroy + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["version"] = version + return GuardrailVersion(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the Guardrail version. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="guardrailArn") + def guardrail_arn(self) -> pulumi.Output[str]: + """ + Guardrail ARN. + + The following arguments are optional: + """ + return pulumi.get(self, "guardrail_arn") + + @property + @pulumi.getter(name="skipDestroy") + def skip_destroy(self) -> pulumi.Output[Optional[bool]]: + """ + Whether to retain the old version of a previously deployed Guardrail. Default is `false` + """ + return pulumi.get(self, "skip_destroy") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.GuardrailVersionTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter + def version(self) -> pulumi.Output[str]: + """ + Guardrail version. + """ + return pulumi.get(self, "version") + diff --git a/sdk/python/pulumi_aws/bedrock/outputs.py b/sdk/python/pulumi_aws/bedrock/outputs.py index ede605858c0..9b1244b8688 100644 --- a/sdk/python/pulumi_aws/bedrock/outputs.py +++ b/sdk/python/pulumi_aws/bedrock/outputs.py @@ -23,6 +23,7 @@ 'AgentAgentActionGroupFunctionSchemaMemberFunctions', 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunction', 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter', + 'AgentAgentActionGroupTimeouts', 'AgentAgentAliasRoutingConfiguration', 'AgentAgentAliasTimeouts', 'AgentAgentGuardrailConfiguration', @@ -41,6 +42,12 @@ 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfiguration', 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationHierarchicalChunkingConfigurationLevelConfiguration', 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationSemanticChunkingConfiguration', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction', + 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration', 'AgentDataSourceVectorIngestionConfigurationParsingConfiguration', 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfiguration', 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationParsingPrompt', @@ -74,6 +81,7 @@ 'GuardrailTimeouts', 'GuardrailTopicPolicyConfig', 'GuardrailTopicPolicyConfigTopicsConfig', + 'GuardrailVersionTimeouts', 'GuardrailWordPolicyConfig', 'GuardrailWordPolicyConfigManagedWordListsConfig', 'GuardrailWordPolicyConfigWordsConfig', @@ -405,6 +413,37 @@ def required(self) -> Optional[bool]: return pulumi.get(self, "required") +@pulumi.output_type +class AgentAgentActionGroupTimeouts(dict): + def __init__(__self__, *, + create: 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 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 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 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 AgentAgentAliasRoutingConfiguration(dict): @staticmethod @@ -1035,6 +1074,8 @@ def __key_warning(key: str): suggest = None if key == "chunkingConfiguration": suggest = "chunking_configuration" + elif key == "customTransformationConfiguration": + suggest = "custom_transformation_configuration" elif key == "parsingConfiguration": suggest = "parsing_configuration" @@ -1051,13 +1092,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, chunking_configuration: Optional['outputs.AgentDataSourceVectorIngestionConfigurationChunkingConfiguration'] = None, + custom_transformation_configuration: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration'] = None, parsing_configuration: Optional['outputs.AgentDataSourceVectorIngestionConfigurationParsingConfiguration'] = None): """ :param 'AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs' chunking_configuration: Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. See `chunking_configuration` block for details. + :param 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationArgs' custom_transformation_configuration: Configuration for custom transformation of data source documents. :param 'AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs' parsing_configuration: Configuration for custom parsing of data source documents. See `parsing_configuration` block for details. """ if chunking_configuration is not None: pulumi.set(__self__, "chunking_configuration", chunking_configuration) + if custom_transformation_configuration is not None: + pulumi.set(__self__, "custom_transformation_configuration", custom_transformation_configuration) if parsing_configuration is not None: pulumi.set(__self__, "parsing_configuration", parsing_configuration) @@ -1069,6 +1114,14 @@ def chunking_configuration(self) -> Optional['outputs.AgentDataSourceVectorInges """ return pulumi.get(self, "chunking_configuration") + @property + @pulumi.getter(name="customTransformationConfiguration") + def custom_transformation_configuration(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration']: + """ + Configuration for custom transformation of data source documents. + """ + return pulumi.get(self, "custom_transformation_configuration") + @property @pulumi.getter(name="parsingConfiguration") def parsing_configuration(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationParsingConfiguration']: @@ -1343,6 +1396,224 @@ def max_token(self) -> float: return pulumi.get(self, "max_token") +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "intermediateStorage": + suggest = "intermediate_storage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + intermediate_storage: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage'] = None, + transformation: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation'] = None): + """ + :param 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageArgs' intermediate_storage: The intermediate storage for custom transformation. + """ + if intermediate_storage is not None: + pulumi.set(__self__, "intermediate_storage", intermediate_storage) + if transformation is not None: + pulumi.set(__self__, "transformation", transformation) + + @property + @pulumi.getter(name="intermediateStorage") + def intermediate_storage(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage']: + """ + The intermediate storage for custom transformation. + """ + return pulumi.get(self, "intermediate_storage") + + @property + @pulumi.getter + def transformation(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation']: + return pulumi.get(self, "transformation") + + +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3Location": + suggest = "s3_location" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorage.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + s3_location: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location'] = None): + """ + :param 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3LocationArgs' s3_location: Configuration block for intermedia S3 storage. + """ + if s3_location is not None: + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location']: + """ + Configuration block for intermedia S3 storage. + """ + return pulumi.get(self, "s3_location") + + +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationIntermediateStorageS3Location(dict): + def __init__(__self__, *, + uri: str): + """ + :param str uri: S3 URI for intermediate storage. + """ + pulumi.set(__self__, "uri", uri) + + @property + @pulumi.getter + def uri(self) -> str: + """ + S3 URI for intermediate storage. + """ + return pulumi.get(self, "uri") + + +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "stepToApply": + suggest = "step_to_apply" + elif key == "transformationFunction": + suggest = "transformation_function" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformation.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + step_to_apply: str, + transformation_function: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction'] = None): + """ + :param str step_to_apply: Currently only `POST_CHUNKING` is supported. + :param 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionArgs' transformation_function: The configuration of transformation function. + """ + pulumi.set(__self__, "step_to_apply", step_to_apply) + if transformation_function is not None: + pulumi.set(__self__, "transformation_function", transformation_function) + + @property + @pulumi.getter(name="stepToApply") + def step_to_apply(self) -> str: + """ + Currently only `POST_CHUNKING` is supported. + """ + return pulumi.get(self, "step_to_apply") + + @property + @pulumi.getter(name="transformationFunction") + def transformation_function(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction']: + """ + The configuration of transformation function. + """ + return pulumi.get(self, "transformation_function") + + +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "transformationLambdaConfiguration": + suggest = "transformation_lambda_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunction.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + transformation_lambda_configuration: Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration'] = None): + """ + :param 'AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfigurationArgs' transformation_lambda_configuration: The lambda configuration for custom transformation. + """ + if transformation_lambda_configuration is not None: + pulumi.set(__self__, "transformation_lambda_configuration", transformation_lambda_configuration) + + @property + @pulumi.getter(name="transformationLambdaConfiguration") + def transformation_lambda_configuration(self) -> Optional['outputs.AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration']: + """ + The lambda configuration for custom transformation. + """ + return pulumi.get(self, "transformation_lambda_configuration") + + +@pulumi.output_type +class AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lambdaArn": + suggest = "lambda_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentDataSourceVectorIngestionConfigurationCustomTransformationConfigurationTransformationTransformationFunctionTransformationLambdaConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + lambda_arn: str): + """ + :param str lambda_arn: The ARN of the lambda to use for custom transformation. + """ + pulumi.set(__self__, "lambda_arn", lambda_arn) + + @property + @pulumi.getter(name="lambdaArn") + def lambda_arn(self) -> str: + """ + The ARN of the lambda to use for custom transformation. + """ + return pulumi.get(self, "lambda_arn") + + @pulumi.output_type class AgentDataSourceVectorIngestionConfigurationParsingConfiguration(dict): @staticmethod @@ -2934,6 +3205,37 @@ def examples(self) -> Optional[Sequence[str]]: return pulumi.get(self, "examples") +@pulumi.output_type +class GuardrailVersionTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: 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. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @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") + + @pulumi.output_type class GuardrailWordPolicyConfig(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/datazone/form_type.py b/sdk/python/pulumi_aws/datazone/form_type.py index 6f9b641417f..f4b0fec7e50 100644 --- a/sdk/python/pulumi_aws/datazone/form_type.py +++ b/sdk/python/pulumi_aws/datazone/form_type.py @@ -358,7 +358,7 @@ def __init__(__self__, import pulumi_aws as aws domain_execution_role = aws.iam.Role("domain_execution_role", - name="example name", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [ @@ -385,7 +385,7 @@ def __init__(__self__, ], }), inline_policies=[{ - "name": "example name", + "name": "example-policy", "policy": json.dumps({ "version": "2012-10-17", "statement": [{ @@ -401,9 +401,9 @@ def __init__(__self__, }), }]) test = aws.datazone.Domain("test", - name="example name", + name="example", domain_execution_role=domain_execution_role.arn) - test_security_group = aws.ec2.SecurityGroup("test", name="example name") + test_security_group = aws.ec2.SecurityGroup("test", name="example") test_project = aws.datazone.Project("test", domain_identifier=test.id, glossary_terms=["2N8w6XJCwZf"], @@ -467,7 +467,7 @@ def __init__(__self__, import pulumi_aws as aws domain_execution_role = aws.iam.Role("domain_execution_role", - name="example name", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [ @@ -494,7 +494,7 @@ def __init__(__self__, ], }), inline_policies=[{ - "name": "example name", + "name": "example-policy", "policy": json.dumps({ "version": "2012-10-17", "statement": [{ @@ -510,9 +510,9 @@ def __init__(__self__, }), }]) test = aws.datazone.Domain("test", - name="example name", + name="example", domain_execution_role=domain_execution_role.arn) - test_security_group = aws.ec2.SecurityGroup("test", name="example name") + test_security_group = aws.ec2.SecurityGroup("test", name="example") test_project = aws.datazone.Project("test", domain_identifier=test.id, glossary_terms=["2N8w6XJCwZf"], diff --git a/sdk/python/pulumi_aws/ebs/get_snapshot.py b/sdk/python/pulumi_aws/ebs/get_snapshot.py index 51de3fb56e8..b3142aee33d 100644 --- a/sdk/python/pulumi_aws/ebs/get_snapshot.py +++ b/sdk/python/pulumi_aws/ebs/get_snapshot.py @@ -28,7 +28,7 @@ class GetSnapshotResult: """ A collection of values returned by getSnapshot. """ - def __init__(__self__, arn=None, data_encryption_key_id=None, description=None, encrypted=None, filters=None, id=None, kms_key_id=None, most_recent=None, outpost_arn=None, owner_alias=None, owner_id=None, owners=None, restorable_by_user_ids=None, snapshot_id=None, snapshot_ids=None, state=None, storage_tier=None, tags=None, volume_id=None, volume_size=None): + def __init__(__self__, arn=None, data_encryption_key_id=None, description=None, encrypted=None, filters=None, id=None, kms_key_id=None, most_recent=None, outpost_arn=None, owner_alias=None, owner_id=None, owners=None, restorable_by_user_ids=None, snapshot_id=None, snapshot_ids=None, start_time=None, state=None, storage_tier=None, tags=None, volume_id=None, volume_size=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -74,6 +74,9 @@ def __init__(__self__, arn=None, data_encryption_key_id=None, description=None, if snapshot_ids and not isinstance(snapshot_ids, list): raise TypeError("Expected argument 'snapshot_ids' to be a list") pulumi.set(__self__, "snapshot_ids", snapshot_ids) + if start_time and not isinstance(start_time, str): + raise TypeError("Expected argument 'start_time' to be a str") + pulumi.set(__self__, "start_time", start_time) if state and not isinstance(state, str): raise TypeError("Expected argument 'state' to be a str") pulumi.set(__self__, "state", state) @@ -195,6 +198,14 @@ def snapshot_id(self) -> str: def snapshot_ids(self) -> Optional[Sequence[str]]: return pulumi.get(self, "snapshot_ids") + @property + @pulumi.getter(name="startTime") + def start_time(self) -> str: + """ + Time stamp when the snapshot was initiated. + """ + return pulumi.get(self, "start_time") + @property @pulumi.getter def state(self) -> str: @@ -257,6 +268,7 @@ def __await__(self): restorable_by_user_ids=self.restorable_by_user_ids, snapshot_id=self.snapshot_id, snapshot_ids=self.snapshot_ids, + start_time=self.start_time, state=self.state, storage_tier=self.storage_tier, tags=self.tags, @@ -330,6 +342,7 @@ def get_snapshot(filters: Optional[Sequence[Union['GetSnapshotFilterArgs', 'GetS restorable_by_user_ids=pulumi.get(__ret__, 'restorable_by_user_ids'), snapshot_id=pulumi.get(__ret__, 'snapshot_id'), snapshot_ids=pulumi.get(__ret__, 'snapshot_ids'), + start_time=pulumi.get(__ret__, 'start_time'), state=pulumi.get(__ret__, 'state'), storage_tier=pulumi.get(__ret__, 'storage_tier'), tags=pulumi.get(__ret__, 'tags'), diff --git a/sdk/python/pulumi_aws/ec2transitgateway/__init__.py b/sdk/python/pulumi_aws/ec2transitgateway/__init__.py index 2ef7325bdbe..5460b74c2be 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/__init__.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/__init__.py @@ -7,6 +7,8 @@ # Export this package's modules as members: from .connect import * from .connect_peer import * +from .default_route_table_association import * +from .default_route_table_propagation import * from .get_attachment import * from .get_attachments import * from .get_connect import * diff --git a/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py b/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py index 610c953fcf5..7b1d45b9111 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/_inputs.py @@ -15,6 +15,10 @@ from .. import _utilities __all__ = [ + 'DefaultRouteTableAssociationTimeoutsArgs', + 'DefaultRouteTableAssociationTimeoutsArgsDict', + 'DefaultRouteTablePropagationTimeoutsArgs', + 'DefaultRouteTablePropagationTimeoutsArgsDict', 'InstanceConnectEndpointTimeoutsArgs', 'InstanceConnectEndpointTimeoutsArgsDict', 'PeeringAttachmentOptionsArgs', @@ -55,6 +59,150 @@ MYPY = False +if not MYPY: + class DefaultRouteTableAssociationTimeoutsArgsDict(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: + DefaultRouteTableAssociationTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DefaultRouteTableAssociationTimeoutsArgs: + 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 DefaultRouteTablePropagationTimeoutsArgsDict(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: + DefaultRouteTablePropagationTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DefaultRouteTablePropagationTimeoutsArgs: + 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 InstanceConnectEndpointTimeoutsArgsDict(TypedDict): create: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_association.py b/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_association.py new file mode 100644 index 00000000000..d400d5bef5b --- /dev/null +++ b/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_association.py @@ -0,0 +1,281 @@ +# 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__ = ['DefaultRouteTableAssociationArgs', 'DefaultRouteTableAssociation'] + +@pulumi.input_type +class DefaultRouteTableAssociationArgs: + def __init__(__self__, *, + transit_gateway_id: pulumi.Input[str], + transit_gateway_route_table_id: pulumi.Input[str], + timeouts: Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']] = None): + """ + The set of arguments for constructing a DefaultRouteTableAssociation resource. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> pulumi.Input[str]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @transit_gateway_id.setter + def transit_gateway_id(self, value: pulumi.Input[str]): + pulumi.set(self, "transit_gateway_id", value) + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> pulumi.Input[str]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + + @transit_gateway_route_table_id.setter + def transit_gateway_route_table_id(self, value: pulumi.Input[str]): + pulumi.set(self, "transit_gateway_route_table_id", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _DefaultRouteTableAssociationState: + def __init__(__self__, *, + original_default_route_table_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering DefaultRouteTableAssociation resources. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + if original_default_route_table_id is not None: + pulumi.set(__self__, "original_default_route_table_id", original_default_route_table_id) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if transit_gateway_id is not None: + pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + if transit_gateway_route_table_id is not None: + pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + + @property + @pulumi.getter(name="originalDefaultRouteTableId") + def original_default_route_table_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "original_default_route_table_id") + + @original_default_route_table_id.setter + def original_default_route_table_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "original_default_route_table_id", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DefaultRouteTableAssociationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @transit_gateway_id.setter + def transit_gateway_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transit_gateway_id", value) + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + + @transit_gateway_route_table_id.setter + def transit_gateway_route_table_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transit_gateway_route_table_id", value) + + +class DefaultRouteTableAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTableAssociationTimeoutsArgs', 'DefaultRouteTableAssociationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2transitgateway.DefaultRouteTableAssociation("example", + transit_gateway_id=example_aws_ec2_transit_gateway["id"], + transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table["id"]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DefaultRouteTableAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Association. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2transitgateway.DefaultRouteTableAssociation("example", + transit_gateway_id=example_aws_ec2_transit_gateway["id"], + transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table["id"]) + ``` + + :param str resource_name: The name of the resource. + :param DefaultRouteTableAssociationArgs 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(DefaultRouteTableAssociationArgs, 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, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTableAssociationTimeoutsArgs', 'DefaultRouteTableAssociationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: 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__ = DefaultRouteTableAssociationArgs.__new__(DefaultRouteTableAssociationArgs) + + __props__.__dict__["timeouts"] = timeouts + if transit_gateway_id is None and not opts.urn: + raise TypeError("Missing required property 'transit_gateway_id'") + __props__.__dict__["transit_gateway_id"] = transit_gateway_id + if transit_gateway_route_table_id is None and not opts.urn: + raise TypeError("Missing required property 'transit_gateway_route_table_id'") + __props__.__dict__["transit_gateway_route_table_id"] = transit_gateway_route_table_id + __props__.__dict__["original_default_route_table_id"] = None + super(DefaultRouteTableAssociation, __self__).__init__( + 'aws:ec2transitgateway/defaultRouteTableAssociation:DefaultRouteTableAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + original_default_route_table_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTableAssociationTimeoutsArgs', 'DefaultRouteTableAssociationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None) -> 'DefaultRouteTableAssociation': + """ + Get an existing DefaultRouteTableAssociation 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] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DefaultRouteTableAssociationState.__new__(_DefaultRouteTableAssociationState) + + __props__.__dict__["original_default_route_table_id"] = original_default_route_table_id + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["transit_gateway_id"] = transit_gateway_id + __props__.__dict__["transit_gateway_route_table_id"] = transit_gateway_route_table_id + return DefaultRouteTableAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="originalDefaultRouteTableId") + def original_default_route_table_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "original_default_route_table_id") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.DefaultRouteTableAssociationTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> pulumi.Output[str]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> pulumi.Output[str]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + diff --git a/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_propagation.py b/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_propagation.py new file mode 100644 index 00000000000..6a054a6ca6f --- /dev/null +++ b/sdk/python/pulumi_aws/ec2transitgateway/default_route_table_propagation.py @@ -0,0 +1,281 @@ +# 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__ = ['DefaultRouteTablePropagationArgs', 'DefaultRouteTablePropagation'] + +@pulumi.input_type +class DefaultRouteTablePropagationArgs: + def __init__(__self__, *, + transit_gateway_id: pulumi.Input[str], + transit_gateway_route_table_id: pulumi.Input[str], + timeouts: Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']] = None): + """ + The set of arguments for constructing a DefaultRouteTablePropagation resource. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> pulumi.Input[str]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @transit_gateway_id.setter + def transit_gateway_id(self, value: pulumi.Input[str]): + pulumi.set(self, "transit_gateway_id", value) + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> pulumi.Input[str]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + + @transit_gateway_route_table_id.setter + def transit_gateway_route_table_id(self, value: pulumi.Input[str]): + pulumi.set(self, "transit_gateway_route_table_id", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _DefaultRouteTablePropagationState: + def __init__(__self__, *, + original_default_route_table_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering DefaultRouteTablePropagation resources. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + if original_default_route_table_id is not None: + pulumi.set(__self__, "original_default_route_table_id", original_default_route_table_id) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if transit_gateway_id is not None: + pulumi.set(__self__, "transit_gateway_id", transit_gateway_id) + if transit_gateway_route_table_id is not None: + pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) + + @property + @pulumi.getter(name="originalDefaultRouteTableId") + def original_default_route_table_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "original_default_route_table_id") + + @original_default_route_table_id.setter + def original_default_route_table_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "original_default_route_table_id", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DefaultRouteTablePropagationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @transit_gateway_id.setter + def transit_gateway_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transit_gateway_id", value) + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + + @transit_gateway_route_table_id.setter + def transit_gateway_route_table_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transit_gateway_route_table_id", value) + + +class DefaultRouteTablePropagation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTablePropagationTimeoutsArgs', 'DefaultRouteTablePropagationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2transitgateway.DefaultRouteTablePropagation("example", + transit_gateway_id=example_aws_ec2_transit_gateway["id"], + transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table["id"]) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DefaultRouteTablePropagationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS EC2 (Elastic Compute Cloud) Transit Gateway Default Route Table Propagation. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2transitgateway.DefaultRouteTablePropagation("example", + transit_gateway_id=example_aws_ec2_transit_gateway["id"], + transit_gateway_route_table_id=example_aws_ec2_transit_gateway_route_table["id"]) + ``` + + :param str resource_name: The name of the resource. + :param DefaultRouteTablePropagationArgs 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(DefaultRouteTablePropagationArgs, 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, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTablePropagationTimeoutsArgs', 'DefaultRouteTablePropagationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: 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__ = DefaultRouteTablePropagationArgs.__new__(DefaultRouteTablePropagationArgs) + + __props__.__dict__["timeouts"] = timeouts + if transit_gateway_id is None and not opts.urn: + raise TypeError("Missing required property 'transit_gateway_id'") + __props__.__dict__["transit_gateway_id"] = transit_gateway_id + if transit_gateway_route_table_id is None and not opts.urn: + raise TypeError("Missing required property 'transit_gateway_route_table_id'") + __props__.__dict__["transit_gateway_route_table_id"] = transit_gateway_route_table_id + __props__.__dict__["original_default_route_table_id"] = None + super(DefaultRouteTablePropagation, __self__).__init__( + 'aws:ec2transitgateway/defaultRouteTablePropagation:DefaultRouteTablePropagation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + original_default_route_table_id: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['DefaultRouteTablePropagationTimeoutsArgs', 'DefaultRouteTablePropagationTimeoutsArgsDict']]] = None, + transit_gateway_id: Optional[pulumi.Input[str]] = None, + transit_gateway_route_table_id: Optional[pulumi.Input[str]] = None) -> 'DefaultRouteTablePropagation': + """ + Get an existing DefaultRouteTablePropagation 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] transit_gateway_id: ID of the Transit Gateway to change the default association route table on. + :param pulumi.Input[str] transit_gateway_route_table_id: ID of the Transit Gateway Route Table to be made the default association route table. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DefaultRouteTablePropagationState.__new__(_DefaultRouteTablePropagationState) + + __props__.__dict__["original_default_route_table_id"] = original_default_route_table_id + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["transit_gateway_id"] = transit_gateway_id + __props__.__dict__["transit_gateway_route_table_id"] = transit_gateway_route_table_id + return DefaultRouteTablePropagation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="originalDefaultRouteTableId") + def original_default_route_table_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "original_default_route_table_id") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.DefaultRouteTablePropagationTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="transitGatewayId") + def transit_gateway_id(self) -> pulumi.Output[str]: + """ + ID of the Transit Gateway to change the default association route table on. + """ + return pulumi.get(self, "transit_gateway_id") + + @property + @pulumi.getter(name="transitGatewayRouteTableId") + def transit_gateway_route_table_id(self) -> pulumi.Output[str]: + """ + ID of the Transit Gateway Route Table to be made the default association route table. + """ + return pulumi.get(self, "transit_gateway_route_table_id") + diff --git a/sdk/python/pulumi_aws/ec2transitgateway/outputs.py b/sdk/python/pulumi_aws/ec2transitgateway/outputs.py index 53c3d8da926..aca5ffc54c1 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/outputs.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/outputs.py @@ -15,6 +15,8 @@ from .. import _utilities __all__ = [ + 'DefaultRouteTableAssociationTimeouts', + 'DefaultRouteTablePropagationTimeouts', 'InstanceConnectEndpointTimeouts', 'PeeringAttachmentOptions', 'GetAttachmentFilterResult', @@ -39,6 +41,92 @@ 'GetVpnAttachmentFilterResult', ] +@pulumi.output_type +class DefaultRouteTableAssociationTimeouts(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 DefaultRouteTablePropagationTimeouts(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 InstanceConnectEndpointTimeouts(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py index bbdd189663e..6073d04e075 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/vpc_attachment.py @@ -37,7 +37,7 @@ def __init__(__self__, *, :param pulumi.Input[str] appliance_mode_support: Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`. :param pulumi.Input[str] dns_support: Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. :param pulumi.Input[str] ipv6_support: Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. - :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway VPC 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[bool] transit_gateway_default_route_table_association: Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. :param pulumi.Input[bool] transit_gateway_default_route_table_propagation: Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. @@ -136,7 +136,7 @@ def ipv6_support(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="securityGroupReferencingSupport") def security_group_referencing_support(self) -> Optional[pulumi.Input[str]]: """ - Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. """ return pulumi.get(self, "security_group_referencing_support") @@ -201,7 +201,7 @@ def __init__(__self__, *, :param pulumi.Input[str] appliance_mode_support: Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`. :param pulumi.Input[str] dns_support: Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. :param pulumi.Input[str] ipv6_support: Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. - :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: Identifiers of EC2 Subnets. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway VPC 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. @@ -279,7 +279,7 @@ def ipv6_support(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="securityGroupReferencingSupport") def security_group_referencing_support(self) -> Optional[pulumi.Input[str]]: """ - Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. """ return pulumi.get(self, "security_group_referencing_support") @@ -429,7 +429,7 @@ def __init__(__self__, :param pulumi.Input[str] appliance_mode_support: Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`. :param pulumi.Input[str] dns_support: Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. :param pulumi.Input[str] ipv6_support: Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. - :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: Identifiers of EC2 Subnets. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway VPC 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[bool] transit_gateway_default_route_table_association: Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`. @@ -550,7 +550,7 @@ def get(resource_name: str, :param pulumi.Input[str] appliance_mode_support: Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`. :param pulumi.Input[str] dns_support: Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`. :param pulumi.Input[str] ipv6_support: Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. - :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + :param pulumi.Input[str] security_group_referencing_support: Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: Identifiers of EC2 Subnets. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the EC2 Transit Gateway VPC 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. @@ -604,9 +604,9 @@ def ipv6_support(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="securityGroupReferencingSupport") - def security_group_referencing_support(self) -> pulumi.Output[Optional[str]]: + def security_group_referencing_support(self) -> pulumi.Output[str]: """ - Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. Default value: `disable`. + Whether Security Group Referencing Support is enabled. Valid values: `disable`, `enable`. """ return pulumi.get(self, "security_group_referencing_support") diff --git a/sdk/python/pulumi_aws/elasticache/reserved_cache_node.py b/sdk/python/pulumi_aws/elasticache/reserved_cache_node.py index 6cc9f1d639c..727ba1f3dc7 100644 --- a/sdk/python/pulumi_aws/elasticache/reserved_cache_node.py +++ b/sdk/python/pulumi_aws/elasticache/reserved_cache_node.py @@ -31,6 +31,8 @@ def __init__(__self__, *, To determine an `reserved_cache_nodes_offering_id`, see the `elasticache_get_reserved_cache_node_offering` data source. The following arguments are optional: + :param pulumi.Input[float] cache_node_count: Number of cache node instances to reserve. + Default value is `1`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the reservation. 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__, "reserved_cache_nodes_offering_id", reserved_cache_nodes_offering_id) @@ -59,6 +61,10 @@ def reserved_cache_nodes_offering_id(self, value: pulumi.Input[str]): @property @pulumi.getter(name="cacheNodeCount") def cache_node_count(self) -> Optional[pulumi.Input[float]]: + """ + Number of cache node instances to reserve. + Default value is `1`. + """ return pulumi.get(self, "cache_node_count") @cache_node_count.setter @@ -108,6 +114,8 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering ReservedCacheNode resources. :param pulumi.Input[str] arn: ARN for the reserved cache node. + :param pulumi.Input[float] cache_node_count: Number of cache node instances to reserve. + Default value is `1`. :param pulumi.Input[str] cache_node_type: Node type for the reserved cache nodes. :param pulumi.Input[str] duration: Duration of the reservation as an RFC3339 duration. :param pulumi.Input[float] fixed_price: Fixed price charged for this reserved cache node. @@ -173,6 +181,10 @@ def arn(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="cacheNodeCount") def cache_node_count(self) -> Optional[pulumi.Input[float]]: + """ + Number of cache node instances to reserve. + Default value is `1`. + """ return pulumi.get(self, "cache_node_count") @cache_node_count.setter @@ -364,6 +376,8 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[float] cache_node_count: Number of cache node instances to reserve. + Default value is `1`. :param pulumi.Input[str] reserved_cache_nodes_offering_id: ID of the reserved cache node offering to purchase. To determine an `reserved_cache_nodes_offering_id`, see the `elasticache_get_reserved_cache_node_offering` data source. @@ -469,6 +483,8 @@ 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 the reserved cache node. + :param pulumi.Input[float] cache_node_count: Number of cache node instances to reserve. + Default value is `1`. :param pulumi.Input[str] cache_node_type: Node type for the reserved cache nodes. :param pulumi.Input[str] duration: Duration of the reservation as an RFC3339 duration. :param pulumi.Input[float] fixed_price: Fixed price charged for this reserved cache node. @@ -517,6 +533,10 @@ def arn(self) -> pulumi.Output[str]: @property @pulumi.getter(name="cacheNodeCount") def cache_node_count(self) -> pulumi.Output[float]: + """ + Number of cache node instances to reserve. + Default value is `1`. + """ return pulumi.get(self, "cache_node_count") @property diff --git a/sdk/python/pulumi_aws/globalaccelerator/_inputs.py b/sdk/python/pulumi_aws/globalaccelerator/_inputs.py index 419d409d903..77cb72963f1 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/_inputs.py +++ b/sdk/python/pulumi_aws/globalaccelerator/_inputs.py @@ -516,6 +516,10 @@ def to_port(self, value: Optional[pulumi.Input[int]]): if not MYPY: class EndpointGroupEndpointConfigurationArgsDict(TypedDict): + attachment_arn: NotRequired[pulumi.Input[str]] + """ + An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + """ client_ip_preservation_enabled: NotRequired[pulumi.Input[bool]] """ Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. @@ -535,15 +539,19 @@ class EndpointGroupEndpointConfigurationArgsDict(TypedDict): @pulumi.input_type class EndpointGroupEndpointConfigurationArgs: def __init__(__self__, *, + attachment_arn: Optional[pulumi.Input[str]] = None, client_ip_preservation_enabled: Optional[pulumi.Input[bool]] = None, endpoint_id: Optional[pulumi.Input[str]] = None, weight: Optional[pulumi.Input[int]] = None): """ + :param pulumi.Input[str] attachment_arn: An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. :param pulumi.Input[bool] client_ip_preservation_enabled: Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. :param pulumi.Input[str] endpoint_id: An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. :param pulumi.Input[int] weight: The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. """ + if attachment_arn is not None: + pulumi.set(__self__, "attachment_arn", attachment_arn) if client_ip_preservation_enabled is not None: pulumi.set(__self__, "client_ip_preservation_enabled", client_ip_preservation_enabled) if endpoint_id is not None: @@ -551,6 +559,18 @@ def __init__(__self__, *, if weight is not None: pulumi.set(__self__, "weight", weight) + @property + @pulumi.getter(name="attachmentArn") + def attachment_arn(self) -> Optional[pulumi.Input[str]]: + """ + An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + """ + return pulumi.get(self, "attachment_arn") + + @attachment_arn.setter + def attachment_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "attachment_arn", value) + @property @pulumi.getter(name="clientIpPreservationEnabled") def client_ip_preservation_enabled(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_aws/globalaccelerator/outputs.py b/sdk/python/pulumi_aws/globalaccelerator/outputs.py index d3e3da4ab77..d07724f0ece 100644 --- a/sdk/python/pulumi_aws/globalaccelerator/outputs.py +++ b/sdk/python/pulumi_aws/globalaccelerator/outputs.py @@ -472,7 +472,9 @@ class EndpointGroupEndpointConfiguration(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "clientIpPreservationEnabled": + if key == "attachmentArn": + suggest = "attachment_arn" + elif key == "clientIpPreservationEnabled": suggest = "client_ip_preservation_enabled" elif key == "endpointId": suggest = "endpoint_id" @@ -489,15 +491,19 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + attachment_arn: Optional[str] = None, client_ip_preservation_enabled: Optional[bool] = None, endpoint_id: Optional[str] = None, weight: Optional[int] = None): """ + :param str attachment_arn: An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. :param bool client_ip_preservation_enabled: Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) for more details. The default value is `false`. **Note:** When client IP address preservation is enabled, the Global Accelerator service creates an EC2 Security Group in the VPC named `GlobalAccelerator` that must be deleted (potentially outside of the provider) before the VPC will successfully delete. If this EC2 Security Group is not deleted, the provider will retry the VPC deletion for a few minutes before reporting a `DependencyViolation` error. This cannot be resolved by re-running the provider. :param str endpoint_id: An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. :param int weight: The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. """ + if attachment_arn is not None: + pulumi.set(__self__, "attachment_arn", attachment_arn) if client_ip_preservation_enabled is not None: pulumi.set(__self__, "client_ip_preservation_enabled", client_ip_preservation_enabled) if endpoint_id is not None: @@ -505,6 +511,14 @@ def __init__(__self__, *, if weight is not None: pulumi.set(__self__, "weight", weight) + @property + @pulumi.getter(name="attachmentArn") + def attachment_arn(self) -> Optional[str]: + """ + An ARN of an exposed cross-account attachment. See the [AWS documentation](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) for more details. + """ + return pulumi.get(self, "attachment_arn") + @property @pulumi.getter(name="clientIpPreservationEnabled") def client_ip_preservation_enabled(self) -> Optional[bool]: diff --git a/sdk/python/pulumi_aws/iam/__init__.py b/sdk/python/pulumi_aws/iam/__init__.py index 02cf30f9dba..a04ee290c19 100644 --- a/sdk/python/pulumi_aws/iam/__init__.py +++ b/sdk/python/pulumi_aws/iam/__init__.py @@ -28,6 +28,7 @@ from .get_users import * from .group import * from .group_membership import * +from .group_policies_exclusive import * from .group_policy import * from .group_policy_attachment import * from .instance_profile import * @@ -48,6 +49,7 @@ from .user import * from .user_group_membership import * from .user_login_profile import * +from .user_policies_exclusive import * from .user_policy import * from .user_policy_attachment import * from .virtual_mfa_device import * diff --git a/sdk/python/pulumi_aws/iam/group_policies_exclusive.py b/sdk/python/pulumi_aws/iam/group_policies_exclusive.py new file mode 100644 index 00000000000..1ea69822d8b --- /dev/null +++ b/sdk/python/pulumi_aws/iam/group_policies_exclusive.py @@ -0,0 +1,211 @@ +# 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__ = ['GroupPoliciesExclusiveArgs', 'GroupPoliciesExclusive'] + +@pulumi.input_type +class GroupPoliciesExclusiveArgs: + def __init__(__self__, *, + group_name: pulumi.Input[str], + policy_names: pulumi.Input[Sequence[pulumi.Input[str]]]): + """ + The set of arguments for constructing a GroupPoliciesExclusive resource. + :param pulumi.Input[str] group_name: IAM group name. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + pulumi.set(__self__, "group_name", group_name) + pulumi.set(__self__, "policy_names", policy_names) + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> pulumi.Input[str]: + """ + IAM group name. + """ + return pulumi.get(self, "group_name") + + @group_name.setter + def group_name(self, value: pulumi.Input[str]): + pulumi.set(self, "group_name", value) + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + + @policy_names.setter + def policy_names(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "policy_names", value) + + +@pulumi.input_type +class _GroupPoliciesExclusiveState: + def __init__(__self__, *, + group_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering GroupPoliciesExclusive resources. + :param pulumi.Input[str] group_name: IAM group name. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + if group_name is not None: + pulumi.set(__self__, "group_name", group_name) + if policy_names is not None: + pulumi.set(__self__, "policy_names", policy_names) + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> Optional[pulumi.Input[str]]: + """ + IAM group name. + """ + return pulumi.get(self, "group_name") + + @group_name.setter + def group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "group_name", value) + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + + @policy_names.setter + def policy_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "policy_names", value) + + +class GroupPoliciesExclusive(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + group_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + __props__=None): + """ + ## Import + + Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: + + ```sh + $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] group_name: IAM group name. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GroupPoliciesExclusiveArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: + + ```sh + $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup + ``` + + :param str resource_name: The name of the resource. + :param GroupPoliciesExclusiveArgs 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(GroupPoliciesExclusiveArgs, 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, + group_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[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__ = GroupPoliciesExclusiveArgs.__new__(GroupPoliciesExclusiveArgs) + + if group_name is None and not opts.urn: + raise TypeError("Missing required property 'group_name'") + __props__.__dict__["group_name"] = group_name + if policy_names is None and not opts.urn: + raise TypeError("Missing required property 'policy_names'") + __props__.__dict__["policy_names"] = policy_names + super(GroupPoliciesExclusive, __self__).__init__( + 'aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + group_name: Optional[pulumi.Input[str]] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'GroupPoliciesExclusive': + """ + Get an existing GroupPoliciesExclusive 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] group_name: IAM group name. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GroupPoliciesExclusiveState.__new__(_GroupPoliciesExclusiveState) + + __props__.__dict__["group_name"] = group_name + __props__.__dict__["policy_names"] = policy_names + return GroupPoliciesExclusive(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> pulumi.Output[str]: + """ + IAM group name. + """ + return pulumi.get(self, "group_name") + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> pulumi.Output[Sequence[str]]: + """ + A list of inline policy names to be assigned to the group. Policies attached to this group but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + diff --git a/sdk/python/pulumi_aws/iam/user_policies_exclusive.py b/sdk/python/pulumi_aws/iam/user_policies_exclusive.py new file mode 100644 index 00000000000..125912104a4 --- /dev/null +++ b/sdk/python/pulumi_aws/iam/user_policies_exclusive.py @@ -0,0 +1,211 @@ +# 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__ = ['UserPoliciesExclusiveArgs', 'UserPoliciesExclusive'] + +@pulumi.input_type +class UserPoliciesExclusiveArgs: + def __init__(__self__, *, + policy_names: pulumi.Input[Sequence[pulumi.Input[str]]], + user_name: pulumi.Input[str]): + """ + The set of arguments for constructing a UserPoliciesExclusive resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + :param pulumi.Input[str] user_name: IAM user name. + """ + pulumi.set(__self__, "policy_names", policy_names) + pulumi.set(__self__, "user_name", user_name) + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + + @policy_names.setter + def policy_names(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "policy_names", value) + + @property + @pulumi.getter(name="userName") + def user_name(self) -> pulumi.Input[str]: + """ + IAM user name. + """ + return pulumi.get(self, "user_name") + + @user_name.setter + def user_name(self, value: pulumi.Input[str]): + pulumi.set(self, "user_name", value) + + +@pulumi.input_type +class _UserPoliciesExclusiveState: + def __init__(__self__, *, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering UserPoliciesExclusive resources. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + :param pulumi.Input[str] user_name: IAM user name. + """ + if policy_names is not None: + pulumi.set(__self__, "policy_names", policy_names) + if user_name is not None: + pulumi.set(__self__, "user_name", user_name) + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + + @policy_names.setter + def policy_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "policy_names", value) + + @property + @pulumi.getter(name="userName") + def user_name(self) -> Optional[pulumi.Input[str]]: + """ + IAM user name. + """ + return pulumi.get(self, "user_name") + + @user_name.setter + def user_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_name", value) + + +class UserPoliciesExclusive(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Import + + Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: + + ```sh + $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + :param pulumi.Input[str] user_name: IAM user name. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: UserPoliciesExclusiveArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: + + ```sh + $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser + ``` + + :param str resource_name: The name of the resource. + :param UserPoliciesExclusiveArgs 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(UserPoliciesExclusiveArgs, 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, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: 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__ = UserPoliciesExclusiveArgs.__new__(UserPoliciesExclusiveArgs) + + if policy_names is None and not opts.urn: + raise TypeError("Missing required property 'policy_names'") + __props__.__dict__["policy_names"] = policy_names + if user_name is None and not opts.urn: + raise TypeError("Missing required property 'user_name'") + __props__.__dict__["user_name"] = user_name + super(UserPoliciesExclusive, __self__).__init__( + 'aws:iam/userPoliciesExclusive:UserPoliciesExclusive', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + policy_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None) -> 'UserPoliciesExclusive': + """ + Get an existing UserPoliciesExclusive 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[Sequence[pulumi.Input[str]]] policy_names: A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + :param pulumi.Input[str] user_name: IAM user name. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _UserPoliciesExclusiveState.__new__(_UserPoliciesExclusiveState) + + __props__.__dict__["policy_names"] = policy_names + __props__.__dict__["user_name"] = user_name + return UserPoliciesExclusive(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="policyNames") + def policy_names(self) -> pulumi.Output[Sequence[str]]: + """ + A list of inline policy names to be assigned to the user. Policies attached to this user but not configured in this argument will be removed. + """ + return pulumi.get(self, "policy_names") + + @property + @pulumi.getter(name="userName") + def user_name(self) -> pulumi.Output[str]: + """ + IAM user name. + """ + return pulumi.get(self, "user_name") + diff --git a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py index 76ea753f547..d1964d39e9c 100644 --- a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py +++ b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py @@ -653,7 +653,7 @@ def __init__(__self__, name="firehose_lambda_processor", role=lambda_iam.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) extended_s3_stream = aws.kinesis.FirehoseDeliveryStream("extended_s3_stream", name="kinesis-firehose-extended-s3-test-stream", destination="extended_s3", @@ -1247,7 +1247,7 @@ def __init__(__self__, name="firehose_lambda_processor", role=lambda_iam.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) extended_s3_stream = aws.kinesis.FirehoseDeliveryStream("extended_s3_stream", name="kinesis-firehose-extended-s3-test-stream", destination="extended_s3", diff --git a/sdk/python/pulumi_aws/lambda_/code_signing_config.py b/sdk/python/pulumi_aws/lambda_/code_signing_config.py index ec86158d649..ddec8ba48aa 100644 --- a/sdk/python/pulumi_aws/lambda_/code_signing_config.py +++ b/sdk/python/pulumi_aws/lambda_/code_signing_config.py @@ -23,18 +23,22 @@ class CodeSigningConfigArgs: def __init__(__self__, *, allowed_publishers: pulumi.Input['CodeSigningConfigAllowedPublishersArgs'], description: Optional[pulumi.Input[str]] = None, - policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = None): + policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a CodeSigningConfig resource. :param pulumi.Input['CodeSigningConfigAllowedPublishersArgs'] allowed_publishers: A configuration block of allowed publishers as signing profiles for this code signing configuration. Detailed below. :param pulumi.Input[str] description: Descriptive name for this code signing configuration. :param pulumi.Input['CodeSigningConfigPoliciesArgs'] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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__, "allowed_publishers", allowed_publishers) if description is not None: pulumi.set(__self__, "description", description) if policies is not None: pulumi.set(__self__, "policies", policies) + if tags is not None: + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="allowedPublishers") @@ -72,6 +76,18 @@ def policies(self) -> Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']]: def policies(self, value: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']]): pulumi.set(self, "policies", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of tags to assign to the object. 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 _CodeSigningConfigState: @@ -81,7 +97,9 @@ def __init__(__self__, *, config_id: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, last_modified: Optional[pulumi.Input[str]] = None, - policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = None): + policies: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']] = 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 CodeSigningConfig resources. :param pulumi.Input['CodeSigningConfigAllowedPublishersArgs'] allowed_publishers: A configuration block of allowed publishers as signing profiles for this code signing configuration. Detailed below. @@ -90,6 +108,8 @@ def __init__(__self__, *, :param pulumi.Input[str] description: Descriptive name for this code signing configuration. :param pulumi.Input[str] last_modified: The date and time that the code signing configuration was last modified. :param pulumi.Input['CodeSigningConfigPoliciesArgs'] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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 allowed_publishers is not None: pulumi.set(__self__, "allowed_publishers", allowed_publishers) @@ -103,6 +123,13 @@ def __init__(__self__, *, pulumi.set(__self__, "last_modified", last_modified) if policies is not None: pulumi.set(__self__, "policies", policies) + 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="allowedPublishers") @@ -176,6 +203,31 @@ def policies(self) -> Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']]: def policies(self, value: Optional[pulumi.Input['CodeSigningConfigPoliciesArgs']]): pulumi.set(self, "policies", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of tags to assign to the object. 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) + class CodeSigningConfig(pulumi.CustomResource): @overload @@ -185,6 +237,7 @@ def __init__(__self__, allowed_publishers: Optional[pulumi.Input[Union['CodeSigningConfigAllowedPublishersArgs', 'CodeSigningConfigAllowedPublishersArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, policies: Optional[pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, __props__=None): """ Provides a Lambda Code Signing Config resource. A code signing configuration defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail). @@ -207,7 +260,10 @@ def __init__(__self__, policies={ "untrusted_artifact_on_deployment": "Warn", }, - description="My awesome code signing config.") + description="My awesome code signing config.", + tags={ + "Name": "dynamodb", + }) ``` ## Import @@ -223,6 +279,7 @@ def __init__(__self__, :param pulumi.Input[Union['CodeSigningConfigAllowedPublishersArgs', 'CodeSigningConfigAllowedPublishersArgsDict']] allowed_publishers: A configuration block of allowed publishers as signing profiles for this code signing configuration. Detailed below. :param pulumi.Input[str] description: Descriptive name for this code signing configuration. :param pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ ... @overload @@ -251,7 +308,10 @@ def __init__(__self__, policies={ "untrusted_artifact_on_deployment": "Warn", }, - description="My awesome code signing config.") + description="My awesome code signing config.", + tags={ + "Name": "dynamodb", + }) ``` ## Import @@ -280,6 +340,7 @@ def _internal_init(__self__, allowed_publishers: Optional[pulumi.Input[Union['CodeSigningConfigAllowedPublishersArgs', 'CodeSigningConfigAllowedPublishersArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, policies: Optional[pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']]] = 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): @@ -294,9 +355,11 @@ def _internal_init(__self__, __props__.__dict__["allowed_publishers"] = allowed_publishers __props__.__dict__["description"] = description __props__.__dict__["policies"] = policies + __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None __props__.__dict__["config_id"] = None __props__.__dict__["last_modified"] = None + __props__.__dict__["tags_all"] = None super(CodeSigningConfig, __self__).__init__( 'aws:lambda/codeSigningConfig:CodeSigningConfig', resource_name, @@ -312,7 +375,9 @@ def get(resource_name: str, config_id: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, last_modified: Optional[pulumi.Input[str]] = None, - policies: Optional[pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']]] = None) -> 'CodeSigningConfig': + policies: Optional[pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'CodeSigningConfig': """ Get an existing CodeSigningConfig resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -326,6 +391,8 @@ def get(resource_name: str, :param pulumi.Input[str] description: Descriptive name for this code signing configuration. :param pulumi.Input[str] last_modified: The date and time that the code signing configuration was last modified. :param pulumi.Input[Union['CodeSigningConfigPoliciesArgs', 'CodeSigningConfigPoliciesArgsDict']] policies: A configuration block of code signing policies that define the actions to take if the validation checks fail. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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)) @@ -337,6 +404,8 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["last_modified"] = last_modified __props__.__dict__["policies"] = policies + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all return CodeSigningConfig(resource_name, opts=opts, __props__=__props__) @property @@ -387,3 +456,20 @@ def policies(self) -> pulumi.Output['outputs.CodeSigningConfigPolicies']: """ return pulumi.get(self, "policies") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Map of tags to assign to the object. 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") + diff --git a/sdk/python/pulumi_aws/lambda_/event_source_mapping.py b/sdk/python/pulumi_aws/lambda_/event_source_mapping.py index d7d96be4af8..31d3641a68f 100644 --- a/sdk/python/pulumi_aws/lambda_/event_source_mapping.py +++ b/sdk/python/pulumi_aws/lambda_/event_source_mapping.py @@ -43,6 +43,7 @@ def __init__(__self__, *, source_access_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['EventSourceMappingSourceAccessConfigurationArgs']]]] = None, starting_position: Optional[pulumi.Input[str]] = None, starting_position_timestamp: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None): """ @@ -69,6 +70,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['EventSourceMappingSourceAccessConfigurationArgs']]] source_access_configurations: For Self Managed Kafka sources, the access configuration for the source. If set, configuration must also include `self_managed_event_source`. Detailed below. :param pulumi.Input[str] starting_position: The position in the stream where AWS Lambda should start reading. Must be one of `AT_TIMESTAMP` (Kinesis only), `LATEST` or `TRIM_HORIZON` if getting events from Kinesis, DynamoDB, MSK or Self Managed Apache Kafka. Must not be provided if getting events from SQS. More information about these positions can be found in the [AWS DynamoDB Streams API Reference](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html) and [AWS Kinesis API Reference](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType). :param pulumi.Input[str] starting_position_timestamp: A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `starting_position` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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[Sequence[pulumi.Input[str]]] topics: The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). """ @@ -115,6 +117,8 @@ def __init__(__self__, *, pulumi.set(__self__, "starting_position", starting_position) if starting_position_timestamp is not None: pulumi.set(__self__, "starting_position_timestamp", starting_position_timestamp) + if tags is not None: + pulumi.set(__self__, "tags", tags) if topics is not None: pulumi.set(__self__, "topics", topics) if tumbling_window_in_seconds is not None: @@ -384,6 +388,18 @@ def starting_position_timestamp(self) -> Optional[pulumi.Input[str]]: def starting_position_timestamp(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "starting_position_timestamp", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of tags to assign to the object. 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 topics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -413,6 +429,7 @@ def tumbling_window_in_seconds(self, value: Optional[pulumi.Input[int]]): class _EventSourceMappingState: def __init__(__self__, *, amazon_managed_kafka_event_source_config: Optional[pulumi.Input['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs']] = None, + arn: Optional[pulumi.Input[str]] = None, batch_size: Optional[pulumi.Input[int]] = None, bisect_batch_on_function_error: Optional[pulumi.Input[bool]] = None, destination_config: Optional[pulumi.Input['EventSourceMappingDestinationConfigArgs']] = None, @@ -439,12 +456,15 @@ def __init__(__self__, *, starting_position_timestamp: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, state_transition_reason: 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, topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, uuid: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering EventSourceMapping resources. :param pulumi.Input['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs'] amazon_managed_kafka_event_source_config: Additional configuration block for Amazon Managed Kafka sources. Incompatible with "self_managed_event_source" and "self_managed_kafka_event_source_config". Detailed below. + :param pulumi.Input[str] arn: The event source mapping ARN. :param pulumi.Input[int] batch_size: The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. :param pulumi.Input[bool] bisect_batch_on_function_error: - (Optional) If the function returns an error, split the batch in two and retry. Only available for stream sources (DynamoDB and Kinesis). Defaults to `false`. :param pulumi.Input['EventSourceMappingDestinationConfigArgs'] destination_config: - (Optional) An Amazon SQS queue, Amazon SNS topic or Amazon S3 bucket (only available for Kafka sources) destination for failed records. Only available for stream sources (DynamoDB and Kinesis) and Kafka sources (Amazon MSK and Self-managed Apache Kafka). Detailed below. @@ -452,7 +472,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enabled: Determines if the mapping will be enabled on creation. Defaults to `true`. :param pulumi.Input[str] event_source_arn: The event source ARN - this is required for Kinesis stream, DynamoDB stream, SQS queue, MQ broker, MSK cluster or DocumentDB change stream. It is incompatible with a Self Managed Kafka source. :param pulumi.Input['EventSourceMappingFilterCriteriaArgs'] filter_criteria: The criteria to use for [event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) Kinesis stream, DynamoDB stream, SQS queue event sources. Detailed below. - :param pulumi.Input[str] function_arn: The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + :param pulumi.Input[str] function_arn: The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) :param pulumi.Input[str] function_name: The name or the ARN of the Lambda function that will be subscribing to events. :param pulumi.Input[Sequence[pulumi.Input[str]]] function_response_types: A list of current response type enums applied to the event source mapping for [AWS Lambda checkpointing](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting). Only available for SQS and stream sources (DynamoDB and Kinesis). Valid values: `ReportBatchItemFailures`. :param pulumi.Input[str] kms_key_arn: The ARN of the Key Management Service (KMS) customer managed key that Lambda uses to encrypt your function's filter criteria. @@ -471,12 +491,16 @@ def __init__(__self__, *, :param pulumi.Input[str] starting_position_timestamp: A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `starting_position` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. :param pulumi.Input[str] state: The state of the event source mapping. :param pulumi.Input[str] state_transition_reason: The reason the event source mapping is in its current state. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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[Sequence[pulumi.Input[str]]] topics: The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). :param pulumi.Input[str] uuid: The UUID of the created event source mapping. """ if amazon_managed_kafka_event_source_config is not None: pulumi.set(__self__, "amazon_managed_kafka_event_source_config", amazon_managed_kafka_event_source_config) + if arn is not None: + pulumi.set(__self__, "arn", arn) if batch_size is not None: pulumi.set(__self__, "batch_size", batch_size) if bisect_batch_on_function_error is not None: @@ -529,6 +553,13 @@ def __init__(__self__, *, pulumi.set(__self__, "state", state) if state_transition_reason is not None: pulumi.set(__self__, "state_transition_reason", state_transition_reason) + 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 topics is not None: pulumi.set(__self__, "topics", topics) if tumbling_window_in_seconds is not None: @@ -548,6 +579,18 @@ def amazon_managed_kafka_event_source_config(self) -> Optional[pulumi.Input['Eve def amazon_managed_kafka_event_source_config(self, value: Optional[pulumi.Input['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs']]): pulumi.set(self, "amazon_managed_kafka_event_source_config", value) + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The event source mapping ARN. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + @property @pulumi.getter(name="batchSize") def batch_size(self) -> Optional[pulumi.Input[int]]: @@ -636,7 +679,7 @@ def filter_criteria(self, value: Optional[pulumi.Input['EventSourceMappingFilter @pulumi.getter(name="functionArn") def function_arn(self) -> Optional[pulumi.Input[str]]: """ - The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) """ return pulumi.get(self, "function_arn") @@ -860,6 +903,31 @@ def state_transition_reason(self) -> Optional[pulumi.Input[str]]: def state_transition_reason(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "state_transition_reason", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of tags to assign to the object. 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 topics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -924,6 +992,7 @@ def __init__(__self__, source_access_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EventSourceMappingSourceAccessConfigurationArgs', 'EventSourceMappingSourceAccessConfigurationArgsDict']]]]] = None, starting_position: Optional[pulumi.Input[str]] = None, starting_position_timestamp: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, __props__=None): @@ -944,7 +1013,10 @@ def __init__(__self__, example = aws.lambda_.EventSourceMapping("example", event_source_arn=example_aws_dynamodb_table["streamArn"], function_name=example_aws_lambda_function["arn"], - starting_position="LATEST") + starting_position="LATEST", + tags={ + "Name": "dynamodb", + }) ``` ### Kinesis @@ -1117,6 +1189,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[Union['EventSourceMappingSourceAccessConfigurationArgs', 'EventSourceMappingSourceAccessConfigurationArgsDict']]]] source_access_configurations: For Self Managed Kafka sources, the access configuration for the source. If set, configuration must also include `self_managed_event_source`. Detailed below. :param pulumi.Input[str] starting_position: The position in the stream where AWS Lambda should start reading. Must be one of `AT_TIMESTAMP` (Kinesis only), `LATEST` or `TRIM_HORIZON` if getting events from Kinesis, DynamoDB, MSK or Self Managed Apache Kafka. Must not be provided if getting events from SQS. More information about these positions can be found in the [AWS DynamoDB Streams API Reference](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html) and [AWS Kinesis API Reference](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType). :param pulumi.Input[str] starting_position_timestamp: A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `starting_position` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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[Sequence[pulumi.Input[str]]] topics: The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). """ @@ -1143,7 +1216,10 @@ def __init__(__self__, example = aws.lambda_.EventSourceMapping("example", event_source_arn=example_aws_dynamodb_table["streamArn"], function_name=example_aws_lambda_function["arn"], - starting_position="LATEST") + starting_position="LATEST", + tags={ + "Name": "dynamodb", + }) ``` ### Kinesis @@ -1329,6 +1405,7 @@ def _internal_init(__self__, source_access_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EventSourceMappingSourceAccessConfigurationArgs', 'EventSourceMappingSourceAccessConfigurationArgsDict']]]]] = None, starting_position: Optional[pulumi.Input[str]] = None, starting_position_timestamp: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, __props__=None): @@ -1364,13 +1441,16 @@ def _internal_init(__self__, __props__.__dict__["source_access_configurations"] = source_access_configurations __props__.__dict__["starting_position"] = starting_position __props__.__dict__["starting_position_timestamp"] = starting_position_timestamp + __props__.__dict__["tags"] = tags __props__.__dict__["topics"] = topics __props__.__dict__["tumbling_window_in_seconds"] = tumbling_window_in_seconds + __props__.__dict__["arn"] = None __props__.__dict__["function_arn"] = None __props__.__dict__["last_modified"] = None __props__.__dict__["last_processing_result"] = None __props__.__dict__["state"] = None __props__.__dict__["state_transition_reason"] = None + __props__.__dict__["tags_all"] = None __props__.__dict__["uuid"] = None super(EventSourceMapping, __self__).__init__( 'aws:lambda/eventSourceMapping:EventSourceMapping', @@ -1383,6 +1463,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, amazon_managed_kafka_event_source_config: Optional[pulumi.Input[Union['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs', 'EventSourceMappingAmazonManagedKafkaEventSourceConfigArgsDict']]] = None, + arn: Optional[pulumi.Input[str]] = None, batch_size: Optional[pulumi.Input[int]] = None, bisect_batch_on_function_error: Optional[pulumi.Input[bool]] = None, destination_config: Optional[pulumi.Input[Union['EventSourceMappingDestinationConfigArgs', 'EventSourceMappingDestinationConfigArgsDict']]] = None, @@ -1409,6 +1490,8 @@ def get(resource_name: str, starting_position_timestamp: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, state_transition_reason: 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, topics: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tumbling_window_in_seconds: Optional[pulumi.Input[int]] = None, uuid: Optional[pulumi.Input[str]] = None) -> 'EventSourceMapping': @@ -1420,6 +1503,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[Union['EventSourceMappingAmazonManagedKafkaEventSourceConfigArgs', 'EventSourceMappingAmazonManagedKafkaEventSourceConfigArgsDict']] amazon_managed_kafka_event_source_config: Additional configuration block for Amazon Managed Kafka sources. Incompatible with "self_managed_event_source" and "self_managed_kafka_event_source_config". Detailed below. + :param pulumi.Input[str] arn: The event source mapping ARN. :param pulumi.Input[int] batch_size: The largest number of records that Lambda will retrieve from your event source at the time of invocation. Defaults to `100` for DynamoDB, Kinesis, MQ and MSK, `10` for SQS. :param pulumi.Input[bool] bisect_batch_on_function_error: - (Optional) If the function returns an error, split the batch in two and retry. Only available for stream sources (DynamoDB and Kinesis). Defaults to `false`. :param pulumi.Input[Union['EventSourceMappingDestinationConfigArgs', 'EventSourceMappingDestinationConfigArgsDict']] destination_config: - (Optional) An Amazon SQS queue, Amazon SNS topic or Amazon S3 bucket (only available for Kafka sources) destination for failed records. Only available for stream sources (DynamoDB and Kinesis) and Kafka sources (Amazon MSK and Self-managed Apache Kafka). Detailed below. @@ -1427,7 +1511,7 @@ def get(resource_name: str, :param pulumi.Input[bool] enabled: Determines if the mapping will be enabled on creation. Defaults to `true`. :param pulumi.Input[str] event_source_arn: The event source ARN - this is required for Kinesis stream, DynamoDB stream, SQS queue, MQ broker, MSK cluster or DocumentDB change stream. It is incompatible with a Self Managed Kafka source. :param pulumi.Input[Union['EventSourceMappingFilterCriteriaArgs', 'EventSourceMappingFilterCriteriaArgsDict']] filter_criteria: The criteria to use for [event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) Kinesis stream, DynamoDB stream, SQS queue event sources. Detailed below. - :param pulumi.Input[str] function_arn: The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + :param pulumi.Input[str] function_arn: The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) :param pulumi.Input[str] function_name: The name or the ARN of the Lambda function that will be subscribing to events. :param pulumi.Input[Sequence[pulumi.Input[str]]] function_response_types: A list of current response type enums applied to the event source mapping for [AWS Lambda checkpointing](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting). Only available for SQS and stream sources (DynamoDB and Kinesis). Valid values: `ReportBatchItemFailures`. :param pulumi.Input[str] kms_key_arn: The ARN of the Key Management Service (KMS) customer managed key that Lambda uses to encrypt your function's filter criteria. @@ -1446,6 +1530,8 @@ def get(resource_name: str, :param pulumi.Input[str] starting_position_timestamp: A timestamp in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) of the data record which to start reading when using `starting_position` set to `AT_TIMESTAMP`. If a record with this exact timestamp does not exist, the next later record is chosen. If the timestamp is older than the current trim horizon, the oldest available record is chosen. :param pulumi.Input[str] state: The state of the event source mapping. :param pulumi.Input[str] state_transition_reason: The reason the event source mapping is in its current state. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the object. 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[Sequence[pulumi.Input[str]]] topics: The name of the Kafka topics. Only available for MSK sources. A single topic name must be specified. :param pulumi.Input[int] tumbling_window_in_seconds: The duration in seconds of a processing window for [AWS Lambda streaming analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-windows). The range is between 1 second up to 900 seconds. Only available for stream sources (DynamoDB and Kinesis). :param pulumi.Input[str] uuid: The UUID of the created event source mapping. @@ -1455,6 +1541,7 @@ def get(resource_name: str, __props__ = _EventSourceMappingState.__new__(_EventSourceMappingState) __props__.__dict__["amazon_managed_kafka_event_source_config"] = amazon_managed_kafka_event_source_config + __props__.__dict__["arn"] = arn __props__.__dict__["batch_size"] = batch_size __props__.__dict__["bisect_batch_on_function_error"] = bisect_batch_on_function_error __props__.__dict__["destination_config"] = destination_config @@ -1481,6 +1568,8 @@ def get(resource_name: str, __props__.__dict__["starting_position_timestamp"] = starting_position_timestamp __props__.__dict__["state"] = state __props__.__dict__["state_transition_reason"] = state_transition_reason + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all __props__.__dict__["topics"] = topics __props__.__dict__["tumbling_window_in_seconds"] = tumbling_window_in_seconds __props__.__dict__["uuid"] = uuid @@ -1494,6 +1583,14 @@ def amazon_managed_kafka_event_source_config(self) -> pulumi.Output['outputs.Eve """ return pulumi.get(self, "amazon_managed_kafka_event_source_config") + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The event source mapping ARN. + """ + return pulumi.get(self, "arn") + @property @pulumi.getter(name="batchSize") def batch_size(self) -> pulumi.Output[Optional[int]]: @@ -1554,7 +1651,7 @@ def filter_criteria(self) -> pulumi.Output[Optional['outputs.EventSourceMappingF @pulumi.getter(name="functionArn") def function_arn(self) -> pulumi.Output[str]: """ - The the ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) + The ARN of the Lambda function the event source mapping is sending events to. (Note: this is a computed value that differs from `function_name` above.) """ return pulumi.get(self, "function_arn") @@ -1702,6 +1799,23 @@ def state_transition_reason(self) -> pulumi.Output[str]: """ return pulumi.get(self, "state_transition_reason") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Map of tags to assign to the object. 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 topics(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/pulumi_aws/lambda_/layer_version.py b/sdk/python/pulumi_aws/lambda_/layer_version.py index adc66b285c4..37a020ee15a 100644 --- a/sdk/python/pulumi_aws/lambda_/layer_version.py +++ b/sdk/python/pulumi_aws/lambda_/layer_version.py @@ -552,7 +552,7 @@ def __init__(__self__, lambda_layer = aws.lambda_.LayerVersion("lambda_layer", code=pulumi.FileArchive("lambda_layer_payload.zip"), layer_name="lambda_layer_name", - compatible_runtimes=["nodejs16.x"]) + compatible_runtimes=["nodejs20.x"]) ``` ## Specifying the Deployment Package @@ -612,7 +612,7 @@ def __init__(__self__, lambda_layer = aws.lambda_.LayerVersion("lambda_layer", code=pulumi.FileArchive("lambda_layer_payload.zip"), layer_name="lambda_layer_name", - compatible_runtimes=["nodejs16.x"]) + compatible_runtimes=["nodejs20.x"]) ``` ## Specifying the Deployment Package diff --git a/sdk/python/pulumi_aws/lambda_/permission.py b/sdk/python/pulumi_aws/lambda_/permission.py index 684fb37656e..f3968d85d63 100644 --- a/sdk/python/pulumi_aws/lambda_/permission.py +++ b/sdk/python/pulumi_aws/lambda_/permission.py @@ -460,7 +460,7 @@ def __init__(__self__, name="lambda_function_name", role=iam_for_lambda.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) test_alias = aws.lambda_.Alias("test_alias", name="testalias", description="a sample description", @@ -501,7 +501,7 @@ def __init__(__self__, name="lambda_called_from_sns", role=default_role.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.PYTHON3D7) + runtime=aws.lambda_.Runtime.PYTHON3D12) with_sns = aws.lambda_.Permission("with_sns", statement_id="AllowExecutionFromSNS", action="lambda:InvokeFunction", @@ -554,7 +554,7 @@ def __init__(__self__, name="lambda_called_from_cloudwatch_logs", handler="exports.handler", role=default_role.arn, - runtime=aws.lambda_.Runtime.PYTHON3D7) + runtime=aws.lambda_.Runtime.PYTHON3D12) logging = aws.lambda_.Permission("logging", action="lambda:InvokeFunction", function=logging_function.name, @@ -654,7 +654,7 @@ def __init__(__self__, name="lambda_function_name", role=iam_for_lambda.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.NODE_JS16D_X) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) test_alias = aws.lambda_.Alias("test_alias", name="testalias", description="a sample description", @@ -695,7 +695,7 @@ def __init__(__self__, name="lambda_called_from_sns", role=default_role.arn, handler="exports.handler", - runtime=aws.lambda_.Runtime.PYTHON3D7) + runtime=aws.lambda_.Runtime.PYTHON3D12) with_sns = aws.lambda_.Permission("with_sns", statement_id="AllowExecutionFromSNS", action="lambda:InvokeFunction", @@ -748,7 +748,7 @@ def __init__(__self__, name="lambda_called_from_cloudwatch_logs", handler="exports.handler", role=default_role.arn, - runtime=aws.lambda_.Runtime.PYTHON3D7) + runtime=aws.lambda_.Runtime.PYTHON3D12) logging = aws.lambda_.Permission("logging", action="lambda:InvokeFunction", function=logging_function.name, diff --git a/sdk/python/pulumi_aws/s3/_inputs.py b/sdk/python/pulumi_aws/s3/_inputs.py index bee281aca6a..eac30145caf 100644 --- a/sdk/python/pulumi_aws/s3/_inputs.py +++ b/sdk/python/pulumi_aws/s3/_inputs.py @@ -1769,7 +1769,7 @@ def tag(self, value: Optional[pulumi.Input['BucketLifecycleConfigurationV2RuleFi class BucketLifecycleConfigurationV2RuleFilterAndArgsDict(TypedDict): object_size_greater_than: NotRequired[pulumi.Input[int]] """ - Minimum object size to which the rule applies. Value must be at least `0` if specified. + Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. """ object_size_less_than: NotRequired[pulumi.Input[int]] """ @@ -1794,7 +1794,7 @@ def __init__(__self__, *, prefix: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ - :param pulumi.Input[int] object_size_greater_than: Minimum object size to which the rule applies. Value must be at least `0` if specified. + :param pulumi.Input[int] object_size_greater_than: Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. :param pulumi.Input[int] object_size_less_than: Maximum object size to which the rule applies. Value must be at least `1` if specified. :param pulumi.Input[str] prefix: Prefix identifying one or more objects to which the rule applies. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. @@ -1812,7 +1812,7 @@ def __init__(__self__, *, @pulumi.getter(name="objectSizeGreaterThan") def object_size_greater_than(self) -> Optional[pulumi.Input[int]]: """ - Minimum object size to which the rule applies. Value must be at least `0` if specified. + Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. """ return pulumi.get(self, "object_size_greater_than") diff --git a/sdk/python/pulumi_aws/s3/analytics_configuration.py b/sdk/python/pulumi_aws/s3/analytics_configuration.py index 5652e0c383e..34a4b8f4f55 100644 --- a/sdk/python/pulumi_aws/s3/analytics_configuration.py +++ b/sdk/python/pulumi_aws/s3/analytics_configuration.py @@ -185,7 +185,7 @@ def __init__(__self__, import pulumi_aws as aws example = aws.s3.BucketV2("example", bucket="example") - analytics = aws.s3.BucketV2("analytics", bucket="analytics destination") + analytics = aws.s3.BucketV2("analytics", bucket="analytics-destination") example_entire_bucket = aws.s3.AnalyticsConfiguration("example-entire-bucket", bucket=example.id, name="EntireBucket", @@ -254,7 +254,7 @@ def __init__(__self__, import pulumi_aws as aws example = aws.s3.BucketV2("example", bucket="example") - analytics = aws.s3.BucketV2("analytics", bucket="analytics destination") + analytics = aws.s3.BucketV2("analytics", bucket="analytics-destination") example_entire_bucket = aws.s3.AnalyticsConfiguration("example-entire-bucket", bucket=example.id, name="EntireBucket", diff --git a/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py index b368c3e211a..fa1da09a01a 100644 --- a/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_lifecycle_configuration_v2.py @@ -23,17 +23,21 @@ class BucketLifecycleConfigurationV2Args: def __init__(__self__, *, bucket: pulumi.Input[str], rules: pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]], - expected_bucket_owner: Optional[pulumi.Input[str]] = None): + expected_bucket_owner: Optional[pulumi.Input[str]] = None, + transition_default_minimum_object_size: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a BucketLifecycleConfigurationV2 resource. :param pulumi.Input[str] bucket: Name of the source S3 bucket you want Amazon S3 to monitor. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]] rules: List of configuration blocks describing the rules managing the replication. See below. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + :param pulumi.Input[str] transition_default_minimum_object_size: The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. """ pulumi.set(__self__, "bucket", bucket) pulumi.set(__self__, "rules", rules) if expected_bucket_owner is not None: pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) + if transition_default_minimum_object_size is not None: + pulumi.set(__self__, "transition_default_minimum_object_size", transition_default_minimum_object_size) @property @pulumi.getter @@ -71,18 +75,32 @@ def expected_bucket_owner(self) -> Optional[pulumi.Input[str]]: def expected_bucket_owner(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "expected_bucket_owner", value) + @property + @pulumi.getter(name="transitionDefaultMinimumObjectSize") + def transition_default_minimum_object_size(self) -> Optional[pulumi.Input[str]]: + """ + The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + """ + return pulumi.get(self, "transition_default_minimum_object_size") + + @transition_default_minimum_object_size.setter + def transition_default_minimum_object_size(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transition_default_minimum_object_size", value) + @pulumi.input_type class _BucketLifecycleConfigurationV2State: def __init__(__self__, *, bucket: Optional[pulumi.Input[str]] = None, expected_bucket_owner: Optional[pulumi.Input[str]] = None, - rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]]] = None): + rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]]] = None, + transition_default_minimum_object_size: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering BucketLifecycleConfigurationV2 resources. :param pulumi.Input[str] bucket: Name of the source S3 bucket you want Amazon S3 to monitor. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]] rules: List of configuration blocks describing the rules managing the replication. See below. + :param pulumi.Input[str] transition_default_minimum_object_size: The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. """ if bucket is not None: pulumi.set(__self__, "bucket", bucket) @@ -90,6 +108,8 @@ def __init__(__self__, *, pulumi.set(__self__, "expected_bucket_owner", expected_bucket_owner) if rules is not None: pulumi.set(__self__, "rules", rules) + if transition_default_minimum_object_size is not None: + pulumi.set(__self__, "transition_default_minimum_object_size", transition_default_minimum_object_size) @property @pulumi.getter @@ -127,6 +147,18 @@ def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleC def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleConfigurationV2RuleArgs']]]]): pulumi.set(self, "rules", value) + @property + @pulumi.getter(name="transitionDefaultMinimumObjectSize") + def transition_default_minimum_object_size(self) -> Optional[pulumi.Input[str]]: + """ + The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + """ + return pulumi.get(self, "transition_default_minimum_object_size") + + @transition_default_minimum_object_size.setter + def transition_default_minimum_object_size(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "transition_default_minimum_object_size", value) + class BucketLifecycleConfigurationV2(pulumi.CustomResource): @overload @@ -136,6 +168,7 @@ def __init__(__self__, bucket: Optional[pulumi.Input[str]] = None, expected_bucket_owner: Optional[pulumi.Input[str]] = None, rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]]] = None, + transition_default_minimum_object_size: Optional[pulumi.Input[str]] = None, __props__=None): """ Provides an independent configuration resource for S3 bucket [lifecycle configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). @@ -312,7 +345,7 @@ def __init__(__self__, ### Specifying a filter based on object size - Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). + Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`object_size_greater_than`) or a maximum size (`object_size_less_than`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: ```python import pulumi @@ -321,11 +354,15 @@ def __init__(__self__, example = aws.s3.BucketLifecycleConfigurationV2("example", bucket=bucket["id"], rules=[{ - "id": "rule-1", + "id": "Allow small object transitions", "filter": { - "object_size_greater_than": "500", + "object_size_greater_than": "1", }, "status": "Enabled", + "transitions": [{ + "days": 365, + "storage_class": "GLACIER_IR", + }], }]) ``` @@ -458,6 +495,7 @@ def __init__(__self__, :param pulumi.Input[str] bucket: Name of the source S3 bucket you want Amazon S3 to monitor. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. :param pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]] rules: List of configuration blocks describing the rules managing the replication. See below. + :param pulumi.Input[str] transition_default_minimum_object_size: The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. """ ... @overload @@ -640,7 +678,7 @@ def __init__(__self__, ### Specifying a filter based on object size - Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). + Object size values are in bytes. Maximum filter size is 5TB. Amazon S3 applies a default behavior to your Lifecycle configuration that prevents objects smaller than 128 KB from being transitioned to any storage class. You can allow smaller objects to transition by adding a minimum size (`object_size_greater_than`) or a maximum size (`object_size_less_than`) filter that specifies a smaller size to the configuration. This example allows any object smaller than 128 KB to transition to the S3 Glacier Instant Retrieval storage class: ```python import pulumi @@ -649,11 +687,15 @@ def __init__(__self__, example = aws.s3.BucketLifecycleConfigurationV2("example", bucket=bucket["id"], rules=[{ - "id": "rule-1", + "id": "Allow small object transitions", "filter": { - "object_size_greater_than": "500", + "object_size_greater_than": "1", }, "status": "Enabled", + "transitions": [{ + "days": 365, + "storage_class": "GLACIER_IR", + }], }]) ``` @@ -799,6 +841,7 @@ def _internal_init(__self__, bucket: Optional[pulumi.Input[str]] = None, expected_bucket_owner: Optional[pulumi.Input[str]] = None, rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]]] = None, + transition_default_minimum_object_size: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -815,6 +858,7 @@ def _internal_init(__self__, if rules is None and not opts.urn: raise TypeError("Missing required property 'rules'") __props__.__dict__["rules"] = rules + __props__.__dict__["transition_default_minimum_object_size"] = transition_default_minimum_object_size super(BucketLifecycleConfigurationV2, __self__).__init__( 'aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2', resource_name, @@ -827,7 +871,8 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, bucket: Optional[pulumi.Input[str]] = None, expected_bucket_owner: Optional[pulumi.Input[str]] = None, - rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]]] = None) -> 'BucketLifecycleConfigurationV2': + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]]] = None, + transition_default_minimum_object_size: Optional[pulumi.Input[str]] = None) -> 'BucketLifecycleConfigurationV2': """ Get an existing BucketLifecycleConfigurationV2 resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -838,6 +883,7 @@ def get(resource_name: str, :param pulumi.Input[str] bucket: Name of the source S3 bucket you want Amazon S3 to monitor. :param pulumi.Input[str] expected_bucket_owner: Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. :param pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleConfigurationV2RuleArgs', 'BucketLifecycleConfigurationV2RuleArgsDict']]]] rules: List of configuration blocks describing the rules managing the replication. See below. + :param pulumi.Input[str] transition_default_minimum_object_size: The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -846,6 +892,7 @@ def get(resource_name: str, __props__.__dict__["bucket"] = bucket __props__.__dict__["expected_bucket_owner"] = expected_bucket_owner __props__.__dict__["rules"] = rules + __props__.__dict__["transition_default_minimum_object_size"] = transition_default_minimum_object_size return BucketLifecycleConfigurationV2(resource_name, opts=opts, __props__=__props__) @property @@ -872,3 +919,11 @@ def rules(self) -> pulumi.Output[Sequence['outputs.BucketLifecycleConfigurationV """ return pulumi.get(self, "rules") + @property + @pulumi.getter(name="transitionDefaultMinimumObjectSize") + def transition_default_minimum_object_size(self) -> pulumi.Output[str]: + """ + The default minimum object size behavior applied to the lifecycle configuration. Valid values: `all_storage_classes_128K` (default), `varies_by_storage_class`. To customize the minimum object size for any transition you can add a `filter` that specifies a custom `object_size_greater_than` or `object_size_less_than` value. Custom filters always take precedence over the default transition behavior. + """ + return pulumi.get(self, "transition_default_minimum_object_size") + diff --git a/sdk/python/pulumi_aws/s3/bucket_notification.py b/sdk/python/pulumi_aws/s3/bucket_notification.py index 33433cb9e88..366beb3568c 100644 --- a/sdk/python/pulumi_aws/s3/bucket_notification.py +++ b/sdk/python/pulumi_aws/s3/bucket_notification.py @@ -309,7 +309,7 @@ def __init__(__self__, name="example_lambda_name", role=iam_for_lambda.arn, handler="exports.example", - runtime=aws.lambda_.Runtime.GO1DX) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) bucket = aws.s3.BucketV2("bucket", bucket="your-bucket-name") allow_bucket = aws.lambda_.Permission("allow_bucket", statement_id="AllowExecutionFromS3Bucket", @@ -350,7 +350,7 @@ def __init__(__self__, name="example_lambda_name1", role=iam_for_lambda.arn, handler="exports.example", - runtime=aws.lambda_.Runtime.GO1DX) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) bucket = aws.s3.BucketV2("bucket", bucket="your-bucket-name") allow_bucket1 = aws.lambda_.Permission("allow_bucket1", statement_id="AllowExecutionFromS3Bucket1", @@ -568,7 +568,7 @@ def __init__(__self__, name="example_lambda_name", role=iam_for_lambda.arn, handler="exports.example", - runtime=aws.lambda_.Runtime.GO1DX) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) bucket = aws.s3.BucketV2("bucket", bucket="your-bucket-name") allow_bucket = aws.lambda_.Permission("allow_bucket", statement_id="AllowExecutionFromS3Bucket", @@ -609,7 +609,7 @@ def __init__(__self__, name="example_lambda_name1", role=iam_for_lambda.arn, handler="exports.example", - runtime=aws.lambda_.Runtime.GO1DX) + runtime=aws.lambda_.Runtime.NODE_JS20D_X) bucket = aws.s3.BucketV2("bucket", bucket="your-bucket-name") allow_bucket1 = aws.lambda_.Permission("allow_bucket1", statement_id="AllowExecutionFromS3Bucket1", diff --git a/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py b/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py index 736e73ec901..457b4613469 100644 --- a/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py +++ b/sdk/python/pulumi_aws/s3/bucket_object_lock_configuration_v2.py @@ -241,21 +241,14 @@ def __init__(__self__, ## Import - If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: - import { - to = aws_s3_bucket_object_lock_configuration.example - id = "bucket-name,123456789012" - } - - __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: - - If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: + __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name ``` - If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 @@ -309,21 +302,14 @@ def __init__(__self__, ## Import - If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): - - import { - to = aws_s3_bucket_object_lock_configuration.example - id = "bucket-name,123456789012" - } - - __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: + If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: - If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: + __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name ``` - If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): + If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: ```sh $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 diff --git a/sdk/python/pulumi_aws/s3/outputs.py b/sdk/python/pulumi_aws/s3/outputs.py index e7f83c2c9c1..e6536600ea8 100644 --- a/sdk/python/pulumi_aws/s3/outputs.py +++ b/sdk/python/pulumi_aws/s3/outputs.py @@ -1346,7 +1346,7 @@ def __init__(__self__, *, prefix: Optional[str] = None, tags: Optional[Mapping[str, str]] = None): """ - :param int object_size_greater_than: Minimum object size to which the rule applies. Value must be at least `0` if specified. + :param int object_size_greater_than: Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. :param int object_size_less_than: Maximum object size to which the rule applies. Value must be at least `1` if specified. :param str prefix: Prefix identifying one or more objects to which the rule applies. :param Mapping[str, str] tags: Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. @@ -1364,7 +1364,7 @@ def __init__(__self__, *, @pulumi.getter(name="objectSizeGreaterThan") def object_size_greater_than(self) -> Optional[int]: """ - Minimum object size to which the rule applies. Value must be at least `0` if specified. + Minimum object size to which the rule applies. Value must be at least `0` if specified. Defaults to 128000 (128 KB) for all `storage_class` values unless `transition_default_minimum_object_size` specifies otherwise. """ return pulumi.get(self, "object_size_greater_than") diff --git a/sdk/python/pulumi_aws/securityhub/__init__.py b/sdk/python/pulumi_aws/securityhub/__init__.py index 5c2bc209bda..de710eaa95f 100644 --- a/sdk/python/pulumi_aws/securityhub/__init__.py +++ b/sdk/python/pulumi_aws/securityhub/__init__.py @@ -19,6 +19,7 @@ from .organization_configuration import * from .product_subscription import * from .standards_control import * +from .standards_control_association import * from .standards_subscription import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/securityhub/_inputs.py b/sdk/python/pulumi_aws/securityhub/_inputs.py index ef51cea010e..a671b91c1e0 100644 --- a/sdk/python/pulumi_aws/securityhub/_inputs.py +++ b/sdk/python/pulumi_aws/securityhub/_inputs.py @@ -341,8 +341,6 @@ 'InsightFiltersWorkflowStatusArgsDict', 'OrganizationConfigurationOrganizationConfigurationArgs', 'OrganizationConfigurationOrganizationConfigurationArgsDict', - 'GetStandardsControlAssociationsStandardsControlAssociationArgs', - 'GetStandardsControlAssociationsStandardsControlAssociationArgsDict', ] MYPY = False @@ -10179,186 +10177,3 @@ def configuration_type(self, value: pulumi.Input[str]): pulumi.set(self, "configuration_type", value) -if not MYPY: - class GetStandardsControlAssociationsStandardsControlAssociationArgsDict(TypedDict): - association_status: str - """ - Enablement status of a control in a specific standard. - """ - related_requirements: Sequence[str] - """ - List of underlying requirements in the compliance framework related to the standard. - """ - security_control_arn: str - """ - ARN of the security control. - """ - security_control_id: str - """ - The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - """ - standards_arn: str - """ - ARN of the standard. - """ - standards_control_description: str - """ - Description of the standard. - """ - standards_control_title: str - """ - Title of the standard. - """ - updated_at: str - """ - Last time that a control's enablement status in a specified standard was updated. - """ - updated_reason: str - """ - Reason for updating a control's enablement status in a specified standard. - """ -elif False: - GetStandardsControlAssociationsStandardsControlAssociationArgsDict: TypeAlias = Mapping[str, Any] - -@pulumi.input_type -class GetStandardsControlAssociationsStandardsControlAssociationArgs: - def __init__(__self__, *, - association_status: str, - related_requirements: Sequence[str], - security_control_arn: str, - security_control_id: str, - standards_arn: str, - standards_control_description: str, - standards_control_title: str, - updated_at: str, - updated_reason: str): - """ - :param str association_status: Enablement status of a control in a specific standard. - :param Sequence[str] related_requirements: List of underlying requirements in the compliance framework related to the standard. - :param str security_control_arn: ARN of the security control. - :param str security_control_id: The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - :param str standards_arn: ARN of the standard. - :param str standards_control_description: Description of the standard. - :param str standards_control_title: Title of the standard. - :param str updated_at: Last time that a control's enablement status in a specified standard was updated. - :param str updated_reason: Reason for updating a control's enablement status in a specified standard. - """ - pulumi.set(__self__, "association_status", association_status) - pulumi.set(__self__, "related_requirements", related_requirements) - pulumi.set(__self__, "security_control_arn", security_control_arn) - pulumi.set(__self__, "security_control_id", security_control_id) - pulumi.set(__self__, "standards_arn", standards_arn) - pulumi.set(__self__, "standards_control_description", standards_control_description) - pulumi.set(__self__, "standards_control_title", standards_control_title) - pulumi.set(__self__, "updated_at", updated_at) - pulumi.set(__self__, "updated_reason", updated_reason) - - @property - @pulumi.getter(name="associationStatus") - def association_status(self) -> str: - """ - Enablement status of a control in a specific standard. - """ - return pulumi.get(self, "association_status") - - @association_status.setter - def association_status(self, value: str): - pulumi.set(self, "association_status", value) - - @property - @pulumi.getter(name="relatedRequirements") - def related_requirements(self) -> Sequence[str]: - """ - List of underlying requirements in the compliance framework related to the standard. - """ - return pulumi.get(self, "related_requirements") - - @related_requirements.setter - def related_requirements(self, value: Sequence[str]): - pulumi.set(self, "related_requirements", value) - - @property - @pulumi.getter(name="securityControlArn") - def security_control_arn(self) -> str: - """ - ARN of the security control. - """ - return pulumi.get(self, "security_control_arn") - - @security_control_arn.setter - def security_control_arn(self, value: str): - pulumi.set(self, "security_control_arn", value) - - @property - @pulumi.getter(name="securityControlId") - def security_control_id(self) -> str: - """ - The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - """ - return pulumi.get(self, "security_control_id") - - @security_control_id.setter - def security_control_id(self, value: str): - pulumi.set(self, "security_control_id", value) - - @property - @pulumi.getter(name="standardsArn") - def standards_arn(self) -> str: - """ - ARN of the standard. - """ - return pulumi.get(self, "standards_arn") - - @standards_arn.setter - def standards_arn(self, value: str): - pulumi.set(self, "standards_arn", value) - - @property - @pulumi.getter(name="standardsControlDescription") - def standards_control_description(self) -> str: - """ - Description of the standard. - """ - return pulumi.get(self, "standards_control_description") - - @standards_control_description.setter - def standards_control_description(self, value: str): - pulumi.set(self, "standards_control_description", value) - - @property - @pulumi.getter(name="standardsControlTitle") - def standards_control_title(self) -> str: - """ - Title of the standard. - """ - return pulumi.get(self, "standards_control_title") - - @standards_control_title.setter - def standards_control_title(self, value: str): - pulumi.set(self, "standards_control_title", value) - - @property - @pulumi.getter(name="updatedAt") - def updated_at(self) -> str: - """ - Last time that a control's enablement status in a specified standard was updated. - """ - return pulumi.get(self, "updated_at") - - @updated_at.setter - def updated_at(self, value: str): - pulumi.set(self, "updated_at", value) - - @property - @pulumi.getter(name="updatedReason") - def updated_reason(self) -> str: - """ - Reason for updating a control's enablement status in a specified standard. - """ - return pulumi.get(self, "updated_reason") - - @updated_reason.setter - def updated_reason(self, value: str): - pulumi.set(self, "updated_reason", value) - - diff --git a/sdk/python/pulumi_aws/securityhub/get_standards_control_associations.py b/sdk/python/pulumi_aws/securityhub/get_standards_control_associations.py index fdbfc14bf08..6d36f96dc60 100644 --- a/sdk/python/pulumi_aws/securityhub/get_standards_control_associations.py +++ b/sdk/python/pulumi_aws/securityhub/get_standards_control_associations.py @@ -14,7 +14,6 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from . import outputs -from ._inputs import * __all__ = [ 'GetStandardsControlAssociationsResult', @@ -54,7 +53,7 @@ def security_control_id(self) -> str: @property @pulumi.getter(name="standardsControlAssociations") - def standards_control_associations(self) -> Optional[Sequence['outputs.GetStandardsControlAssociationsStandardsControlAssociationResult']]: + def standards_control_associations(self) -> Sequence['outputs.GetStandardsControlAssociationsStandardsControlAssociationResult']: """ A list that provides the status and other details for each security control that applies to each enabled standard. See `standards_control_associations` below. @@ -74,7 +73,6 @@ def __await__(self): def get_standards_control_associations(security_control_id: Optional[str] = None, - standards_control_associations: Optional[Sequence[Union['GetStandardsControlAssociationsStandardsControlAssociationArgs', 'GetStandardsControlAssociationsStandardsControlAssociationArgsDict']]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStandardsControlAssociationsResult: """ Data source for managing an AWS Security Hub Standards Control Associations. @@ -93,12 +91,9 @@ def get_standards_control_associations(security_control_id: Optional[str] = None :param str security_control_id: The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - :param Sequence[Union['GetStandardsControlAssociationsStandardsControlAssociationArgs', 'GetStandardsControlAssociationsStandardsControlAssociationArgsDict']] standards_control_associations: A list that provides the status and other details for each security control that applies to each enabled standard. - See `standards_control_associations` below. """ __args__ = dict() __args__['securityControlId'] = security_control_id - __args__['standardsControlAssociations'] = standards_control_associations opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations', __args__, opts=opts, typ=GetStandardsControlAssociationsResult).value @@ -110,7 +105,6 @@ def get_standards_control_associations(security_control_id: Optional[str] = None @_utilities.lift_output_func(get_standards_control_associations) def get_standards_control_associations_output(security_control_id: Optional[pulumi.Input[str]] = None, - standards_control_associations: Optional[pulumi.Input[Optional[Sequence[Union['GetStandardsControlAssociationsStandardsControlAssociationArgs', 'GetStandardsControlAssociationsStandardsControlAssociationArgsDict']]]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStandardsControlAssociationsResult]: """ Data source for managing an AWS Security Hub Standards Control Associations. @@ -129,7 +123,5 @@ def get_standards_control_associations_output(security_control_id: Optional[pulu :param str security_control_id: The identifier of the control (identified with `SecurityControlId`, `SecurityControlArn`, or a mix of both parameters). - :param Sequence[Union['GetStandardsControlAssociationsStandardsControlAssociationArgs', 'GetStandardsControlAssociationsStandardsControlAssociationArgsDict']] standards_control_associations: A list that provides the status and other details for each security control that applies to each enabled standard. - See `standards_control_associations` below. """ ... diff --git a/sdk/python/pulumi_aws/securityhub/standards_control_association.py b/sdk/python/pulumi_aws/securityhub/standards_control_association.py new file mode 100644 index 00000000000..bd64343e9ab --- /dev/null +++ b/sdk/python/pulumi_aws/securityhub/standards_control_association.py @@ -0,0 +1,340 @@ +# 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__ = ['StandardsControlAssociationArgs', 'StandardsControlAssociation'] + +@pulumi.input_type +class StandardsControlAssociationArgs: + def __init__(__self__, *, + association_status: pulumi.Input[str], + security_control_id: pulumi.Input[str], + standards_arn: pulumi.Input[str], + updated_reason: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a StandardsControlAssociation resource. + :param pulumi.Input[str] association_status: The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input[str] security_control_id: The unique identifier for the security control whose enablement status you want to update. + :param pulumi.Input[str] standards_arn: The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + :param pulumi.Input[str] updated_reason: The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + pulumi.set(__self__, "association_status", association_status) + pulumi.set(__self__, "security_control_id", security_control_id) + pulumi.set(__self__, "standards_arn", standards_arn) + if updated_reason is not None: + pulumi.set(__self__, "updated_reason", updated_reason) + + @property + @pulumi.getter(name="associationStatus") + def association_status(self) -> pulumi.Input[str]: + """ + The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "association_status") + + @association_status.setter + def association_status(self, value: pulumi.Input[str]): + pulumi.set(self, "association_status", value) + + @property + @pulumi.getter(name="securityControlId") + def security_control_id(self) -> pulumi.Input[str]: + """ + The unique identifier for the security control whose enablement status you want to update. + """ + return pulumi.get(self, "security_control_id") + + @security_control_id.setter + def security_control_id(self, value: pulumi.Input[str]): + pulumi.set(self, "security_control_id", value) + + @property + @pulumi.getter(name="standardsArn") + def standards_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + """ + return pulumi.get(self, "standards_arn") + + @standards_arn.setter + def standards_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "standards_arn", value) + + @property + @pulumi.getter(name="updatedReason") + def updated_reason(self) -> Optional[pulumi.Input[str]]: + """ + The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + return pulumi.get(self, "updated_reason") + + @updated_reason.setter + def updated_reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_reason", value) + + +@pulumi.input_type +class _StandardsControlAssociationState: + def __init__(__self__, *, + association_status: Optional[pulumi.Input[str]] = None, + security_control_id: Optional[pulumi.Input[str]] = None, + standards_arn: Optional[pulumi.Input[str]] = None, + updated_reason: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering StandardsControlAssociation resources. + :param pulumi.Input[str] association_status: The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input[str] security_control_id: The unique identifier for the security control whose enablement status you want to update. + :param pulumi.Input[str] standards_arn: The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + :param pulumi.Input[str] updated_reason: The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + if association_status is not None: + pulumi.set(__self__, "association_status", association_status) + if security_control_id is not None: + pulumi.set(__self__, "security_control_id", security_control_id) + if standards_arn is not None: + pulumi.set(__self__, "standards_arn", standards_arn) + if updated_reason is not None: + pulumi.set(__self__, "updated_reason", updated_reason) + + @property + @pulumi.getter(name="associationStatus") + def association_status(self) -> Optional[pulumi.Input[str]]: + """ + The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "association_status") + + @association_status.setter + def association_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "association_status", value) + + @property + @pulumi.getter(name="securityControlId") + def security_control_id(self) -> Optional[pulumi.Input[str]]: + """ + The unique identifier for the security control whose enablement status you want to update. + """ + return pulumi.get(self, "security_control_id") + + @security_control_id.setter + def security_control_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "security_control_id", value) + + @property + @pulumi.getter(name="standardsArn") + def standards_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + """ + return pulumi.get(self, "standards_arn") + + @standards_arn.setter + def standards_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "standards_arn", value) + + @property + @pulumi.getter(name="updatedReason") + def updated_reason(self) -> Optional[pulumi.Input[str]]: + """ + The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + return pulumi.get(self, "updated_reason") + + @updated_reason.setter + def updated_reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_reason", value) + + +class StandardsControlAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + association_status: Optional[pulumi.Input[str]] = None, + security_control_id: Optional[pulumi.Input[str]] = None, + standards_arn: Optional[pulumi.Input[str]] = None, + updated_reason: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.securityhub.Account("example") + cis_aws_foundations_benchmark = aws.securityhub.StandardsSubscription("cis_aws_foundations_benchmark", standards_arn="arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0", + opts = pulumi.ResourceOptions(depends_on=[example])) + cis_aws_foundations_benchmark_disable_iam1 = aws.index.StandardsControlAssociation("cis_aws_foundations_benchmark_disable_iam_1", + standards_arn=cis_aws_foundations_benchmark.standards_arn, + security_control_id=IAM.1, + association_status=DISABLED, + updated_reason=Not needed) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] association_status: The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input[str] security_control_id: The unique identifier for the security control whose enablement status you want to update. + :param pulumi.Input[str] standards_arn: The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + :param pulumi.Input[str] updated_reason: The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StandardsControlAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.securityhub.Account("example") + cis_aws_foundations_benchmark = aws.securityhub.StandardsSubscription("cis_aws_foundations_benchmark", standards_arn="arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0", + opts = pulumi.ResourceOptions(depends_on=[example])) + cis_aws_foundations_benchmark_disable_iam1 = aws.index.StandardsControlAssociation("cis_aws_foundations_benchmark_disable_iam_1", + standards_arn=cis_aws_foundations_benchmark.standards_arn, + security_control_id=IAM.1, + association_status=DISABLED, + updated_reason=Not needed) + ``` + + :param str resource_name: The name of the resource. + :param StandardsControlAssociationArgs 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(StandardsControlAssociationArgs, 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, + association_status: Optional[pulumi.Input[str]] = None, + security_control_id: Optional[pulumi.Input[str]] = None, + standards_arn: Optional[pulumi.Input[str]] = None, + updated_reason: 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__ = StandardsControlAssociationArgs.__new__(StandardsControlAssociationArgs) + + if association_status is None and not opts.urn: + raise TypeError("Missing required property 'association_status'") + __props__.__dict__["association_status"] = association_status + if security_control_id is None and not opts.urn: + raise TypeError("Missing required property 'security_control_id'") + __props__.__dict__["security_control_id"] = security_control_id + if standards_arn is None and not opts.urn: + raise TypeError("Missing required property 'standards_arn'") + __props__.__dict__["standards_arn"] = standards_arn + __props__.__dict__["updated_reason"] = updated_reason + super(StandardsControlAssociation, __self__).__init__( + 'aws:securityhub/standardsControlAssociation:StandardsControlAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + association_status: Optional[pulumi.Input[str]] = None, + security_control_id: Optional[pulumi.Input[str]] = None, + standards_arn: Optional[pulumi.Input[str]] = None, + updated_reason: Optional[pulumi.Input[str]] = None) -> 'StandardsControlAssociation': + """ + Get an existing StandardsControlAssociation 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] association_status: The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + :param pulumi.Input[str] security_control_id: The unique identifier for the security control whose enablement status you want to update. + :param pulumi.Input[str] standards_arn: The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + :param pulumi.Input[str] updated_reason: The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _StandardsControlAssociationState.__new__(_StandardsControlAssociationState) + + __props__.__dict__["association_status"] = association_status + __props__.__dict__["security_control_id"] = security_control_id + __props__.__dict__["standards_arn"] = standards_arn + __props__.__dict__["updated_reason"] = updated_reason + return StandardsControlAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="associationStatus") + def association_status(self) -> pulumi.Output[str]: + """ + The desired enablement status of the control in the standard. Valid values: `ENABLED`, `DISABLED`. + """ + return pulumi.get(self, "association_status") + + @property + @pulumi.getter(name="securityControlId") + def security_control_id(self) -> pulumi.Output[str]: + """ + The unique identifier for the security control whose enablement status you want to update. + """ + return pulumi.get(self, "security_control_id") + + @property + @pulumi.getter(name="standardsArn") + def standards_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the standard in which you want to update the control's enablement status. + + The following arguments are optional: + """ + return pulumi.get(self, "standards_arn") + + @property + @pulumi.getter(name="updatedReason") + def updated_reason(self) -> pulumi.Output[Optional[str]]: + """ + The reason for updating the control's enablement status in the standard. Required when `association_status` is `DISABLED`. + """ + return pulumi.get(self, "updated_reason") + diff --git a/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py b/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py index 9c7b17a7582..7c6a9198971 100644 --- a/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py +++ b/sdk/python/pulumi_aws/shield/application_layer_automatic_response.py @@ -134,6 +134,23 @@ def __init__(__self__, ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.get_region() + current_get_caller_identity = aws.get_caller_identity() + current_get_partition = aws.get_partition() + config = pulumi.Config() + # The Cloudfront Distribution on which to enable the Application Layer Automatic Response. + distribution_id = config.require("distributionId") + example = aws.shield.ApplicationLayerAutomaticResponse("example", + resource_arn=f"arn:{current_get_partition.partition}:cloudfront:{current_get_caller_identity.account_id}:distribution/{distribution_id}", + action="COUNT") + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] action: One of `COUNT` or `BLOCK` @@ -150,6 +167,23 @@ def __init__(__self__, ## Example Usage + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.get_region() + current_get_caller_identity = aws.get_caller_identity() + current_get_partition = aws.get_partition() + config = pulumi.Config() + # The Cloudfront Distribution on which to enable the Application Layer Automatic Response. + distribution_id = config.require("distributionId") + example = aws.shield.ApplicationLayerAutomaticResponse("example", + resource_arn=f"arn:{current_get_partition.partition}:cloudfront:{current_get_caller_identity.account_id}:distribution/{distribution_id}", + action="COUNT") + ``` + :param str resource_name: The name of the resource. :param ApplicationLayerAutomaticResponseArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py b/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py index 20a2f72f059..3ebef5405ea 100644 --- a/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py +++ b/sdk/python/pulumi_aws/shield/drt_access_role_arn_association.py @@ -110,8 +110,8 @@ def __init__(__self__, import json import pulumi_aws as aws - test = aws.iam.Role("test", - name=aws_shield_drt_access_role_arn, + example_role = aws.iam.Role("example", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [{ @@ -123,10 +123,10 @@ def __init__(__self__, "Action": "sts:AssumeRole", }], })) - test_role_policy_attachment = aws.iam.RolePolicyAttachment("test", - role=test.name, + example = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example_role.arn) + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + role=example_role.name, policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") - test_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("test", role_arn=test.arn) ``` ## Import @@ -160,8 +160,8 @@ def __init__(__self__, import json import pulumi_aws as aws - test = aws.iam.Role("test", - name=aws_shield_drt_access_role_arn, + example_role = aws.iam.Role("example", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [{ @@ -173,10 +173,10 @@ def __init__(__self__, "Action": "sts:AssumeRole", }], })) - test_role_policy_attachment = aws.iam.RolePolicyAttachment("test", - role=test.name, + example = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example_role.arn) + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + role=example_role.name, policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") - test_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("test", role_arn=test.arn) ``` ## Import diff --git a/sdk/python/pulumi_aws/shield/proactive_engagement.py b/sdk/python/pulumi_aws/shield/proactive_engagement.py index ee76771d96e..2fb9f36f697 100644 --- a/sdk/python/pulumi_aws/shield/proactive_engagement.py +++ b/sdk/python/pulumi_aws/shield/proactive_engagement.py @@ -118,8 +118,8 @@ def __init__(__self__, import json import pulumi_aws as aws - example = aws.iam.Role("example", - name=aws_shield_drt_access_role_arn, + example_role = aws.iam.Role("example", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [{ @@ -131,29 +131,29 @@ def __init__(__self__, "Action": "sts:AssumeRole", }], })) - example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", - role=example.name, - policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") - example_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example.arn) - test = aws.shield.ProtectionGroup("test", - protection_group_id="example", - aggregation="MAX", - pattern="ALL") - test_proactive_engagement = aws.shield.ProactiveEngagement("test", + example_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example_role.arn) + example = aws.shield.ProactiveEngagement("example", enabled=True, emergency_contacts=[ { "contact_notes": "Notes", - "email_address": "test@company.com", + "email_address": "contact1@example.com", "phone_number": "+12358132134", }, { "contact_notes": "Notes 2", - "email_address": "test2@company.com", + "email_address": "contact2@example.com", "phone_number": "+12358132134", }, ], - opts = pulumi.ResourceOptions(depends_on=[test_aws_shield_drt_access_role_arn_association])) + opts = pulumi.ResourceOptions(depends_on=[example_drt_access_role_arn_association])) + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + role=example_role.name, + policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") + example_protection_group = aws.shield.ProtectionGroup("example", + protection_group_id="example", + aggregation="MAX", + pattern="ALL") ``` ## Import @@ -188,8 +188,8 @@ def __init__(__self__, import json import pulumi_aws as aws - example = aws.iam.Role("example", - name=aws_shield_drt_access_role_arn, + example_role = aws.iam.Role("example", + name="example-role", assume_role_policy=json.dumps({ "Version": "2012-10-17", "Statement": [{ @@ -201,29 +201,29 @@ def __init__(__self__, "Action": "sts:AssumeRole", }], })) - example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", - role=example.name, - policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") - example_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example.arn) - test = aws.shield.ProtectionGroup("test", - protection_group_id="example", - aggregation="MAX", - pattern="ALL") - test_proactive_engagement = aws.shield.ProactiveEngagement("test", + example_drt_access_role_arn_association = aws.shield.DrtAccessRoleArnAssociation("example", role_arn=example_role.arn) + example = aws.shield.ProactiveEngagement("example", enabled=True, emergency_contacts=[ { "contact_notes": "Notes", - "email_address": "test@company.com", + "email_address": "contact1@example.com", "phone_number": "+12358132134", }, { "contact_notes": "Notes 2", - "email_address": "test2@company.com", + "email_address": "contact2@example.com", "phone_number": "+12358132134", }, ], - opts = pulumi.ResourceOptions(depends_on=[test_aws_shield_drt_access_role_arn_association])) + opts = pulumi.ResourceOptions(depends_on=[example_drt_access_role_arn_association])) + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + role=example_role.name, + policy_arn="arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") + example_protection_group = aws.shield.ProtectionGroup("example", + protection_group_id="example", + aggregation="MAX", + pattern="ALL") ``` ## Import diff --git a/upstream b/upstream index 1f4f309d47c..575959be1d2 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 1f4f309d47c2a82018872728577799256dfcc633 +Subproject commit 575959be1d26aba89fd5bf150d79de945066d9ed